From f54c22c11b231194f5eee558bcd2866c582747eb Mon Sep 17 00:00:00 2001 From: tarukosu <4415085+tarukosu@users.noreply.github.com> Date: Tue, 7 May 2019 18:33:55 +0900 Subject: [PATCH 1/3] Adding new message types Adding the following message types: * geometry_msgs/Transform * geometry_msgs/TransformStamped * navigation_msgs/Path * tf2_msgs/TFMessage --- .../Messages/Geometry/Transform.cs | 32 +++++++++++++++++ .../Messages/Geometry/TransformStamped.cs | 34 ++++++++++++++++++ .../Messages/Navigation/Path.cs | 32 +++++++++++++++++ .../RosBridgeClient/Messages/TF2/TFMessage.cs | 31 ++++++++++++++++ .../RosBridgeClient/RosBridgeClient.csproj | 4 +++ .../RosSharp/Plugins/RosBridgeClient.dll | Bin 46080 -> 46080 bytes 6 files changed, 133 insertions(+) create mode 100644 Libraries/RosBridgeClient/Messages/Geometry/Transform.cs create mode 100644 Libraries/RosBridgeClient/Messages/Geometry/TransformStamped.cs create mode 100644 Libraries/RosBridgeClient/Messages/Navigation/Path.cs create mode 100644 Libraries/RosBridgeClient/Messages/TF2/TFMessage.cs diff --git a/Libraries/RosBridgeClient/Messages/Geometry/Transform.cs b/Libraries/RosBridgeClient/Messages/Geometry/Transform.cs new file mode 100644 index 000000000..58a1f3be0 --- /dev/null +++ b/Libraries/RosBridgeClient/Messages/Geometry/Transform.cs @@ -0,0 +1,32 @@ +/* +© HoloLab Inc., 2019 +Author: Yusuke Furuta (furuta@hololab.co.jp) + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at +. +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +using Newtonsoft.Json; + +namespace RosSharp.RosBridgeClient.Messages.Geometry +{ + public class Transform : Message + { + [JsonIgnore] + public const string RosMessageName = "geometry_msgs/Transform"; + public Vector3 translation; + public Quaternion rotation; + public Transform() + { + translation = new Vector3(); + rotation = new Quaternion(); + } + } +} \ No newline at end of file diff --git a/Libraries/RosBridgeClient/Messages/Geometry/TransformStamped.cs b/Libraries/RosBridgeClient/Messages/Geometry/TransformStamped.cs new file mode 100644 index 000000000..e3e7bbe9a --- /dev/null +++ b/Libraries/RosBridgeClient/Messages/Geometry/TransformStamped.cs @@ -0,0 +1,34 @@ +/* +© HoloLab Inc., 2019 +Author: Yusuke Furuta (furuta@hololab.co.jp) + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at +. +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +using Newtonsoft.Json; + +namespace RosSharp.RosBridgeClient.Messages.Geometry +{ + public class TransformStamped : Message + { + [JsonIgnore] + public const string RosMessageName = "geometry_msgs/TransformStamped"; + public string child_frame_id; + public Standard.Header header; + public Transform transform; + public TransformStamped() + { + header = new Standard.Header(); + child_frame_id = ""; + transform = new Transform(); + } + } +} \ No newline at end of file diff --git a/Libraries/RosBridgeClient/Messages/Navigation/Path.cs b/Libraries/RosBridgeClient/Messages/Navigation/Path.cs new file mode 100644 index 000000000..8987230ca --- /dev/null +++ b/Libraries/RosBridgeClient/Messages/Navigation/Path.cs @@ -0,0 +1,32 @@ +/* +© HoloLab Inc., 2019 +Author: Yusuke Furuta (furuta@hololab.co.jp) + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at +. +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +using Newtonsoft.Json; + +namespace RosSharp.RosBridgeClient.Messages.Navigation +{ + public class Path : Message + { + [JsonIgnore] + public const string RosMessageName = "nav_msgs/Path"; + public Standard.Header header; + public Geometry.PoseStamped[] poses; + public Path() + { + header = new Standard.Header(); + poses = new Geometry.PoseStamped[0]; + } + } +} \ No newline at end of file diff --git a/Libraries/RosBridgeClient/Messages/TF2/TFMessage.cs b/Libraries/RosBridgeClient/Messages/TF2/TFMessage.cs new file mode 100644 index 000000000..70d8bc755 --- /dev/null +++ b/Libraries/RosBridgeClient/Messages/TF2/TFMessage.cs @@ -0,0 +1,31 @@ +/* +© HoloLab Inc., 2019 +Author: Yusuke Furuta (furuta@hololab.co.jp) + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at +. +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +using Newtonsoft.Json; + +namespace RosSharp.RosBridgeClient.Messages.TF2 +{ + public class TFMessage : Message + { + [JsonIgnore] + public const string RosMessageName = "tf2_msgs/TFMessage"; + public Geometry.TransformStamped[] transforms; + + public TFMessage() + { + transforms = new Geometry.TransformStamped[0]; + } + } +} \ No newline at end of file diff --git a/Libraries/RosBridgeClient/RosBridgeClient.csproj b/Libraries/RosBridgeClient/RosBridgeClient.csproj index 498b8b170..abd39041c 100644 --- a/Libraries/RosBridgeClient/RosBridgeClient.csproj +++ b/Libraries/RosBridgeClient/RosBridgeClient.csproj @@ -61,6 +61,8 @@ + + @@ -70,6 +72,7 @@ + @@ -85,6 +88,7 @@ + diff --git a/Unity3D/Assets/RosSharp/Plugins/RosBridgeClient.dll b/Unity3D/Assets/RosSharp/Plugins/RosBridgeClient.dll index d021830eb23e2770c1b05f3c8c37e55dad9d24f8..a819e25903da8c7243dfdb949f311aa0a7d1859c 100644 GIT binary patch delta 20264 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 Na$fp}vaq}3{{hzgevSYD delta 20008 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 From 2bcb2666a5af3222da840fd4e87b0a99700fb068 Mon Sep 17 00:00:00 2001 From: akira_you Date: Thu, 9 May 2019 18:33:18 +0900 Subject: [PATCH 2/3] Adding BSON (De-)Serialization --- .../RosBridgeClient/RosBridgeClient.csproj | 231 +- Libraries/RosBridgeClient/RosSocket.cs | 42 +- Libraries/RosBridgeClient/packages.config | 7 +- .../RosBridgeClientTest.csproj | 177 +- Libraries/RosBridgeClientTest/packages.config | 11 +- .../RosSharp/Plugins/Newtonsoft.Json.Bson.dll | Bin 0 -> 97720 bytes .../Plugins/Newtonsoft.Json.Bson.dll.meta | 32 + .../RosSharp/Plugins/Newtonsoft.Json.Bson.xml | 545 + .../RosSharp/Plugins/Newtonsoft.Json.dll | Bin 662528 -> 675240 bytes .../RosSharp/Plugins/Newtonsoft.Json.xml | 11121 ++++++++++++++++ .../RosSharp/Plugins/RosBridgeClient.dll | Bin 46080 -> 46592 bytes .../RosSharp/Plugins/websocket-sharp.xml | 7850 +++++++++++ .../RosCommuncation/RosConnector.cs | 7 +- 13 files changed, 19802 insertions(+), 221 deletions(-) create mode 100644 Unity3D/Assets/RosSharp/Plugins/Newtonsoft.Json.Bson.dll create mode 100644 Unity3D/Assets/RosSharp/Plugins/Newtonsoft.Json.Bson.dll.meta create mode 100644 Unity3D/Assets/RosSharp/Plugins/Newtonsoft.Json.Bson.xml create mode 100644 Unity3D/Assets/RosSharp/Plugins/Newtonsoft.Json.xml create mode 100644 Unity3D/Assets/RosSharp/Plugins/websocket-sharp.xml diff --git a/Libraries/RosBridgeClient/RosBridgeClient.csproj b/Libraries/RosBridgeClient/RosBridgeClient.csproj index abd39041c..ed9769b71 100644 --- a/Libraries/RosBridgeClient/RosBridgeClient.csproj +++ b/Libraries/RosBridgeClient/RosBridgeClient.csproj @@ -1,123 +1,122 @@ - - - - - Debug - AnyCPU - {27CD898A-8840-4CDD-A475-4A672FD2EF50} - Library - Properties - RosBridgeClient - RosBridgeClient - v4.6 - 512 - - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - false - - - - ..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll - - - - - - - - - ..\packages\WebSocketSharp.1.0.3-rc11\lib\websocket-sharp.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + Debug + AnyCPU + {27CD898A-8840-4CDD-A475-4A672FD2EF50} + Library + Properties + RosBridgeClient + RosBridgeClient + v4.6 + 512 + + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + false + + + + ..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll + + + ..\packages\Newtonsoft.Json.Bson.1.0.2\lib\net45\Newtonsoft.Json.Bson.dll + + + + + + + + + ..\packages\WebSocketSharp.1.0.3-rc11\lib\websocket-sharp.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + --> \ No newline at end of file diff --git a/Libraries/RosBridgeClient/RosSocket.cs b/Libraries/RosBridgeClient/RosSocket.cs index 5dd7923ac..f3c6b0038 100644 --- a/Libraries/RosBridgeClient/RosSocket.cs +++ b/Libraries/RosBridgeClient/RosSocket.cs @@ -13,6 +13,9 @@ You may obtain a copy of the License at limitations under the License. */ +// Adding BSON (de-)seriliazation option +// Shimadzu corp , 2019, Akira NODA (a-noda@shimadzu.co.jp / you.akira.noda@gmail.com) + using System; using System.Collections.Generic; using System.Linq; @@ -26,15 +29,18 @@ namespace RosSharp.RosBridgeClient public class RosSocket { public IProtocol protocol; + public enum SerializerEnum { JSON, BSON } private Dictionary Publishers = new Dictionary(); private Dictionary Subscribers = new Dictionary(); private Dictionary ServiceProviders = new Dictionary(); private Dictionary ServiceConsumers = new Dictionary(); + private SerializerEnum Serializer; - public RosSocket(IProtocol protocol) + public RosSocket(IProtocol protocol,SerializerEnum serializer=SerializerEnum.JSON) { this.protocol = protocol; + this.Serializer = serializer; this.protocol.OnReceive += (sender, e) => Receive(sender, e); this.protocol.Connect(); } @@ -176,16 +182,38 @@ private List SubscribersOf(string topic) return Subscribers.Where(pair => pair.Key.StartsWith(topic + ":")).Select(pair => pair.Value).ToList(); } - private static byte[] Serialize(T obj) + private byte[] Serialize(T obj) { - string json = JsonConvert.SerializeObject(obj); - return Encoding.ASCII.GetBytes(json); + switch (Serializer) + { + case SerializerEnum.JSON: + string json = JsonConvert.SerializeObject(obj); + return Encoding.ASCII.GetBytes(json); + case SerializerEnum.BSON: + System.IO.MemoryStream ms = new System.IO.MemoryStream(); + Newtonsoft.Json.Bson.BsonDataWriter writer = new Newtonsoft.Json.Bson.BsonDataWriter(ms); + JsonSerializer serializer = new JsonSerializer(); + serializer.Serialize(writer, obj); + return ms.ToArray(); + default: + throw new ArgumentException("Invalid Serializer"); + } } - private static T Deserialize(byte[] buffer) + private T Deserialize(byte[] buffer) { - string ascii = Encoding.ASCII.GetString(buffer, 0, buffer.Length); - return JsonConvert.DeserializeObject(ascii); + switch (Serializer) + { + case SerializerEnum.JSON: + string ascii = Encoding.ASCII.GetString(buffer, 0, buffer.Length); + return JsonConvert.DeserializeObject(ascii); + case SerializerEnum.BSON: + System.IO.MemoryStream ms = new System.IO.MemoryStream(buffer); + Newtonsoft.Json.Bson.BsonDataReader reader = new Newtonsoft.Json.Bson.BsonDataReader(ms); + return new JsonSerializer().Deserialize(reader); + default: + throw new ArgumentException("Invalid Serializer"); + } } private static string GetUnusedCounterID(Dictionary dictionary, string name) diff --git a/Libraries/RosBridgeClient/packages.config b/Libraries/RosBridgeClient/packages.config index afdd9bd6d..737e72e95 100644 --- a/Libraries/RosBridgeClient/packages.config +++ b/Libraries/RosBridgeClient/packages.config @@ -1,5 +1,6 @@ - - - + + + + \ No newline at end of file diff --git a/Libraries/RosBridgeClientTest/RosBridgeClientTest.csproj b/Libraries/RosBridgeClientTest/RosBridgeClientTest.csproj index 832eaecbd..6f97f5a3e 100644 --- a/Libraries/RosBridgeClientTest/RosBridgeClientTest.csproj +++ b/Libraries/RosBridgeClientTest/RosBridgeClientTest.csproj @@ -1,90 +1,93 @@ - - - - - - - Debug - AnyCPU - {4E1BB3D0-8254-4D23-BD1B-F6EC7AA562FC} - Exe - Properties - RosBridgeClientTest - RosBridgeClientTest - v4.6 - 512 - - - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - full - true - bin\Release\ - DEBUG;TRACE - prompt - 4 - true - - - RosSharp.RosBridgeClientTest.UrdfTransferToRosConsoleExample - - - - ..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll - - - ..\packages\NUnit.3.11.0\lib\net45\nunit.framework.dll - - - - - - - - - - - - - - - - - - - - - - - {27cd898a-8840-4cdd-a475-4a672fd2ef50} - RosBridgeClient - - - - - - - - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - + + + + + + + Debug + AnyCPU + {4E1BB3D0-8254-4D23-BD1B-F6EC7AA562FC} + Exe + Properties + RosBridgeClientTest + RosBridgeClientTest + v4.6 + 512 + + + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + full + true + bin\Release\ + DEBUG;TRACE + prompt + 4 + true + + + RosSharp.RosBridgeClientTest.UrdfTransferToRosConsoleExample + + + + ..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll + + + ..\packages\Newtonsoft.Json.Bson.1.0.2\lib\net45\Newtonsoft.Json.Bson.dll + + + ..\packages\NUnit.3.10.1\lib\net45\nunit.framework.dll + + + + + + + + + + + + + + + + + + + + + + + {27cd898a-8840-4cdd-a475-4a672fd2ef50} + RosBridgeClient + + + + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + GIOYQ0l@2eC!n>H@M=SA;GFXrK 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[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

R6qb}T^guQJ(7$&7w88_K) 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

|Rc;+W_*I#ja zi!)o^J~Y2g-tnuwo!jnyI^p`{_Mab|njD`tAb9qck1C9xmhD+}u($JAyCJ65GnQo9 zN9GOcwAfL%d|dM8u1k(pwmTRZ|3LNov4cyWta$JCg|{!*e%q|Gx%MR+PG5V+3#TR* zG@rlM@WfL|6+2ct7Ivt!zgD$k!IaD%4cpPrc7p=XEmEyLFhTY2d8gSU>e zc#R{m2sD(_SK(!BhtmUEfqT#L_}6RQjhU=S+0p z=rQp551v}~kGA^^`{VmOHR+KPWv`8oe7f_2+=olPNqX)IwR-?`W0WO9y;Q}HN^pEX z!}7t?RxL^Vc5U$H!Obqadi#ObUk~IcZ7#d`_@aIXhXu{-v!v?D2dpbbdnex>KjZX` z2Mf}=e0a$0*gC@P4jyzezL$6T9mliMZ;fwp-R=LH_gtH~CtCF$v*YggPLT(nyWEzu z^6UE3yS9GY<@3)r5BhOj;ZN_ojy*B_yRk>_>-<$*VVJ4w!_7*^O>1x1)UM=*%+=R? zH?7^DMF*aUn3}femE~9TxZ&kRPY?O>ydsAb@!+;L;Tjd zUvm>|J?u-A@}<{3dE^7*FOQxrJh`!GN_*RicWhd0VJ9NtPYw~}1wq1|fs^(j2SJw8ue&YC7R#Z*8=drBotDkQ6#Ea(t E19%Sn&-2t% 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�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

y#KQ zPuvGP+_g4@`^On!Y!|6|T!58a;Jt6af1ffVM)|8gB0cb9uF6MxU>$rJ_4HGc15+P` zbBt5c19UDz;i|q?bqhg0MOl z+G}G;#I~m8;R*YN$OVl3BA@n$ z%EP!HQ%>zLUz`U1>bmqD6z}FR`oqm(^n<&@xSyV)(_7tiiqRJOZzFRv`NFIDNVOEMHjL*#9#->hX(Ys8KZ@7! z7$Q;Aq}UXq{loFFU-wu>nvQQzMuv{>P)249?ssLz;C@#I#gnM(bEc6NgY}Y0_GIew zrI~PlNTuIA-LQthyyc2BGN~TQsoZmEA1sUF&!YG%bo<@ZEHjMvEUL`ELH}$F`}S%b z_thCy<~EI&Q$FqpRCj`Tkv&7-Lvgyz52$iz+HFw)*X@e}*#G7SF#jWB%I3g&uv-q% zT%vg~*dOy_RQui3ET77yfcP6UKC}C_m;*51hkI@s_wSB$X!oK(^7pF076n%IQnZl5 z=V>~wrQ9q&0Uwn|7|PPBsBQ>CWenp9A@ z%`sU1I9@DE?rF68qY!<2l!dmzIGP3YH8`)h31|}3^XwjY@8#|un`5Y7>2`6Iv4h&@ zZnD3I>br*OyOP?^Zpu$(4EFn4(yJxCImQuYrZ z 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 z

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 + + + 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 + + + + + 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 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 . + + + + + 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 null. + + + + + 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 null. + + + + + 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. + + + + + 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 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. + + + + 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. + + + 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 JPath expression. Selects the token that matches the object path. + + + A that contains a JPath expression. + + A , or null. + + + + Selects a using a JPath expression. Selects the token that matches the object path. + + + A that contains a JPath 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 collection of elements using a JPath expression. + + + A that contains a JPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JPath expression. + + + A that contains a JPath 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. + + + + 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 . + + + + 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. + + + + 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. + + + 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 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 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 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. + + + + 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. + + + + 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. + + + + diff --git a/Unity3D/Assets/RosSharp/Plugins/RosBridgeClient.dll b/Unity3D/Assets/RosSharp/Plugins/RosBridgeClient.dll index a819e25903da8c7243dfdb949f311aa0a7d1859c..104fd60f5c3925a6d7f564260d3aa8a290d0d188 100644 GIT binary patch literal 46592 zcmeHwd3;pm_4m2=&fHm&43kMRNgxRmwvI`NEKxxbSppbjCn6#?Op*ZxlT4hMurvgd zx>Rwgw6-qQR@|+-#a65KCv~X{*1gr%1**0Bt7~huwie&-InTYbBtZM~egApi&pU9> zea`Zn=RD^*&wB4n7OuLO3?g#i`tnPndvWK_41tFR{b2h>{@h2qJWp5Ot1WoCx_Nyp z8R|~N*CisIp|(g@S3DJJjfN6EU7=W4sB!V~P-nb7T3=A$9b>6pGKXk^X3(a`Us!FI zwwFeQ^0Wy=w}WCT>ij*phj8u1MdX*XuIy%lB?cLd2z34!wB~FU<^P$xg)#}BzduE^ zm=k-6US&rN`Dm06+CxtgRSe-Bf)FBdXR+PDkI%yEQ_;;S;7e`=08i>_*$qrSA)+<) ziDaS;nAo-#32vx6abF$SdQkBZUbF7-FkI|a z8cfj>uLPm4G+ZTg&TER^_(&vcf;G>Fo;mHdrqE$0o_PJLtjzHc*efk^CU3l&$u&h2 zTy!qVMyZ9x30Tlwc3}Xfj18)yy#Wen`%9cK%5?$5@x`a}Eia&1xMN&#ZQlMM6XTnyUhTp-aepEZ;MJV>0|E)QsN{ zs_>f&TC)7cqNeD{^&96kdl_c@_Otf8F3Is5XFh=6B-erbHYdk#ock;KjZ667@!L4$ zXa9YT?-{=_8GaLL#%~Vs8+vB8-&oY_Wti(X&TER^jNjg3>dej`MqjHB%IN$4^WpOc{X_zUzHGj~<;Bo0Jiqct9clI&U=P;ByF~H~anLd}#os2+! zDas2^gp3i#a8MhcjAYFuJ$@t?zSb(dfr;Do@KjX*qbT4A+? zzdR!`8cmkO_~~W)dzov*F(lN+ry&XV!44-SaW~lxX-cE_Zp zGT&`ZdZb4DFc!`2$|`>c1ieP@#kl1mocfP*o|3Pdu2mT$f(29FgVDhv$CQ_GhY)Jw zEObg@a*Hao(BUyxt-J!XhraB?xa~Lq8Pz%vxp*+S{KC1Ya9;`NwQV_i3Z3p%eM966 z9UD(8bglwxNWmVPGoGyb#?`7FZe#43+I(Oquq6A>Rk||IWnL6JZV6Y1o^JbMq9pEQgz)h_c@BOlYcEv27N+%+$lPao2-k^a*dxHL4Y{ zMhNZ*&jIC!s7I-tEYr)ZBpQ;}Hf>ySeDowt^!Am)T0J?BlVy@bfAR8?2-GG{Vrk<@ zFO`CfIQp<~LJ$kG-^A+JOrlx5@oSM%o1BEvkG!zSz-Ylmn{jCO*12>u%O2A-0$Or87;&id>aH+`j9Rm1tyK>rej><@ z_-LpNqi59Cd_RX1AHxh(y;c=s#8*Im9GU@s@zP}6^SD3ta-EDY?5Tx0jG$ykKy&&q zsQS$0No>JNWdSn40xm}~#ZP7)rWG@sFXbres!Tbmu3$=C*(qlH6tJbP8Ba-pNwlOl zekuU!T97V@GZ}Hrjo$baF3Be)DJrI2t`VXG@uYrE{&j|F<4Kh(aYh6FR!mCjDOj?qSDMH8KIu| + Provides a set of static methods for websocket-sharp. + + + + + Determines whether the specified equals the specified , + and invokes the specified Action<int> delegate at the same time. + + + true if equals ; + otherwise, false. + + + An to compare. + + + A to compare. + + + An Action<int> delegate that references the method(s) called + at the same time as comparing. An parameter to pass to + the method(s) is . + + + + + Gets the absolute path from the specified . + + + A that represents the absolute path if it's successfully found; + otherwise, . + + + A that represents the URI to get the absolute path from. + + + + + Gets the name from the specified that contains a pair of name and + value separated by a separator character. + + + A that represents the name if any; otherwise, null. + + + A that contains a pair of name and value separated by + a separator character. + + + A that represents the separator character. + + + + + Gets the value from the specified that contains a pair of name and + value separated by a separator character. + + + A that represents the value if any; otherwise, null. + + + A that contains a pair of name and value separated by + a separator character. + + + A that represents the separator character. + + + + + Tries to create a for WebSocket with + the specified . + + + true if a is successfully created; otherwise, false. + + + A that represents a WebSocket URL to try. + + + When this method returns, a that represents a WebSocket URL, + or if is invalid. + + + When this method returns, a that represents an error message, + or if is valid. + + + + + Determines whether the specified contains any of characters in + the specified array of . + + + true if contains any of ; + otherwise, false. + + + A to test. + + + An array of that contains characters to find. + + + + + Determines whether the specified contains + the entry with the specified . + + + true if contains the entry with + ; otherwise, false. + + + A to test. + + + A that represents the key of the entry to find. + + + + + Determines whether the specified contains the entry with + the specified both and . + + + true if contains the entry with both + and ; otherwise, false. + + + A to test. + + + A that represents the key of the entry to find. + + + A that represents the value of the entry to find. + + + + + Emits the specified delegate if it isn't . + + + A to emit. + + + An from which emits this . + + + A that contains no event data. + + + + + Emits the specified EventHandler<TEventArgs> delegate if it isn't + . + + + An EventHandler<TEventArgs> to emit. + + + An from which emits this . + + + A TEventArgs that represents the event data. + + + The type of the event data generated by the event. + + + + + Gets the collection of the HTTP cookies from the specified HTTP . + + + A that receives a collection of the HTTP cookies. + + + A that contains a collection of the HTTP headers. + + + true if is a collection of the response headers; + otherwise, false. + + + + + Gets the description of the specified HTTP status . + + + A that represents the description of the HTTP status code. + + + One of enum values, indicates the HTTP status code. + + + + + Gets the description of the specified HTTP status . + + + A that represents the description of the HTTP status code. + + + An that represents the HTTP status code. + + + + + Determines whether the specified is in the allowable range of + the WebSocket close status code. + + + Not allowable ranges are the following: + + + + Numbers in the range 0-999 are not used. + + + + + Numbers greater than 4999 are out of the reserved close status code ranges. + + + + + + true if is in the allowable range of the WebSocket + close status code; otherwise, false. + + + A to test. + + + + + Determines whether the specified is enclosed in the specified + . + + + true if is enclosed in ; + otherwise, false. + + + A to test. + + + A that represents the character to find. + + + + + Determines whether the specified is host (this computer + architecture) byte order. + + + true if is host byte order; otherwise, false. + + + One of the enum values, to test. + + + + + Determines whether the specified represents + a local IP address. + + + This local means NOT REMOTE for the current host. + + + true if represents a local IP address; + otherwise, false. + + + A to test. + + + + + Determines whether the specified is or empty. + + + true if is or empty; + otherwise, false. + + + A to test. + + + + + Determines whether the specified is a predefined scheme. + + + true if is a predefined scheme; otherwise, false. + + + A to test. + + + + + Determines whether the specified is + an HTTP Upgrade request to switch to the specified . + + + true if is an HTTP Upgrade request to switch to + ; otherwise, false. + + + A that represents the HTTP request. + + + A that represents the protocol name. + + + + is . + + + -or- + + + is . + + + + is empty. + + + + + Determines whether the specified is a URI string. + + + true if may be a URI string; otherwise, false. + + + A to test. + + + + + Retrieves a sub-array from the specified . A sub-array starts at + the specified element position in . + + + An array of T that receives a sub-array, or an empty array of T if any problems with + the parameters. + + + An array of T from which to retrieve a sub-array. + + + An that represents the zero-based starting position of + a sub-array in . + + + An that represents the number of elements to retrieve. + + + The type of elements in . + + + + + Retrieves a sub-array from the specified . A sub-array starts at + the specified element position in . + + + An array of T that receives a sub-array, or an empty array of T if any problems with + the parameters. + + + An array of T from which to retrieve a sub-array. + + + A that represents the zero-based starting position of + a sub-array in . + + + A that represents the number of elements to retrieve. + + + The type of elements in . + + + + + Executes the specified delegate times. + + + An is the number of times to execute. + + + An delegate that references the method(s) to execute. + + + + + Executes the specified delegate times. + + + A is the number of times to execute. + + + An delegate that references the method(s) to execute. + + + + + Executes the specified delegate times. + + + A is the number of times to execute. + + + An delegate that references the method(s) to execute. + + + + + Executes the specified delegate times. + + + A is the number of times to execute. + + + An delegate that references the method(s) to execute. + + + + + Executes the specified Action<int> delegate times. + + + An is the number of times to execute. + + + An Action<int> delegate that references the method(s) to execute. + An parameter to pass to the method(s) is the zero-based count of + iteration. + + + + + Executes the specified Action<long> delegate times. + + + A is the number of times to execute. + + + An Action<long> delegate that references the method(s) to execute. + A parameter to pass to the method(s) is the zero-based count of + iteration. + + + + + Executes the specified Action<uint> delegate times. + + + A is the number of times to execute. + + + An Action<uint> delegate that references the method(s) to execute. + A parameter to pass to the method(s) is the zero-based count of + iteration. + + + + + Executes the specified Action<ulong> delegate times. + + + A is the number of times to execute. + + + An Action<ulong> delegate that references the method(s) to execute. + A parameter to pass to this method(s) is the zero-based count of + iteration. + + + + + Converts the specified array of to the specified type data. + + + A T converted from , or a default value of + T if is an empty array of or + if the type of T isn't , , , + , , , , + , , or . + + + An array of to convert. + + + One of the enum values, specifies the byte order of + . + + + The type of the return. The T must be a value type. + + + is . + + + + + Converts the specified to an array of . + + + An array of converted from . + + + A T to convert. + + + One of the enum values, specifies the byte order of the return. + + + The type of . The T must be a value type. + + + + + Converts the order of the specified array of to the host byte order. + + + An array of converted from . + + + An array of to convert. + + + One of the enum values, specifies the byte order of + . + + + is . + + + + + Converts the specified to a that + concatenates the each element of across the specified + . + + + A converted from , + or if is empty. + + + An array of T to convert. + + + A that represents the separator string. + + + The type of elements in . + + + is . + + + + + Converts the specified to a . + + + A converted from , + or if isn't successfully converted. + + + A to convert. + + + + + URL-decodes the specified . + + + A that receives the decoded string, + or the if it's or empty. + + + A to decode. + + + + + URL-encodes the specified . + + + A that receives the encoded string, + or if it's or empty. + + + A to encode. + + + + + Writes and sends the specified data with the specified + . + + + A that represents the HTTP response used to + send the content data. + + + An array of that represents the content data to send. + + + + is . + + + -or- + + + is . + + + + + + Represents the event data for the event. + + + + A event occurs when the receives + a text or binary message, or a ping if the property is + set to true. + + + If you would like to get the message data, you should access the or + property. + + + + + + Gets the message data as a . + + + A that represents the message data, + or if the message data cannot be decoded to a string. + + + + + Gets a value indicating whether the message type is binary. + + + true if the message type is binary; otherwise, false. + + + + + Gets a value indicating whether the message type is ping. + + + true if the message type is ping; otherwise, false. + + + + + Gets a value indicating whether the message type is text. + + + true if the message type is text; otherwise, false. + + + + + Gets the message data as an array of . + + + An array of that represents the message data. + + + + + Gets the message type. + + + , , or . + + + + + Represents the event data for the event. + + + + A event occurs when the WebSocket connection + has been closed. + + + If you would like to get the reason for the close, you should access + the or property. + + + + + + Gets the status code for the close. + + + A that represents the status code for the close if any. + + + + + Gets the reason for the close. + + + A that represents the reason for the close if any. + + + + + Gets a value indicating whether the connection has been closed cleanly. + + + true if the connection has been closed cleanly; otherwise, false. + + + + + Specifies the byte order. + + + + + Specifies Little-endian. + + + + + Specifies Big-endian. + + + + + Represents the event data for the event. + + + + A event occurs when the gets + an error. + + + If you would like to get the error message, you should access + the property. + + + And if the error is due to an exception, you can get the exception by accessing + the property. + + + + + + Gets the exception that caused the error. + + + An instance that represents the cause of the error, + or if the error isn't due to an exception. + + + + + Gets the error message. + + + A that represents the error message. + + + + + Implements the WebSocket interface. + + + The WebSocket class provides a set of methods and properties for two-way communication using + the WebSocket protocol (RFC 6455). + + + + + Represents the empty array of used internally. + + + + + Represents the length used to determine whether the data should be fragmented in sending. + + + + The data will be fragmented if that length is greater than the value of this field. + + + If you would like to change the value, you must set it to a value between 125 and + Int32.MaxValue - 14 inclusive. + + + + + + Represents the random number generator used internally. + + + + + Initializes a new instance of the class with + the specified WebSocket URL and subprotocols. + + + A that represents the WebSocket URL to connect. + + + An array of that contains the WebSocket subprotocols if any. + Each value of must be a token defined in + RFC 2616. + + + is . + + + + is invalid. + + + -or- + + + is invalid. + + + + + + Accepts the WebSocket handshake request. + + + This method isn't available in a client. + + + + + Accepts the WebSocket handshake request asynchronously. + + + + This method doesn't wait for the accept to be complete. + + + This method isn't available in a client. + + + + + + Closes the WebSocket connection, and releases all associated resources. + + + + + Closes the WebSocket connection with the specified , + and releases all associated resources. + + + This method emits a event if isn't in + the allowable range of the close status code. + + + A that represents the status code indicating the reason for the close. + + + + + Closes the WebSocket connection with the specified , + and releases all associated resources. + + + One of the enum values, represents the status code indicating + the reason for the close. + + + + + Closes the WebSocket connection with the specified and + , and releases all associated resources. + + + This method emits a event if isn't in + the allowable range of the close status code or the size of is + greater than 123 bytes. + + + A that represents the status code indicating the reason for the close. + + + A that represents the reason for the close. + + + + + Closes the WebSocket connection with the specified and + , and releases all associated resources. + + + This method emits a event if the size of is + greater than 123 bytes. + + + One of the enum values, represents the status code indicating + the reason for the close. + + + A that represents the reason for the close. + + + + + Closes the WebSocket connection asynchronously, and releases all associated resources. + + + This method doesn't wait for the close to be complete. + + + + + Closes the WebSocket connection asynchronously with the specified , + and releases all associated resources. + + + + This method doesn't wait for the close to be complete. + + + This method emits a event if isn't in + the allowable range of the close status code. + + + + A that represents the status code indicating the reason for the close. + + + + + Closes the WebSocket connection asynchronously with the specified + , and releases all associated resources. + + + This method doesn't wait for the close to be complete. + + + One of the enum values, represents the status code indicating + the reason for the close. + + + + + Closes the WebSocket connection asynchronously with the specified and + , and releases all associated resources. + + + + This method doesn't wait for the close to be complete. + + + This method emits a event if isn't in + the allowable range of the close status code or the size of is + greater than 123 bytes. + + + + A that represents the status code indicating the reason for the close. + + + A that represents the reason for the close. + + + + + Closes the WebSocket connection asynchronously with the specified + and , and releases + all associated resources. + + + + This method doesn't wait for the close to be complete. + + + This method emits a event if the size of + is greater than 123 bytes. + + + + One of the enum values, represents the status code indicating + the reason for the close. + + + A that represents the reason for the close. + + + + + Establishes a WebSocket connection. + + + This method isn't available in a server. + + + + + Establishes a WebSocket connection asynchronously. + + + + This method doesn't wait for the connect to be complete. + + + This method isn't available in a server. + + + + + + Sends a ping using the WebSocket connection. + + + true if the receives a pong to this ping in a time; + otherwise, false. + + + + + Sends a ping with the specified using the WebSocket connection. + + + true if the receives a pong to this ping in a time; + otherwise, false. + + + A that represents the message to send. + + + + + Sends binary using the WebSocket connection. + + + An array of that represents the binary data to send. + + + + + Sends the specified as binary data using the WebSocket connection. + + + A that represents the file to send. + + + + + Sends text using the WebSocket connection. + + + A that represents the text data to send. + + + + + Sends binary asynchronously using the WebSocket connection. + + + This method doesn't wait for the send to be complete. + + + An array of that represents the binary data to send. + + + An Action<bool> delegate that references the method(s) called when + the send is complete. A passed to this delegate is true + if the send is complete successfully. + + + + + Sends the specified as binary data asynchronously using + the WebSocket connection. + + + This method doesn't wait for the send to be complete. + + + A that represents the file to send. + + + An Action<bool> delegate that references the method(s) called when + the send is complete. A passed to this delegate is true + if the send is complete successfully. + + + + + Sends text asynchronously using the WebSocket connection. + + + This method doesn't wait for the send to be complete. + + + A that represents the text data to send. + + + An Action<bool> delegate that references the method(s) called when + the send is complete. A passed to this delegate is true + if the send is complete successfully. + + + + + Sends binary data from the specified asynchronously using + the WebSocket connection. + + + This method doesn't wait for the send to be complete. + + + A from which contains the binary data to send. + + + An that represents the number of bytes to send. + + + An Action<bool> delegate that references the method(s) called when + the send is complete. A passed to this delegate is true + if the send is complete successfully. + + + + + Sets an HTTP to send with + the WebSocket handshake request to the server. + + + A that represents the cookie to send. + + + + + Sets a pair of and for + the HTTP authentication (Basic/Digest). + + + A that represents the user name used to authenticate. + + + A that represents the password for + used to authenticate. + + + true if the sends the Basic authentication credentials with + the first handshake request to the server; otherwise, false. + + + + + Sets an HTTP proxy server URL to connect through, and if necessary, + a pair of and for + the proxy server authentication (Basic/Digest). + + + A that represents the proxy server URL to connect through. + + + A that represents the user name used to authenticate. + + + A that represents the password for + used to authenticate. + + + + + Closes the WebSocket connection, and releases all associated resources. + + + This method closes the connection with . + + + + + Gets or sets the compression method used to compress a message on the WebSocket connection. + + + One of the enum values, specifies the compression method + used to compress a message. The default value is . + + + + + Gets the HTTP cookies included in the WebSocket handshake request and response. + + + An + instance that provides an enumerator which supports the iteration over the collection of + the cookies. + + + + + Gets the credentials for the HTTP authentication (Basic/Digest). + + + A that represents the credentials for + the authentication. The default value is . + + + + + Gets or sets a value indicating whether the emits + a event when receives a ping. + + + true if the emits a event + when receives a ping; otherwise, false. The default value is false. + + + + + Gets or sets a value indicating whether the redirects + the handshake request to the new URL located in the handshake response. + + + true if the redirects the handshake request to + the new URL; otherwise, false. The default value is false. + + + + + Gets the WebSocket extensions selected by the server. + + + A that represents the extensions if any. + The default value is . + + + + + Gets a value indicating whether the WebSocket connection is alive. + + + true if the connection is alive; otherwise, false. + + + + + Gets a value indicating whether the WebSocket connection is secure. + + + true if the connection is secure; otherwise, false. + + + + + Gets the logging functions. + + + The default logging level is . If you would like to change it, + you should set this Log.Level property to any of the enum + values. + + + A that provides the logging functions. + + + + + Gets or sets the value of the HTTP Origin header to send with + the WebSocket handshake request to the server. + + + The sends the Origin header if this property has any. + + + + A that represents the value of + the Origin header to send. + The default value is . + + + The Origin header has the following syntax: + <scheme>://<host>[:<port>] + + + + + + Gets the WebSocket subprotocol selected by the server. + + + A that represents the subprotocol if any. + The default value is . + + + + + Gets the state of the WebSocket connection. + + + One of the enum values, indicates the state of the connection. + The default value is . + + + + + Gets or sets the SSL configuration used to authenticate the server and + optionally the client for secure connection. + + + A that represents the configuration used + to authenticate the server and optionally the client for secure connection, + or if the is used in a server. + + + + + Gets the WebSocket URL used to connect, or accepted. + + + A that represents the URL used to connect, or accepted. + + + + + Gets or sets the wait time for the response to the Ping or Close. + + + A that represents the wait time. The default value is the same as + 5 seconds, or 1 second if the is used in a server. + + + + + Occurs when the WebSocket connection has been closed. + + + + + Occurs when the gets an error. + + + + + Occurs when the receives a message. + + + + + Occurs when the WebSocket connection has been established. + + + + + Provides a WebSocket protocol server. + + + The WebSocketServer class can provide multiple WebSocket services. + + + + + Initializes a new instance of the class. + + + An instance initialized by this constructor listens for the incoming connection requests on + port 80. + + + + + Initializes a new instance of the class with + the specified . + + + + An instance initialized by this constructor listens for the incoming connection requests + on . + + + If is 443, that instance provides a secure connection. + + + + An that represents the port number on which to listen. + + + isn't between 1 and 65535 inclusive. + + + + + Initializes a new instance of the class with + the specified WebSocket URL. + + + + An instance initialized by this constructor listens for the incoming connection requests + on the host name and port in . + + + If doesn't include a port, either port 80 or 443 is used on + which to listen. It's determined by the scheme (ws or wss) in . + (Port 80 if the scheme is ws.) + + + + A that represents the WebSocket URL of the server. + + + is . + + + + is empty. + + + -or- + + + is invalid. + + + + + + Initializes a new instance of the class with + the specified and . + + + An instance initialized by this constructor listens for the incoming connection requests on + . + + + An that represents the port number on which to listen. + + + A that indicates providing a secure connection or not. + (true indicates providing a secure connection.) + + + isn't between 1 and 65535 inclusive. + + + + + Initializes a new instance of the class with + the specified and . + + + + An instance initialized by this constructor listens for the incoming connection requests + on and . + + + If is 443, that instance provides a secure connection. + + + + A that represents the local IP address of the server. + + + An that represents the port number on which to listen. + + + is . + + + isn't a local IP address. + + + isn't between 1 and 65535 inclusive. + + + + + Initializes a new instance of the class with + the specified , , + and . + + + An instance initialized by this constructor listens for the incoming connection requests on + and . + + + A that represents the local IP address of the server. + + + An that represents the port number on which to listen. + + + A that indicates providing a secure connection or not. + (true indicates providing a secure connection.) + + + is . + + + isn't a local IP address. + + + isn't between 1 and 65535 inclusive. + + + + + Adds a WebSocket service with the specified behavior, , + and . + + + + This method converts to URL-decoded string, + and removes '/' from tail end of . + + + returns an initialized specified typed + instance. + + + + A that represents the absolute path to the service to add. + + + A Func<T> delegate that references the method used to initialize + a new specified typed instance (a new + instance). + + + The type of the behavior of the service to add. The TBehavior must inherit + the class. + + + + + Adds a WebSocket service with the specified behavior and . + + + This method converts to URL-decoded string, + and removes '/' from tail end of . + + + A that represents the absolute path to the service to add. + + + The type of the behavior of the service to add. The TBehaviorWithNew must inherit + the class, and must have a public parameterless + constructor. + + + + + Removes the WebSocket service with the specified . + + + This method converts to URL-decoded string, + and removes '/' from tail end of . + + + true if the service is successfully found and removed; otherwise, false. + + + A that represents the absolute path to the service to find. + + + + + Starts receiving the WebSocket connection requests. + + + + + Stops receiving the WebSocket connection requests. + + + + + Stops receiving the WebSocket connection requests with + the specified and . + + + A that represents the status code indicating the reason for the stop. + + + A that represents the reason for the stop. + + + + + Stops receiving the WebSocket connection requests with + the specified and . + + + One of the enum values, represents the status code indicating + the reason for the stop. + + + A that represents the reason for the stop. + + + + + Gets the local IP address of the server. + + + A that represents the local IP address of the server. + + + + + Gets or sets the scheme used to authenticate the clients. + + + One of the enum values, + indicates the scheme used to authenticate the clients. The default value is + . + + + + + Gets a value indicating whether the server has started. + + + true if the server has started; otherwise, false. + + + + + Gets a value indicating whether the server provides a secure connection. + + + true if the server provides a secure connection; otherwise, false. + + + + + Gets or sets a value indicating whether the server cleans up + the inactive sessions periodically. + + + true if the server cleans up the inactive sessions every 60 seconds; + otherwise, false. The default value is true. + + + + + Gets the logging functions. + + + The default logging level is . If you would like to change it, + you should set the Log.Level property to any of the enum + values. + + + A that provides the logging functions. + + + + + Gets the port on which to listen for incoming connection requests. + + + An that represents the port number on which to listen. + + + + + Gets or sets the name of the realm associated with the server. + + + If this property is or empty, "SECRET AREA" will be used as + the name of the realm. + + + A that represents the name of the realm. The default value is + . + + + + + Gets or sets a value indicating whether the server is allowed to be bound to + an address that is already in use. + + + If you would like to resolve to wait for socket in TIME_WAIT state, + you should set this property to true. + + + true if the server is allowed to be bound to an address that is already in use; + otherwise, false. The default value is false. + + + + + Gets or sets the SSL configuration used to authenticate the server and + optionally the client for secure connection. + + + A that represents the configuration used to + authenticate the server and optionally the client for secure connection. + + + + + Gets or sets the delegate called to find the credentials for an identity used to + authenticate a client. + + + A Func<, > delegate + that references the method(s) used to find the credentials. The default value is + . + + + + + Gets or sets the wait time for the response to the WebSocket Ping or Close. + + + A that represents the wait time. The default value is + the same as 1 second. + + + + + Gets the access to the WebSocket services provided by the server. + + + A that manages the WebSocket services. + + + + + Specifies the scheme for authentication. + + + + + No authentication is allowed. + + + + + Specifies digest authentication. + + + + + Specifies basic authentication. + + + + + Specifies anonymous authentication. + + + + + Provides a set of methods and properties used to manage an HTTP Cookie. + + + + The Cookie class supports the following cookie formats: + Netscape specification, + RFC 2109, and + RFC 2965 + + + The Cookie class cannot be inherited. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified + and . + + + A that represents the Name of the cookie. + + + A that represents the Value of the cookie. + + + + is or empty. + + + - or - + + + contains an invalid character. + + + - or - + + + is . + + + - or - + + + contains a string not enclosed in double quotes + that contains an invalid character. + + + + + + Initializes a new instance of the class with the specified + , , and . + + + A that represents the Name of the cookie. + + + A that represents the Value of the cookie. + + + A that represents the value of the Path attribute of the cookie. + + + + is or empty. + + + - or - + + + contains an invalid character. + + + - or - + + + is . + + + - or - + + + contains a string not enclosed in double quotes + that contains an invalid character. + + + + + + Initializes a new instance of the class with the specified + , , , and + . + + + A that represents the Name of the cookie. + + + A that represents the Value of the cookie. + + + A that represents the value of the Path attribute of the cookie. + + + A that represents the value of the Domain attribute of the cookie. + + + + is or empty. + + + - or - + + + contains an invalid character. + + + - or - + + + is . + + + - or - + + + contains a string not enclosed in double quotes + that contains an invalid character. + + + + + + Determines whether the specified is equal to the current + . + + + An to compare with the current . + + + true if is equal to the current ; + otherwise, false. + + + + + Serves as a hash function for a object. + + + An that represents the hash code for the current . + + + + + Returns a that represents the current . + + + This method returns a to use to send an HTTP Cookie to + an origin server. + + + A that represents the current . + + + + + Gets or sets the value of the Comment attribute of the cookie. + + + A that represents the comment to document intended use of the cookie. + + + + + Gets or sets the value of the CommentURL attribute of the cookie. + + + A that represents the URI that provides the comment to document intended + use of the cookie. + + + + + Gets or sets a value indicating whether the client discards the cookie unconditionally + when the client terminates. + + + true if the client discards the cookie unconditionally when the client terminates; + otherwise, false. The default value is false. + + + + + Gets or sets the value of the Domain attribute of the cookie. + + + A that represents the URI for which the cookie is valid. + + + + + Gets or sets a value indicating whether the cookie has expired. + + + true if the cookie has expired; otherwise, false. + The default value is false. + + + + + Gets or sets the value of the Expires attribute of the cookie. + + + A that represents the date and time at which the cookie expires. + The default value is . + + + + + Gets or sets a value indicating whether non-HTTP APIs can access the cookie. + + + true if non-HTTP APIs cannot access the cookie; otherwise, false. + The default value is false. + + + + + Gets or sets the Name of the cookie. + + + A that represents the Name of the cookie. + + + + The value specified for a set operation is or empty. + + + - or - + + + The value specified for a set operation contains an invalid character. + + + + + + Gets or sets the value of the Path attribute of the cookie. + + + A that represents the subset of URI on the origin server + to which the cookie applies. + + + + + Gets or sets the value of the Port attribute of the cookie. + + + A that represents the list of TCP ports to which the cookie applies. + + + The value specified for a set operation isn't enclosed in double quotes or + couldn't be parsed. + + + + + Gets or sets a value indicating whether the security level of the cookie is secure. + + + When this property is true, the cookie may be included in the HTTP request + only if the request is transmitted over the HTTPS. + + + true if the security level of the cookie is secure; otherwise, false. + The default value is false. + + + + + Gets the time when the cookie was issued. + + + A that represents the time when the cookie was issued. + + + + + Gets or sets the Value of the cookie. + + + A that represents the Value of the cookie. + + + + The value specified for a set operation is . + + + - or - + + + The value specified for a set operation contains a string not enclosed in double quotes + that contains an invalid character. + + + + + + Gets or sets the value of the Version attribute of the cookie. + + + An that represents the version of the HTTP state management + to which the cookie conforms. + + + The value specified for a set operation isn't 0 or 1. + + + + + Provides a collection container for instances of the class. + + + + + Initializes a new instance of the class. + + + + + Adds the specified to the collection. + + + A to add. + + + is . + + + + + Adds the specified to the collection. + + + A that contains the cookies to add. + + + is . + + + + + Copies the elements of the collection to the specified , starting at + the specified in the . + + + An that represents the destination of the elements copied from + the collection. + + + An that represents the zero-based index in + at which copying begins. + + + is . + + + is less than zero. + + + + is multidimensional. + + + -or- + + + The number of elements in the collection is greater than the available space from + to the end of the destination . + + + + The elements in the collection cannot be cast automatically to the type of the destination + . + + + + + Copies the elements of the collection to the specified array of , + starting at the specified in the . + + + An array of that represents the destination of the elements + copied from the collection. + + + An that represents the zero-based index in + at which copying begins. + + + is . + + + is less than zero. + + + The number of elements in the collection is greater than the available space from + to the end of the destination . + + + + + Gets the enumerator used to iterate through the collection. + + + An instance used to iterate through the collection. + + + + + Gets the number of cookies in the collection. + + + An that represents the number of cookies in the collection. + + + + + Gets a value indicating whether the collection is read-only. + + + true if the collection is read-only; otherwise, false. + The default value is true. + + + + + Gets a value indicating whether the access to the collection is thread safe. + + + true if the access to the collection is thread safe; otherwise, false. + The default value is false. + + + + + Gets the at the specified from + the collection. + + + A at the specified in the collection. + + + An that represents the zero-based index of the + to find. + + + is out of allowable range of indexes for the collection. + + + + + Gets the with the specified from + the collection. + + + A with the specified in the collection. + + + A that represents the name of the to find. + + + is . + + + + + Gets an object used to synchronize access to the collection. + + + An used to synchronize access to the collection. + + + + + The exception that is thrown when a gets an error. + + + + + Initializes a new instance of the class from + the specified and . + + + A that contains the serialized object data. + + + A that specifies the source for the deserialization. + + + + + Initializes a new instance of the class. + + + + + Populates the specified with the data needed to serialize + the current . + + + A that holds the serialized object data. + + + A that specifies the destination for the serialization. + + + + + Populates the specified with the data needed to serialize + the current . + + + A that holds the serialized object data. + + + A that specifies the destination for the serialization. + + + + + Provides a simple, programmatically controlled HTTP listener. + + + + + Initializes a new instance of the class. + + + + + Shuts down the listener immediately. + + + + + Begins getting an incoming request asynchronously. + + + This asynchronous operation must be completed by calling the EndGetContext method. + Typically, the method is invoked by the delegate. + + + An that represents the status of the asynchronous operation. + + + An delegate that references the method to invoke when + the asynchronous operation completes. + + + An that represents a user defined object to pass to + the delegate. + + + + This listener has no URI prefix on which listens. + + + -or- + + + This listener hasn't been started, or is currently stopped. + + + + This listener has been closed. + + + + + Shuts down the listener. + + + + + Ends an asynchronous operation to get an incoming request. + + + This method completes an asynchronous operation started by calling + the BeginGetContext method. + + + A that represents a request. + + + An obtained by calling the BeginGetContext method. + + + is . + + + wasn't obtained by calling the BeginGetContext method. + + + This method was already called for the specified . + + + This listener has been closed. + + + + + Gets an incoming request. + + + This method waits for an incoming request, and returns when a request is received. + + + A that represents a request. + + + + This listener has no URI prefix on which listens. + + + -or- + + + This listener hasn't been started, or is currently stopped. + + + + This listener has been closed. + + + + + Starts receiving incoming requests. + + + This listener has been closed. + + + + + Stops receiving incoming requests. + + + This listener has been closed. + + + + + Releases all resources used by the listener. + + + + + Gets or sets the scheme used to authenticate the clients. + + + One of the enum values, + represents the scheme used to authenticate the clients. The default value is + . + + + This listener has been closed. + + + + + Gets or sets the delegate called to select the scheme used to authenticate the clients. + + + If you set this property, the listener uses the authentication scheme selected by + the delegate for each request. Or if you don't set, the listener uses the value of + the property as the authentication + scheme for all requests. + + + A Func<, > + delegate that references the method used to select an authentication scheme. The default + value is . + + + This listener has been closed. + + + + + Gets or sets the path to the folder in which stores the certificate files used to + authenticate the server on the secure connection. + + + + This property represents the path to the folder in which stores the certificate files + associated with each port number of added URI prefixes. A set of the certificate files + is a pair of the 'port number'.cer (DER) and 'port number'.key + (DER, RSA Private Key). + + + If this property is or empty, the result of + System.Environment.GetFolderPath + () is used as the default path. + + + + A that represents the path to the folder in which stores + the certificate files. The default value is . + + + This listener has been closed. + + + + + Gets or sets a value indicating whether the listener returns exceptions that occur when + sending the response to the client. + + + true if the listener shouldn't return those exceptions; otherwise, false. + The default value is false. + + + This listener has been closed. + + + + + Gets a value indicating whether the listener has been started. + + + true if the listener has been started; otherwise, false. + + + + + Gets a value indicating whether the listener can be used with the current operating system. + + + true. + + + + + Gets the logging functions. + + + The default logging level is . If you would like to change it, + you should set the Log.Level property to any of the enum + values. + + + A that provides the logging functions. + + + + + Gets the URI prefixes handled by the listener. + + + A that contains the URI prefixes. + + + This listener has been closed. + + + + + Gets or sets the name of the realm associated with the listener. + + + If this property is or empty, "SECRET AREA" will be used as + the name of the realm. + + + A that represents the name of the realm. The default value is + . + + + This listener has been closed. + + + + + Gets or sets the SSL configuration used to authenticate the server and + optionally the client for secure connection. + + + A that represents the configuration used to + authenticate the server and optionally the client for secure connection. + + + This listener has been closed. + + + + + Gets or sets a value indicating whether, when NTLM authentication is used, + the authentication information of first request is used to authenticate + additional requests on the same connection. + + + This property isn't currently supported and always throws + a . + + + true if the authentication information of first request is used; + otherwise, false. + + + Any use of this property. + + + + + Gets or sets the delegate called to find the credentials for an identity used to + authenticate a client. + + + A Func<, > delegate + that references the method used to find the credentials. The default value is + . + + + This listener has been closed. + + + + + Provides the access to the HTTP request and response objects used by + the . + + + This class cannot be inherited. + + + + + Accepts a WebSocket handshake request. + + + A that represents + the WebSocket handshake request. + + + A that represents the subprotocol supported on + this WebSocket connection. + + + + is empty. + + + -or- + + + contains an invalid character. + + + + This method has already been called. + + + + + Gets the HTTP request object that represents a client request. + + + A that represents the client request. + + + + + Gets the HTTP response object used to send a response to the client. + + + A that represents a response to the client request. + + + + + Gets the client information (identity, authentication, and security roles). + + + A instance that represents the client information. + + + + + The exception that is thrown when a gets an error + processing an HTTP request. + + + + + Initializes a new instance of the class from + the specified and . + + + A that contains the serialized object data. + + + A that specifies the source for the deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with the specified . + + + An that identifies the error. + + + + + Initializes a new instance of the class + with the specified and . + + + An that identifies the error. + + + A that describes the error. + + + + + Gets the error code that identifies the error that occurred. + + + An that identifies the error. + + + + + Provides the collection used to store the URI prefixes for the . + + + The responds to the request which has a requested URI that + the prefixes most closely match. + + + + + Adds the specified to the collection. + + + A that represents the URI prefix to add. The prefix must be + a well-formed URI prefix with http or https scheme, and must end with a '/'. + + + is . + + + is invalid. + + + The associated with this collection is closed. + + + + + Removes all URI prefixes from the collection. + + + The associated with this collection is closed. + + + + + Returns a value indicating whether the collection contains the specified + . + + + true if the collection contains ; + otherwise, false. + + + A that represents the URI prefix to test. + + + is . + + + The associated with this collection is closed. + + + + + Copies the contents of the collection to the specified . + + + An that receives the URI prefix strings in the collection. + + + An that represents the zero-based index in + at which copying begins. + + + The associated with this collection is closed. + + + + + Copies the contents of the collection to the specified array of . + + + An array of that receives the URI prefix strings in the collection. + + + An that represents the zero-based index in + at which copying begins. + + + The associated with this collection is closed. + + + + + Gets the enumerator used to iterate through the . + + + An instance used to iterate + through the collection. + + + + + Removes the specified from the collection. + + + true if is successfully found and removed; + otherwise, false. + + + A that represents the URI prefix to remove. + + + is . + + + The associated with this collection is closed. + + + + + Gets the enumerator used to iterate through the . + + + An instance used to iterate through the collection. + + + + + Gets the number of prefixes in the collection. + + + An that represents the number of prefixes. + + + + + Gets a value indicating whether the access to the collection is read-only. + + + Always returns false. + + + + + Gets a value indicating whether the access to the collection is synchronized. + + + Always returns false. + + + + + Provides the access to a request to the . + + + The HttpListenerRequest class cannot be inherited. + + + + + Begins getting the client's X.509 v.3 certificate asynchronously. + + + This asynchronous operation must be completed by calling + the method. Typically, + that method is invoked by the delegate. + + + An that contains the status of the asynchronous operation. + + + An delegate that references the method(s) called when + the asynchronous operation completes. + + + An that contains a user defined object to pass to + the delegate. + + + This method isn't implemented. + + + + + Ends an asynchronous operation to get the client's X.509 v.3 certificate. + + + This method completes an asynchronous operation started by calling + the method. + + + A that contains the client's X.509 v.3 certificate. + + + An obtained by calling + the method. + + + This method isn't implemented. + + + + + Gets the client's X.509 v.3 certificate. + + + A that contains the client's X.509 v.3 certificate. + + + This method isn't implemented. + + + + + Returns a that represents + the current . + + + A that represents the current . + + + + + Gets the media types which are acceptable for the response. + + + An array of that contains the media type names in + the Accept request-header, or if the request didn't include + the Accept header. + + + + + Gets an error code that identifies a problem with the client's certificate. + + + Always returns 0. + + + + + Gets the encoding for the entity body data included in the request. + + + A that represents the encoding for the entity body data, + or if the request didn't include the information about + the encoding. + + + + + Gets the number of bytes in the entity body data included in the request. + + + A that represents the value of the Content-Length entity-header, + or -1 if the value isn't known. + + + + + Gets the media type of the entity body included in the request. + + + A that represents the value of the Content-Type entity-header. + + + + + Gets the cookies included in the request. + + + A that contains the cookies included in the request. + + + + + Gets a value indicating whether the request has the entity body. + + + true if the request has the entity body; otherwise, false. + + + + + Gets the HTTP headers used in the request. + + + A that contains the HTTP headers used in the request. + + + + + Gets the HTTP method used in the request. + + + A that represents the HTTP method used in the request. + + + + + Gets a that contains the entity body data included in the request. + + + A that contains the entity body data included in the request. + + + + + Gets a value indicating whether the client that sent the request is authenticated. + + + true if the client is authenticated; otherwise, false. + + + + + Gets a value indicating whether the request is sent from the local computer. + + + true if the request is sent from the local computer; otherwise, false. + + + + + Gets a value indicating whether the HTTP connection is secured using the SSL protocol. + + + true if the HTTP connection is secured; otherwise, false. + + + + + Gets a value indicating whether the request is a WebSocket connection request. + + + true if the request is a WebSocket connection request; otherwise, false. + + + + + Gets a value indicating whether the client requests a persistent connection. + + + true if the client requests a persistent connection; otherwise, false. + + + + + Gets the server endpoint as an IP address and a port number. + + + A that represents the server endpoint. + + + + + Gets the HTTP version used in the request. + + + A that represents the HTTP version used in the request. + + + + + Gets the query string included in the request. + + + A that contains the query string parameters. + + + + + Gets the raw URL (without the scheme, host, and port) requested by the client. + + + A that represents the raw URL requested by the client. + + + + + Gets the client endpoint as an IP address and a port number. + + + A that represents the client endpoint. + + + + + Gets the request identifier of a incoming HTTP request. + + + A that represents the identifier of a request. + + + + + Gets the URL requested by the client. + + + A that represents the URL requested by the client. + + + + + Gets the URL of the resource from which the requested URL was obtained. + + + A that represents the value of the Referer request-header, + or if the request didn't include an Referer header. + + + + + Gets the information about the user agent originating the request. + + + A that represents the value of the User-Agent request-header. + + + + + Gets the server endpoint as an IP address and a port number. + + + A that represents the server endpoint. + + + + + Gets the internet host name and port number (if present) specified by the client. + + + A that represents the value of the Host request-header. + + + + + Gets the natural languages which are preferred for the response. + + + An array of that contains the natural language names in + the Accept-Language request-header, or if the request + didn't include an Accept-Language header. + + + + + Provides the access to a response to a request received by the . + + + The HttpListenerResponse class cannot be inherited. + + + + + Closes the connection to the client without returning a response. + + + + + Adds an HTTP header with the specified and + to the headers for the response. + + + A that represents the name of the header to add. + + + A that represents the value of the header to add. + + + is or empty. + + + + or contains invalid characters. + + + -or- + + + is a restricted header name. + + + + The length of is greater than 65,535 characters. + + + The header cannot be allowed to add to the current headers. + + + + + Appends the specified to the cookies sent with the response. + + + A to append. + + + is . + + + + + Appends a to the specified HTTP header sent with the response. + + + A that represents the name of the header to append + to. + + + A that represents the value to append to the header. + + + is or empty. + + + + or contains invalid characters. + + + -or- + + + is a restricted header name. + + + + The length of is greater than 65,535 characters. + + + The current headers cannot allow the header to append a value. + + + + + Returns the response to the client and releases the resources used by + this instance. + + + + + Returns the response with the specified array of to the client and + releases the resources used by this instance. + + + An array of that contains the response entity body data. + + + true if this method blocks execution while flushing the stream to the client; + otherwise, false. + + + is . + + + This object is closed. + + + + + Copies some properties from the specified to + this response. + + + A to copy. + + + is . + + + + + Configures the response to redirect the client's request to + the specified . + + + This method sets the property to + , the property to + 302, and the property to + "Found". + + + A that represents the URL to redirect the client's request to. + + + is . + + + isn't an absolute URL. + + + The response has already been sent. + + + This object is closed. + + + + + Adds or updates a in the cookies sent with the response. + + + A to set. + + + is . + + + already exists in the cookies and couldn't be replaced. + + + + + Releases all resources used by the . + + + + + Gets or sets the encoding for the entity body data included in the response. + + + A that represents the encoding for the entity body data, + or if no encoding is specified. + + + This object is closed. + + + + + Gets or sets the number of bytes in the entity body data included in the response. + + + A that represents the value of the Content-Length entity-header. + + + The value specified for a set operation is less than zero. + + + The response has already been sent. + + + This object is closed. + + + + + Gets or sets the media type of the entity body included in the response. + + + A that represents the media type of the entity body, + or if no media type is specified. This value is + used for the value of the Content-Type entity-header. + + + The value specified for a set operation is empty. + + + This object is closed. + + + + + Gets or sets the cookies sent with the response. + + + A that contains the cookies sent with the response. + + + + + Gets or sets the HTTP headers sent to the client. + + + A that contains the headers sent to the client. + + + The value specified for a set operation isn't valid for a response. + + + + + Gets or sets a value indicating whether the server requests a persistent connection. + + + true if the server requests a persistent connection; otherwise, false. + The default value is true. + + + The response has already been sent. + + + This object is closed. + + + + + Gets a to use to write the entity body data. + + + A to use to write the entity body data. + + + This object is closed. + + + + + Gets or sets the HTTP version used in the response. + + + A that represents the version used in the response. + + + The value specified for a set operation is . + + + The value specified for a set operation doesn't have its Major property set to 1 or + doesn't have its Minor property set to either 0 or 1. + + + The response has already been sent. + + + This object is closed. + + + + + Gets or sets the URL to which the client is redirected to locate a requested resource. + + + A that represents the value of the Location response-header, + or if no redirect location is specified. + + + The value specified for a set operation isn't an absolute URL. + + + This object is closed. + + + + + Gets or sets a value indicating whether the response uses the chunked transfer encoding. + + + true if the response uses the chunked transfer encoding; + otherwise, false. The default value is false. + + + The response has already been sent. + + + This object is closed. + + + + + Gets or sets the HTTP status code returned to the client. + + + An that represents the status code for the response to + the request. The default value is same as . + + + The response has already been sent. + + + This object is closed. + + + The value specified for a set operation is invalid. Valid values are + between 100 and 999 inclusive. + + + + + Gets or sets the description of the HTTP status code returned to the client. + + + A that represents the description of the status code. The default + value is the RFC 2616 + description for the property value, + or if an RFC 2616 description doesn't exist. + + + The value specified for a set operation contains invalid characters. + + + The response has already been sent. + + + This object is closed. + + + + + Decodes an HTML-encoded and returns the decoded . + + + A that represents the decoded string. + + + A to decode. + + + + + Decodes an HTML-encoded and sends the decoded + to the specified . + + + A to decode. + + + A that receives the decoded string. + + + + + HTML-encodes a and returns the encoded . + + + A that represents the encoded string. + + + A to encode. + + + + + HTML-encodes a and sends the encoded + to the specified . + + + A to encode. + + + A that receives the encoded string. + + + + + Provides a collection of the HTTP headers associated with a request or response. + + + + + Initializes a new instance of the class from + the specified and . + + + A that contains the serialized object data. + + + A that specifies the source for the deserialization. + + + is . + + + An element with the specified name isn't found in . + + + + + Initializes a new instance of the class. + + + + + Adds a header to the collection without checking if the header is on + the restricted header list. + + + A that represents the name of the header to add. + + + A that represents the value of the header to add. + + + is or empty. + + + or contains invalid characters. + + + The length of is greater than 65,535 characters. + + + The current instance doesn't allow + the . + + + + + Adds the specified to the collection. + + + A that represents the header with the name and value separated by + a colon (':'). + + + is , empty, or the name part of + is empty. + + + + doesn't contain a colon. + + + -or- + + + is a restricted header. + + + -or- + + + The name or value part of contains invalid characters. + + + + The length of the value part of is greater than 65,535 characters. + + + The current instance doesn't allow + the . + + + + + Adds the specified request with + the specified to the collection. + + + One of the enum values, represents + the request header to add. + + + A that represents the value of the header to add. + + + + is a restricted header. + + + -or- + + + contains invalid characters. + + + + The length of is greater than 65,535 characters. + + + The current instance doesn't allow + the request . + + + + + Adds the specified response with + the specified to the collection. + + + One of the enum values, represents + the response header to add. + + + A that represents the value of the header to add. + + + + is a restricted header. + + + -or- + + + contains invalid characters. + + + + The length of is greater than 65,535 characters. + + + The current instance doesn't allow + the response . + + + + + Adds a header with the specified and + to the collection. + + + A that represents the name of the header to add. + + + A that represents the value of the header to add. + + + is or empty. + + + + or contains invalid characters. + + + -or- + + + is a restricted header name. + + + + The length of is greater than 65,535 characters. + + + The current instance doesn't allow + the header . + + + + + Removes all headers from the collection. + + + + + Get the value of the header at the specified in the collection. + + + A that receives the value of the header. + + + An that represents the zero-based index of the header to find. + + + is out of allowable range of indexes for the collection. + + + + + Get the value of the header with the specified in the collection. + + + A that receives the value of the header if found; + otherwise, . + + + A that represents the name of the header to find. + + + + + Gets the enumerator used to iterate through the collection. + + + An instance used to iterate through the collection. + + + + + Get the name of the header at the specified in the collection. + + + A that receives the header name. + + + An that represents the zero-based index of the header to find. + + + is out of allowable range of indexes for the collection. + + + + + Gets an array of header values stored in the specified position of + the collection. + + + An array of that receives the header values if found; + otherwise, . + + + An that represents the zero-based index of the header to find. + + + is out of allowable range of indexes for the collection. + + + + + Gets an array of header values stored in the specified . + + + An array of that receives the header values if found; + otherwise, . + + + A that represents the name of the header to find. + + + + + Populates the specified with the data needed to serialize + the . + + + A that holds the serialized object data. + + + A that specifies the destination for the serialization. + + + is . + + + + + Determines whether the specified header can be set for the request. + + + true if the header is restricted; otherwise, false. + + + A that represents the name of the header to test. + + + is or empty. + + + contains invalid characters. + + + + + Determines whether the specified header can be set for the request or the response. + + + true if the header is restricted; otherwise, false. + + + A that represents the name of the header to test. + + + true if does the test for the response; for the request, false. + + + is or empty. + + + contains invalid characters. + + + + + Implements the interface and raises the deserialization event + when the deserialization is complete. + + + An that represents the source of the deserialization event. + + + + + Removes the specified request from the collection. + + + One of the enum values, represents + the request header to remove. + + + is a restricted header. + + + The current instance doesn't allow + the request . + + + + + Removes the specified response from the collection. + + + One of the enum values, represents + the response header to remove. + + + is a restricted header. + + + The current instance doesn't allow + the response . + + + + + Removes the specified header from the collection. + + + A that represents the name of the header to remove. + + + is or empty. + + + + contains invalid characters. + + + -or- + + + is a restricted header name. + + + + The current instance doesn't allow + the header . + + + + + Sets the specified request to the specified value. + + + One of the enum values, represents + the request header to set. + + + A that represents the value of the request header to set. + + + + is a restricted header. + + + -or- + + + contains invalid characters. + + + + The length of is greater than 65,535 characters. + + + The current instance doesn't allow + the request . + + + + + Sets the specified response to the specified value. + + + One of the enum values, represents + the response header to set. + + + A that represents the value of the response header to set. + + + + is a restricted header. + + + -or- + + + contains invalid characters. + + + + The length of is greater than 65,535 characters. + + + The current instance doesn't allow + the response . + + + + + Sets the specified header to the specified value. + + + A that represents the name of the header to set. + + + A that represents the value of the header to set. + + + is or empty. + + + + or contains invalid characters. + + + -or- + + + is a restricted header name. + + + + The length of is greater than 65,535 characters. + + + The current instance doesn't allow + the header . + + + + + Converts the current to an array of . + + + An array of that receives the converted current + . + + + + + Returns a that represents the current + . + + + A that represents the current . + + + + + Populates the specified with the data needed to serialize + the current . + + + A that holds the serialized object data. + + + A that specifies the destination for the serialization. + + + is . + + + + + Gets all header names in the collection. + + + An array of that contains all header names in the collection. + + + + + Gets the number of headers in the collection. + + + An that represents the number of headers in the collection. + + + + + Gets or sets the specified request in the collection. + + + A that represents the value of the request . + + + One of the enum values, represents + the request header to get or set. + + + + is a restricted header. + + + -or- + + + contains invalid characters. + + + + The length of is greater than 65,535 characters. + + + The current instance doesn't allow + the request . + + + + + Gets or sets the specified response in the collection. + + + A that represents the value of the response . + + + One of the enum values, represents + the response header to get or set. + + + + is a restricted header. + + + -or- + + + contains invalid characters. + + + + The length of is greater than 65,535 characters. + + + The current instance doesn't allow + the response . + + + + + Gets a collection of header names in the collection. + + + A that contains + all header names in the collection. + + + + + Provides a simple HTTP server that allows to accept the WebSocket connection requests. + + + The HttpServer class can provide multiple WebSocket services. + + + + + Initializes a new instance of the class. + + + An instance initialized by this constructor listens for the incoming requests on port 80. + + + + + Initializes a new instance of the class with + the specified . + + + + An instance initialized by this constructor listens for the incoming requests on + . + + + If is 443, that instance provides a secure connection. + + + + An that represents the port number on which to listen. + + + isn't between 1 and 65535 inclusive. + + + + + Initializes a new instance of the class with + the specified HTTP URL. + + + + An instance initialized by this constructor listens for the incoming requests on + the host name and port in . + + + If doesn't include a port, either port 80 or 443 is used on + which to listen. It's determined by the scheme (http or https) in . + (Port 80 if the scheme is http.) + + + + A that represents the HTTP URL of the server. + + + is . + + + + is empty. + + + -or- + + + is invalid. + + + + + + Initializes a new instance of the class with + the specified and . + + + An instance initialized by this constructor listens for the incoming requests on + . + + + An that represents the port number on which to listen. + + + A that indicates providing a secure connection or not. + (true indicates providing a secure connection.) + + + isn't between 1 and 65535 inclusive. + + + + + Initializes a new instance of the class with + the specified and . + + + + An instance initialized by this constructor listens for the incoming requests on + and . + + + If is 443, that instance provides a secure connection. + + + + A that represents the local IP address of the server. + + + An that represents the port number on which to listen. + + + is . + + + isn't a local IP address. + + + isn't between 1 and 65535 inclusive. + + + + + Initializes a new instance of the class with + the specified , , + and . + + + An instance initialized by this constructor listens for the incoming requests on + and . + + + A that represents the local IP address of the server. + + + An that represents the port number on which to listen. + + + A that indicates providing a secure connection or not. + (true indicates providing a secure connection.) + + + is . + + + isn't a local IP address. + + + isn't between 1 and 65535 inclusive. + + + + + Adds the WebSocket service with the specified behavior, , + and . + + + + This method converts to URL-decoded string, + and removes '/' from tail end of . + + + returns an initialized specified typed + instance. + + + + A that represents the absolute path to the service to add. + + + A Func<T> delegate that references the method used to initialize + a new specified typed instance (a new + instance). + + + The type of the behavior of the service to add. The TBehavior must inherit + the class. + + + + + Adds a WebSocket service with the specified behavior and . + + + This method converts to URL-decoded string, + and removes '/' from tail end of . + + + A that represents the absolute path to the service to add. + + + The type of the behavior of the service to add. The TBehaviorWithNew must inherit + the class, and must have a public parameterless + constructor. + + + + + Gets the contents of the file with the specified . + + + An array of that receives the contents of the file, + or if it doesn't exist. + + + A that represents the virtual path to the file to find. + + + + + Removes the WebSocket service with the specified . + + + This method converts to URL-decoded string, + and removes '/' from tail end of . + + + true if the service is successfully found and removed; otherwise, false. + + + A that represents the absolute path to the service to find. + + + + + Starts receiving the HTTP requests. + + + + + Stops receiving the HTTP requests. + + + + + Stops receiving the HTTP requests with the specified and + used to stop the WebSocket services. + + + A that represents the status code indicating the reason for the stop. + + + A that represents the reason for the stop. + + + + + Stops receiving the HTTP requests with the specified and + used to stop the WebSocket services. + + + One of the enum values, represents the status code indicating + the reason for the stop. + + + A that represents the reason for the stop. + + + + + Gets the local IP address of the server. + + + A that represents the local IP address of the server. + + + + + Gets or sets the scheme used to authenticate the clients. + + + One of the enum values, + indicates the scheme used to authenticate the clients. The default value is + . + + + + + Gets a value indicating whether the server has started. + + + true if the server has started; otherwise, false. + + + + + Gets a value indicating whether the server provides a secure connection. + + + true if the server provides a secure connection; otherwise, false. + + + + + Gets or sets a value indicating whether the server cleans up + the inactive sessions in the WebSocket services periodically. + + + true if the server cleans up the inactive sessions every 60 seconds; + otherwise, false. The default value is true. + + + + + Gets the logging functions. + + + The default logging level is . If you would like to change it, + you should set the Log.Level property to any of the enum + values. + + + A that provides the logging functions. + + + + + Gets the port on which to listen for incoming requests. + + + An that represents the port number on which to listen. + + + + + Gets or sets the name of the realm associated with the server. + + + If this property is or empty, "SECRET AREA" will be used as + the name of the realm. + + + A that represents the name of the realm. The default value is + . + + + + + Gets or sets a value indicating whether the server is allowed to be bound to + an address that is already in use. + + + If you would like to resolve to wait for socket in TIME_WAIT state, + you should set this property to true. + + + true if the server is allowed to be bound to an address that is already in use; + otherwise, false. The default value is false. + + + + + Gets or sets the document root path of the server. + + + A that represents the document root path of the server. + The default value is "./Public". + + + + + Gets or sets the SSL configuration used to authenticate the server and + optionally the client for secure connection. + + + A that represents the configuration used to + authenticate the server and optionally the client for secure connection. + + + + + Gets or sets the delegate called to find the credentials for an identity used to + authenticate a client. + + + A Func<, > delegate + that references the method(s) used to find the credentials. The default value is + . + + + + + Gets or sets the wait time for the response to the WebSocket Ping or Close. + + + A that represents the wait time. The default value is + the same as 1 second. + + + + + Gets the access to the WebSocket services provided by the server. + + + A that manages the WebSocket services. + + + + + Occurs when the server receives an HTTP CONNECT request. + + + + + Occurs when the server receives an HTTP DELETE request. + + + + + Occurs when the server receives an HTTP GET request. + + + + + Occurs when the server receives an HTTP HEAD request. + + + + + Occurs when the server receives an HTTP OPTIONS request. + + + + + Occurs when the server receives an HTTP PATCH request. + + + + + Occurs when the server receives an HTTP POST request. + + + + + Occurs when the server receives an HTTP PUT request. + + + + + Occurs when the server receives an HTTP TRACE request. + + + + + Provides the HTTP version numbers. + + + + + Provides a instance for the HTTP/1.0. + + + + + Provides a instance for the HTTP/1.1. + + + + + Initializes a new instance of the class. + + + + + Contains the values of the HTTP status codes. + + + The HttpStatusCode enumeration contains the values of the HTTP status codes defined in + RFC 2616 for the HTTP/1.1. + + + + + Equivalent to status code 100. + Indicates that the client should continue with its request. + + + + + Equivalent to status code 101. + Indicates that the server is switching the HTTP version or protocol on the connection. + + + + + Equivalent to status code 200. + Indicates that the client's request has succeeded. + + + + + Equivalent to status code 201. + Indicates that the client's request has been fulfilled and resulted in a new resource being + created. + + + + + Equivalent to status code 202. + Indicates that the client's request has been accepted for processing, but the processing + hasn't been completed. + + + + + Equivalent to status code 203. + Indicates that the returned metainformation is from a local or a third-party copy instead of + the origin server. + + + + + Equivalent to status code 204. + Indicates that the server has fulfilled the client's request but doesn't need to return + an entity-body. + + + + + Equivalent to status code 205. + Indicates that the server has fulfilled the client's request, and the user agent should + reset the document view which caused the request to be sent. + + + + + Equivalent to status code 206. + Indicates that the server has fulfilled the partial GET request for the resource. + + + + + + Equivalent to status code 300. + Indicates that the requested resource corresponds to any of multiple representations. + + + MultipleChoices is a synonym for Ambiguous. + + + + + + + Equivalent to status code 300. + Indicates that the requested resource corresponds to any of multiple representations. + + + Ambiguous is a synonym for MultipleChoices. + + + + + + + Equivalent to status code 301. + Indicates that the requested resource has been assigned a new permanent URI and + any future references to this resource should use one of the returned URIs. + + + MovedPermanently is a synonym for Moved. + + + + + + + Equivalent to status code 301. + Indicates that the requested resource has been assigned a new permanent URI and + any future references to this resource should use one of the returned URIs. + + + Moved is a synonym for MovedPermanently. + + + + + + + Equivalent to status code 302. + Indicates that the requested resource is located temporarily under a different URI. + + + Found is a synonym for Redirect. + + + + + + + Equivalent to status code 302. + Indicates that the requested resource is located temporarily under a different URI. + + + Redirect is a synonym for Found. + + + + + + + Equivalent to status code 303. + Indicates that the response to the request can be found under a different URI and + should be retrieved using a GET method on that resource. + + + SeeOther is a synonym for RedirectMethod. + + + + + + + Equivalent to status code 303. + Indicates that the response to the request can be found under a different URI and + should be retrieved using a GET method on that resource. + + + RedirectMethod is a synonym for SeeOther. + + + + + + Equivalent to status code 304. + Indicates that the client has performed a conditional GET request and access is allowed, + but the document hasn't been modified. + + + + + Equivalent to status code 305. + Indicates that the requested resource must be accessed through the proxy given by + the Location field. + + + + + Equivalent to status code 306. + This status code was used in a previous version of the specification, is no longer used, + and is reserved for future use. + + + + + + Equivalent to status code 307. + Indicates that the requested resource is located temporarily under a different URI. + + + TemporaryRedirect is a synonym for RedirectKeepVerb. + + + + + + + Equivalent to status code 307. + Indicates that the requested resource is located temporarily under a different URI. + + + RedirectKeepVerb is a synonym for TemporaryRedirect. + + + + + + Equivalent to status code 400. + Indicates that the client's request couldn't be understood by the server due to + malformed syntax. + + + + + Equivalent to status code 401. + Indicates that the client's request requires user authentication. + + + + + Equivalent to status code 402. + This status code is reserved for future use. + + + + + Equivalent to status code 403. + Indicates that the server understood the client's request but is refusing to fulfill it. + + + + + Equivalent to status code 404. + Indicates that the server hasn't found anything matching the request URI. + + + + + Equivalent to status code 405. + Indicates that the method specified in the request line isn't allowed for the resource + identified by the request URI. + + + + + Equivalent to status code 406. + Indicates that the server doesn't have the appropriate resource to respond to the Accept + headers in the client's request. + + + + + Equivalent to status code 407. + Indicates that the client must first authenticate itself with the proxy. + + + + + Equivalent to status code 408. + Indicates that the client didn't produce a request within the time that the server was + prepared to wait. + + + + + Equivalent to status code 409. + Indicates that the client's request couldn't be completed due to a conflict on the server. + + + + + Equivalent to status code 410. + Indicates that the requested resource is no longer available at the server and + no forwarding address is known. + + + + + Equivalent to status code 411. + Indicates that the server refuses to accept the client's request without a defined + Content-Length. + + + + + Equivalent to status code 412. + Indicates that the precondition given in one or more of the request headers evaluated to + false when it was tested on the server. + + + + + Equivalent to status code 413. + Indicates that the entity of the client's request is larger than the server is willing or + able to process. + + + + + Equivalent to status code 414. + Indicates that the request URI is longer than the server is willing to interpret. + + + + + Equivalent to status code 415. + Indicates that the entity of the client's request is in a format not supported by + the requested resource for the requested method. + + + + + Equivalent to status code 416. + Indicates that none of the range specifier values in a Range request header overlap + the current extent of the selected resource. + + + + + Equivalent to status code 417. + Indicates that the expectation given in an Expect request header couldn't be met by + the server. + + + + + Equivalent to status code 500. + Indicates that the server encountered an unexpected condition which prevented it from + fulfilling the client's request. + + + + + Equivalent to status code 501. + Indicates that the server doesn't support the functionality required to fulfill the client's + request. + + + + + Equivalent to status code 502. + Indicates that a gateway or proxy server received an invalid response from the upstream + server. + + + + + Equivalent to status code 503. + Indicates that the server is currently unable to handle the client's request due to + a temporary overloading or maintenance of the server. + + + + + Equivalent to status code 504. + Indicates that a gateway or proxy server didn't receive a timely response from the upstream + server or some other auxiliary server. + + + + + Equivalent to status code 505. + Indicates that the server doesn't support the HTTP version used in the client's request. + + + + + Exposes the methods and properties used to access the information in a WebSocket service + provided by the or . + + + The WebSocketServiceHost class is an abstract class. + + + + + Initializes a new instance of the class. + + + + + Creates a new session in the WebSocket service. + + + A instance that represents a new session. + + + + + Gets or sets a value indicating whether the WebSocket service cleans up + the inactive sessions periodically. + + + true if the service cleans up the inactive sessions periodically; + otherwise, false. + + + + + Gets the path to the WebSocket service. + + + A that represents the absolute path to the service. + + + + + Gets the access to the sessions in the WebSocket service. + + + A that manages the sessions in the service. + + + + + Gets the of the behavior of the WebSocket service. + + + A that represents the type of the behavior of the service. + + + + + Gets or sets the wait time for the response to the WebSocket Ping or Close. + + + A that represents the wait time. The default value is + the same as 1 second. + + + + + Indicates the status code for the WebSocket connection close. + + + + The values of this enumeration are defined in + Section 7.4 of RFC 6455. + + + "Reserved value" must not be set as a status code in a connection close frame by + an endpoint. It's designated for use in applications expecting a status code to + indicate that the connection was closed due to the system grounds. + + + + + + Equivalent to close status 1000. Indicates normal close. + + + + + Equivalent to close status 1001. Indicates that an endpoint is going away. + + + + + Equivalent to close status 1002. Indicates that an endpoint is terminating + the connection due to a protocol error. + + + + + Equivalent to close status 1003. Indicates that an endpoint is terminating + the connection because it has received a type of data that it cannot accept. + + + + + Equivalent to close status 1004. Still undefined. A Reserved value. + + + + + Equivalent to close status 1005. Indicates that no status code was actually present. + A Reserved value. + + + + + Equivalent to close status 1006. Indicates that the connection was closed abnormally. + A Reserved value. + + + + + Equivalent to close status 1007. Indicates that an endpoint is terminating + the connection because it has received a message that contains data that + isn't consistent with the type of the message. + + + + + Equivalent to close status 1008. Indicates that an endpoint is terminating + the connection because it has received a message that violates its policy. + + + + + Equivalent to close status 1009. Indicates that an endpoint is terminating + the connection because it has received a message that is too big to process. + + + + + Equivalent to close status 1010. Indicates that a client is terminating + the connection because it has expected the server to negotiate one or more extension, + but the server didn't return them in the handshake response. + + + + + Equivalent to close status 1011. Indicates that a server is terminating + the connection because it has encountered an unexpected condition that + prevented it from fulfilling the request. + + + + + Equivalent to close status 1015. Indicates that the connection was closed + due to a failure to perform a TLS handshake. A Reserved value. + + + + + Indicates whether a WebSocket frame is the final frame of a message. + + + The values of this enumeration are defined in + Section 5.2 of RFC 6455. + + + + + Equivalent to numeric value 0. Indicates more frames of a message follow. + + + + + Equivalent to numeric value 1. Indicates the final frame of a message. + + + + + Indicates whether the payload data of a WebSocket frame is masked. + + + The values of this enumeration are defined in + Section 5.2 of RFC 6455. + + + + + Equivalent to numeric value 0. Indicates not masked. + + + + + Equivalent to numeric value 1. Indicates masked. + + + + + Indicates the WebSocket frame type. + + + The values of this enumeration are defined in + Section 5.2 of RFC 6455. + + + + + Equivalent to numeric value 0. Indicates continuation frame. + + + + + Equivalent to numeric value 1. Indicates text frame. + + + + + Equivalent to numeric value 2. Indicates binary frame. + + + + + Equivalent to numeric value 8. Indicates connection close frame. + + + + + Equivalent to numeric value 9. Indicates ping frame. + + + + + Equivalent to numeric value 10. Indicates pong frame. + + + + + Represents the empty payload data. + + + + + Represents the allowable max length. + + + + A will occur if the payload data length is + greater than the value of this field. + + + If you would like to change the value, you must set it to a value between + WebSocket.FragmentLength and Int64.MaxValue inclusive. + + + + + + Indicates whether each RSV (RSV1, RSV2, and RSV3) of a WebSocket frame is non-zero. + + + The values of this enumeration are defined in + Section 5.2 of RFC 6455. + + + + + Equivalent to numeric value 0. Indicates zero. + + + + + Equivalent to numeric value 1. Indicates non-zero. + + + + + Provides the properties used to access the information in + a WebSocket handshake request received by the . + + + + + Exposes the properties used to access the information in a WebSocket handshake request. + + + This class is an abstract class. + + + + + Initializes a new instance of the class. + + + + + Gets the HTTP cookies included in the request. + + + A that contains the cookies. + + + + + Gets the HTTP headers included in the request. + + + A that contains the headers. + + + + + Gets the value of the Host header included in the request. + + + A that represents the value of the Host header. + + + + + Gets a value indicating whether the client is authenticated. + + + true if the client is authenticated; otherwise, false. + + + + + Gets a value indicating whether the client connected from the local computer. + + + true if the client connected from the local computer; otherwise, false. + + + + + Gets a value indicating whether the WebSocket connection is secured. + + + true if the connection is secured; otherwise, false. + + + + + Gets a value indicating whether the request is a WebSocket handshake request. + + + true if the request is a WebSocket handshake request; otherwise, false. + + + + + Gets the value of the Origin header included in the request. + + + A that represents the value of the Origin header. + + + + + Gets the query string included in the request. + + + A that contains the query string parameters. + + + + + Gets the URI requested by the client. + + + A that represents the requested URI. + + + + + Gets the value of the Sec-WebSocket-Key header included in the request. + + + This property provides a part of the information used by the server to prove that + it received a valid WebSocket handshake request. + + + A that represents the value of the Sec-WebSocket-Key header. + + + + + Gets the values of the Sec-WebSocket-Protocol header included in the request. + + + This property represents the subprotocols requested by the client. + + + An instance that provides + an enumerator which supports the iteration over the values of the Sec-WebSocket-Protocol + header. + + + + + Gets the value of the Sec-WebSocket-Version header included in the request. + + + This property represents the WebSocket protocol version. + + + A that represents the value of the Sec-WebSocket-Version header. + + + + + Gets the server endpoint as an IP address and a port number. + + + A that represents the server endpoint. + + + + + Gets the client information (identity, authentication, and security roles). + + + A instance that represents the client information. + + + + + Gets the client endpoint as an IP address and a port number. + + + A that represents the client endpoint. + + + + + Gets the instance used for + two-way communication between client and server. + + + A . + + + + + Returns a that represents + the current . + + + A that represents + the current . + + + + + Gets the HTTP cookies included in the request. + + + A that contains the cookies. + + + + + Gets the HTTP headers included in the request. + + + A that contains the headers. + + + + + Gets the value of the Host header included in the request. + + + A that represents the value of the Host header. + + + + + Gets a value indicating whether the client is authenticated. + + + true if the client is authenticated; otherwise, false. + + + + + Gets a value indicating whether the client connected from the local computer. + + + true if the client connected from the local computer; otherwise, false. + + + + + Gets a value indicating whether the WebSocket connection is secured. + + + true if the connection is secured; otherwise, false. + + + + + Gets a value indicating whether the request is a WebSocket handshake request. + + + true if the request is a WebSocket handshake request; otherwise, false. + + + + + Gets the value of the Origin header included in the request. + + + A that represents the value of the Origin header. + + + + + Gets the query string included in the request. + + + A that contains the query string parameters. + + + + + Gets the URI requested by the client. + + + A that represents the requested URI. + + + + + Gets the value of the Sec-WebSocket-Key header included in the request. + + + This property provides a part of the information used by the server to prove that + it received a valid WebSocket handshake request. + + + A that represents the value of the Sec-WebSocket-Key header. + + + + + Gets the values of the Sec-WebSocket-Protocol header included in the request. + + + This property represents the subprotocols requested by the client. + + + An instance that provides + an enumerator which supports the iteration over the values of the Sec-WebSocket-Protocol + header. + + + + + Gets the value of the Sec-WebSocket-Version header included in the request. + + + This property represents the WebSocket protocol version. + + + A that represents the value of the Sec-WebSocket-Version header. + + + + + Gets the server endpoint as an IP address and a port number. + + + A that represents the server endpoint. + + + + + Gets the client information (identity, authentication, and security roles). + + + A instance that represents the client information. + + + + + Gets the client endpoint as an IP address and a port number. + + + A that represents the client endpoint. + + + + + Gets the instance used for + two-way communication between client and server. + + + A . + + + + + Provides the properties used to access the information in + a WebSocket handshake request received by the . + + + + + Returns a that represents + the current . + + + A that represents + the current . + + + + + Gets the HTTP cookies included in the request. + + + A that contains the cookies. + + + + + Gets the HTTP headers included in the request. + + + A that contains the headers. + + + + + Gets the value of the Host header included in the request. + + + A that represents the value of the Host header. + + + + + Gets a value indicating whether the client is authenticated. + + + true if the client is authenticated; otherwise, false. + + + + + Gets a value indicating whether the client connected from the local computer. + + + true if the client connected from the local computer; otherwise, false. + + + + + Gets a value indicating whether the WebSocket connection is secured. + + + true if the connection is secured; otherwise, false. + + + + + Gets a value indicating whether the request is a WebSocket handshake request. + + + true if the request is a WebSocket handshake request; otherwise, false. + + + + + Gets the value of the Origin header included in the request. + + + A that represents the value of the Origin header. + + + + + Gets the query string included in the request. + + + A that contains the query string parameters. + + + + + Gets the URI requested by the client. + + + A that represents the requested URI. + + + + + Gets the value of the Sec-WebSocket-Key header included in the request. + + + This property provides a part of the information used by the server to prove that + it received a valid WebSocket handshake request. + + + A that represents the value of the Sec-WebSocket-Key header. + + + + + Gets the values of the Sec-WebSocket-Protocol header included in the request. + + + This property represents the subprotocols requested by the client. + + + An instance that provides + an enumerator which supports the iteration over the values of the Sec-WebSocket-Protocol + header. + + + + + Gets the value of the Sec-WebSocket-Version header included in the request. + + + This property represents the WebSocket protocol version. + + + A that represents the value of the Sec-WebSocket-Version header. + + + + + Gets the server endpoint as an IP address and a port number. + + + A that represents the server endpoint. + + + + + Gets the client information (identity, authentication, and security roles). + + + A instance that represents the client information. + + + + + Gets the client endpoint as an IP address and a port number. + + + A that represents the client endpoint. + + + + + Gets the instance used for + two-way communication between client and server. + + + A . + + + + + Represents the event data for the HTTP request event that the emits. + + + + An HTTP request event occurs when the receives an HTTP request. + + + If you would like to get the request data sent from a client, + you should access the property. + + + And if you would like to get the response data used to return a response, + you should access the property. + + + + + + Gets the HTTP request data sent from a client. + + + A that represents the request data. + + + + + Gets the HTTP response data used to return a response to the client. + + + A that represents the response data. + + + + + Specifies the compression method used to compress a message on the WebSocket connection. + + + The compression methods are defined in + + Compression Extensions for WebSocket. + + + + + Specifies non compression. + + + + + Specifies DEFLATE. + + + + + The exception that is thrown when a gets a fatal error. + + + + + Gets the status code indicating the cause of the exception. + + + One of the enum values, represents the status code + indicating the cause of the exception. + + + + + Represents a log data used by the class. + + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Gets the information of the logging method caller. + + + A that provides the information of the logging method caller. + + + + + Gets the date and time when the log data was created. + + + A that represents the date and time when the log data was created. + + + + + Gets the logging level of the log data. + + + One of the enum values, indicates the logging level of the log data. + + + + + Gets the message of the log data. + + + A that represents the message of the log data. + + + + + Specifies the logging level. + + + + + Specifies the bottom logging level. + + + + + Specifies the 2nd logging level from the bottom. + + + + + Specifies the 3rd logging level from the bottom. + + + + + Specifies the 3rd logging level from the top. + + + + + Specifies the 2nd logging level from the top. + + + + + Specifies the top logging level. + + + + + Provides a set of methods and properties for logging. + + + + If you output a log with lower than the value of the property, + it cannot be outputted. + + + The default output action writes a log to the standard output stream and the log file + if the property has a valid path to it. + + + If you would like to use the custom output action, you should set + the property to any Action<LogData, string> + delegate. + + + + + + Initializes a new instance of the class. + + + This constructor initializes the current logging level with . + + + + + Initializes a new instance of the class with + the specified logging . + + + One of the enum values. + + + + + Initializes a new instance of the class with + the specified logging , path to the log , + and action. + + + One of the enum values. + + + A that represents the path to the log file. + + + An Action<LogData, string> delegate that references the method(s) used to + output a log. A parameter passed to this delegate is + . + + + + + Outputs as a log with . + + + If the current logging level is higher than , + this method doesn't output as a log. + + + A that represents the message to output as a log. + + + + + Outputs as a log with . + + + If the current logging level is higher than , + this method doesn't output as a log. + + + A that represents the message to output as a log. + + + + + Outputs as a log with . + + + A that represents the message to output as a log. + + + + + Outputs as a log with . + + + If the current logging level is higher than , + this method doesn't output as a log. + + + A that represents the message to output as a log. + + + + + Outputs as a log with . + + + If the current logging level is higher than , + this method doesn't output as a log. + + + A that represents the message to output as a log. + + + + + Outputs as a log with . + + + If the current logging level is higher than , + this method doesn't output as a log. + + + A that represents the message to output as a log. + + + + + Gets or sets the current path to the log file. + + + A that represents the current path to the log file if any. + + + + + Gets or sets the current logging level. + + + A log with lower than the value of this property cannot be outputted. + + + One of the enum values, specifies the current logging level. + + + + + Gets or sets the current output action used to output a log. + + + + An Action<LogData, string> delegate that references the method(s) used to + output a log. A parameter passed to this delegate is the value of + the property. + + + If the value to set is , the current output action is changed to + the default output action. + + + + + + Indicates the state of a WebSocket connection. + + + The values of this enumeration are defined in + The WebSocket API. + + + + + Equivalent to numeric value 0. Indicates that the connection hasn't yet been established. + + + + + Equivalent to numeric value 1. Indicates that the connection has been established, + and the communication is possible. + + + + + Equivalent to numeric value 2. Indicates that the connection is going through + the closing handshake, or the WebSocket.Close method has been invoked. + + + + + Equivalent to numeric value 3. Indicates that the connection has been closed or + couldn't be established. + + + + + Exposes the properties used to access the information in a session in a WebSocket service. + + + + + Gets the information in the connection request to the WebSocket service. + + + A that provides the access to the connection request. + + + + + Gets the unique ID of the session. + + + A that represents the unique ID of the session. + + + + + Gets the WebSocket subprotocol used in the session. + + + A that represents the subprotocol if any. + + + + + Gets the time that the session has started. + + + A that represents the time that the session has started. + + + + + Gets the state of the used in the session. + + + One of the enum values, indicates the state of + the used in the session. + + + + + Manages the sessions in a Websocket service. + + + + + Sends binary to every client in the WebSocket service. + + + An array of that represents the binary data to send. + + + + + Sends text to every client in the WebSocket service. + + + A that represents the text data to send. + + + + + Sends binary asynchronously to every client in + the WebSocket service. + + + This method doesn't wait for the send to be complete. + + + An array of that represents the binary data to send. + + + An delegate that references the method(s) called when + the send is complete. + + + + + Sends text asynchronously to every client in + the WebSocket service. + + + This method doesn't wait for the send to be complete. + + + A that represents the text data to send. + + + An delegate that references the method(s) called when + the send is complete. + + + + + Sends binary data from the specified asynchronously to + every client in the WebSocket service. + + + This method doesn't wait for the send to be complete. + + + A from which contains the binary data to send. + + + An that represents the number of bytes to send. + + + An delegate that references the method(s) called when + the send is complete. + + + + + Sends a Ping to every client in the WebSocket service. + + + A Dictionary<string, bool> that contains a collection of pairs of + a session ID and a value indicating whether the manager received a Pong from + each client in a time. + + + + + Sends a Ping with the specified to every client in + the WebSocket service. + + + A Dictionary<string, bool> that contains a collection of pairs of + a session ID and a value indicating whether the manager received a Pong from + each client in a time. + + + A that represents the message to send. + + + + + Closes the session with the specified . + + + A that represents the ID of the session to close. + + + + + Closes the session with the specified , , + and . + + + A that represents the ID of the session to close. + + + A that represents the status code indicating the reason for the close. + + + A that represents the reason for the close. + + + + + Closes the session with the specified , , + and . + + + A that represents the ID of the session to close. + + + One of the enum values, represents the status code + indicating the reason for the close. + + + A that represents the reason for the close. + + + + + Sends a Ping to the client on the session with the specified . + + + true if the manager receives a Pong from the client in a time; + otherwise, false. + + + A that represents the ID of the session to find. + + + + + Sends a Ping with the specified to the client on + the session with the specified . + + + true if the manager receives a Pong from the client in a time; + otherwise, false. + + + A that represents the message to send. + + + A that represents the ID of the session to find. + + + + + Sends binary to the client on the session with + the specified . + + + An array of that represents the binary data to send. + + + A that represents the ID of the session to find. + + + + + Sends text to the client on the session with + the specified . + + + A that represents the text data to send. + + + A that represents the ID of the session to find. + + + + + Sends binary asynchronously to the client on + the session with the specified . + + + This method doesn't wait for the send to be complete. + + + An array of that represents the binary data to send. + + + A that represents the ID of the session to find. + + + An Action<bool> delegate that references the method(s) called when + the send is complete. A passed to this delegate is true + if the send is complete successfully. + + + + + Sends text asynchronously to the client on + the session with the specified . + + + This method doesn't wait for the send to be complete. + + + A that represents the text data to send. + + + A that represents the ID of the session to find. + + + An Action<bool> delegate that references the method(s) called when + the send is complete. A passed to this delegate is true + if the send is complete successfully. + + + + + Sends binary data from the specified asynchronously to + the client on the session with the specified . + + + This method doesn't wait for the send to be complete. + + + A from which contains the binary data to send. + + + An that represents the number of bytes to send. + + + A that represents the ID of the session to find. + + + An Action<bool> delegate that references the method(s) called when + the send is complete. A passed to this delegate is true + if the send is complete successfully. + + + + + Cleans up the inactive sessions in the WebSocket service. + + + + + Tries to get the session with the specified . + + + true if the session is successfully found; otherwise, false. + + + A that represents the ID of the session to find. + + + When this method returns, a instance that + provides the access to the information in the session, or + if it's not found. This parameter is passed uninitialized. + + + + + Gets the IDs for the active sessions in the Websocket service. + + + An IEnumerable<string> instance that provides an enumerator which + supports the iteration over the collection of the IDs for the active sessions. + + + + + Gets the number of the sessions in the Websocket service. + + + An that represents the number of the sessions. + + + + + Gets the IDs for the sessions in the Websocket service. + + + An IEnumerable<string> instance that provides an enumerator which + supports the iteration over the collection of the IDs for the sessions. + + + + + Gets the IDs for the inactive sessions in the Websocket service. + + + An IEnumerable<string> instance that provides an enumerator which + supports the iteration over the collection of the IDs for the inactive sessions. + + + + + Gets the session with the specified . + + + A instance that provides the access to + the information in the session, or if it's not found. + + + A that represents the ID of the session to find. + + + + + Gets a value indicating whether the manager cleans up the inactive sessions in + the WebSocket service periodically. + + + true if the manager cleans up the inactive sessions every 60 seconds; + otherwise, false. + + + + + Gets the sessions in the Websocket service. + + + An IEnumerable<IWebSocketSession> instance that provides an enumerator + which supports the iteration over the collection of the sessions in the service. + + + + + Gets the wait time for the response to the WebSocket Ping or Close. + + + A that represents the wait time. + + + + + Holds the user name and password from the HTTP Basic authentication credentials. + + + + + Gets the password from the HTTP Basic authentication credentials. + + + A that represents the password. + + + + + Holds the user name and other parameters from the HTTP Digest authentication credentials. + + + + + Gets the algorithm parameter from the HTTP Digest authentication credentials. + + + A that represents the algorithm parameter. + + + + + Gets the cnonce parameter from the HTTP Digest authentication credentials. + + + A that represents the cnonce parameter. + + + + + Gets the nc parameter from the HTTP Digest authentication credentials. + + + A that represents the nc parameter. + + + + + Gets the nonce parameter from the HTTP Digest authentication credentials. + + + A that represents the nonce parameter. + + + + + Gets the opaque parameter from the HTTP Digest authentication credentials. + + + A that represents the opaque parameter. + + + + + Gets the qop parameter from the HTTP Digest authentication credentials. + + + A that represents the qop parameter. + + + + + Gets the realm parameter from the HTTP Digest authentication credentials. + + + A that represents the realm parameter. + + + + + Gets the response parameter from the HTTP Digest authentication credentials. + + + A that represents the response parameter. + + + + + Gets the uri parameter from the HTTP Digest authentication credentials. + + + A that represents the uri parameter. + + + + + Provides the credentials for the HTTP authentication (Basic/Digest). + + + + + Initializes a new instance of the class with + the specified user name and password. + + + A that represents the user name associated with the credentials. + + + A that represents the password for the user name associated with + the credentials. + + + is . + + + is empty. + + + + + Initializes a new instance of the class with + the specified user name, password, domain, and roles. + + + A that represents the user name associated with the credentials. + + + A that represents the password for the user name associated with + the credentials. + + + A that represents the name of the user domain associated with + the credentials. + + + An array of that contains the role names to which + the user associated with the credentials belongs if any. + + + is . + + + is empty. + + + + + Gets the name of the user domain associated with the credentials. + + + A that represents the name of the user domain associated with + the credentials. + + + + + Gets the password for the user name associated with the credentials. + + + A that represents the password for the user name associated with + the credentials. + + + + + Gets the role names to which the user associated with the credentials belongs. + + + An array of that contains the role names to which + the user associated with the credentials belongs if any. + + + + + Gets the user name associated with the credentials. + + + A that represents the user name associated with the credentials. + + + + + Manages the WebSocket services provided by the or + . + + + + + Sends binary to every client in the WebSocket services. + + + An array of that represents the binary data to send. + + + + + Sends text to every client in the WebSocket services. + + + A that represents the text data to send. + + + + + Sends binary asynchronously to every client in + the WebSocket services. + + + This method doesn't wait for the send to be complete. + + + An array of that represents the binary data to send. + + + An delegate that references the method(s) called when + the send is complete. + + + + + Sends text asynchronously to every client in + the WebSocket services. + + + This method doesn't wait for the send to be complete. + + + A that represents the text data to send. + + + An delegate that references the method(s) called when + the send is complete. + + + + + Sends binary data from the specified asynchronously to + every client in the WebSocket services. + + + This method doesn't wait for the send to be complete. + + + A from which contains the binary data to send. + + + An that represents the number of bytes to send. + + + An delegate that references the method(s) called when + the send is complete. + + + + + Sends a Ping to every client in the WebSocket services. + + + A Dictionary<string, Dictionary<string, bool>> that contains + a collection of pairs of a service path and a collection of pairs of a session ID + and a value indicating whether the manager received a Pong from each client in a time, + or if this method isn't available. + + + + + Sends a Ping with the specified to every client in + the WebSocket services. + + + A Dictionary<string, Dictionary<string, bool>> that contains + a collection of pairs of a service path and a collection of pairs of a session ID + and a value indicating whether the manager received a Pong from each client in a time, + or if this method isn't available or + is invalid. + + + A that represents the message to send. + + + + + Tries to get the WebSocket service host with the specified . + + + true if the service is successfully found; otherwise, false. + + + A that represents the absolute path to the service to find. + + + When this method returns, a instance that + provides the access to the information in the service, or + if it's not found. This parameter is passed uninitialized. + + + + + Gets the number of the WebSocket services. + + + An that represents the number of the services. + + + + + Gets the host instances for the Websocket services. + + + An IEnumerable<WebSocketServiceHost> instance that provides an enumerator + which supports the iteration over the collection of the host instances for the services. + + + + + Gets the WebSocket service host with the specified . + + + A instance that provides the access to + the information in the service, or if it's not found. + + + A that represents the absolute path to the service to find. + + + + + Gets a value indicating whether the manager cleans up the inactive sessions + in the WebSocket services periodically. + + + true if the manager cleans up the inactive sessions every 60 seconds; + otherwise, false. + + + + + Gets the paths for the WebSocket services. + + + An IEnumerable<string> instance that provides an enumerator which supports + the iteration over the collection of the paths for the services. + + + + + Gets the total number of the sessions in the WebSocket services. + + + An that represents the total number of the sessions in the services. + + + + + Gets the wait time for the response to the WebSocket Ping or Close. + + + A that represents the wait time. + + + + + Represents the ping frame without the payload data as an array of . + + + The value of this field is created from a non masked frame, so it can only be used to + send a ping from a server. + + + + + Exposes the methods and properties used to define the behavior of a WebSocket service + provided by the or . + + + The WebSocketBehavior class is an abstract class. + + + + + Initializes a new instance of the class. + + + + + Calls the method with the specified and + . + + + This method doesn't call the method if is + or empty. + + + A that represents the error message. + + + An instance that represents the cause of the error if any. + + + + + Called when the WebSocket connection used in a session has been closed. + + + A that represents the event data passed to + a event. + + + + + Called when the used in a session gets an error. + + + A that represents the event data passed to + a event. + + + + + Called when the used in a session receives a message. + + + A that represents the event data passed to + a event. + + + + + Called when the WebSocket connection used in a session has been established. + + + + + Sends binary to the client on a session. + + + This method is available after the WebSocket connection has been established. + + + An array of that represents the binary data to send. + + + + + Sends the specified as binary data to the client on a session. + + + This method is available after the WebSocket connection has been established. + + + A that represents the file to send. + + + + + Sends text to the client on a session. + + + This method is available after the WebSocket connection has been established. + + + A that represents the text data to send. + + + + + Sends binary asynchronously to the client on a session. + + + + This method is available after the WebSocket connection has been established. + + + This method doesn't wait for the send to be complete. + + + + An array of that represents the binary data to send. + + + An Action<bool> delegate that references the method(s) called when + the send is complete. A passed to this delegate is true + if the send is complete successfully. + + + + + Sends the specified as binary data asynchronously to + the client on a session. + + + + This method is available after the WebSocket connection has been established. + + + This method doesn't wait for the send to be complete. + + + + A that represents the file to send. + + + An Action<bool> delegate that references the method(s) called when + the send is complete. A passed to this delegate is true + if the send is complete successfully. + + + + + Sends text asynchronously to the client on a session. + + + + This method is available after the WebSocket connection has been established. + + + This method doesn't wait for the send to be complete. + + + + A that represents the text data to send. + + + An Action<bool> delegate that references the method(s) called when + the send is complete. A passed to this delegate is true + if the send is complete successfully. + + + + + Sends binary data from the specified asynchronously to + the client on a session. + + + + This method is available after the WebSocket connection has been established. + + + This method doesn't wait for the send to be complete. + + + + A from which contains the binary data to send. + + + An that represents the number of bytes to send. + + + An Action<bool> delegate that references the method(s) called when + the send is complete. A passed to this delegate is true + if the send is complete successfully. + + + + + Gets the logging functions. + + + A that provides the logging functions, + or if the WebSocket connection isn't established. + + + + + Gets the access to the sessions in the WebSocket service. + + + A that provides the access to the sessions, + or if the WebSocket connection isn't established. + + + + + Gets the information in a handshake request to the WebSocket service. + + + A instance that provides the access to the handshake request, + or if the WebSocket connection isn't established. + + + + + Gets or sets the delegate called to validate the HTTP cookies included in + a handshake request to the WebSocket service. + + + This delegate is called when the used in a session validates + the handshake request. + + + + A Func<CookieCollection, CookieCollection, bool> delegate that references + the method(s) used to validate the cookies. + + + 1st parameter passed to this delegate contains + the cookies to validate if any. + + + 2nd parameter passed to this delegate receives + the cookies to send to the client. + + + This delegate should return true if the cookies are valid. + + + The default value is , and it does nothing to validate. + + + + + + Gets or sets a value indicating whether the used in a session emits + a event when receives a Ping. + + + true if the emits a event + when receives a Ping; otherwise, false. The default value is false. + + + + + Gets the unique ID of a session. + + + A that represents the unique ID of the session, + or if the WebSocket connection isn't established. + + + + + Gets or sets a value indicating whether the WebSocket service ignores + the Sec-WebSocket-Extensions header included in a handshake request. + + + true if the WebSocket service ignores the extensions requested from + a client; otherwise, false. The default value is false. + + + + + Gets or sets the delegate called to validate the Origin header included in + a handshake request to the WebSocket service. + + + This delegate is called when the used in a session validates + the handshake request. + + + + A Func<string, bool> delegate that references the method(s) used to + validate the origin header. + + + parameter passed to this delegate represents the value of + the origin header to validate if any. + + + This delegate should return true if the origin header is valid. + + + The default value is , and it does nothing to validate. + + + + + + Gets or sets the WebSocket subprotocol used in the WebSocket service. + + + Set operation of this property is available before the WebSocket connection has + been established. + + + + A that represents the subprotocol if any. + The default value is . + + + The value to set must be a token defined in + RFC 2616. + + + + + + Gets the time that a session has started. + + + A that represents the time that the session has started, + or if the WebSocket connection isn't established. + + + + + Gets the state of the used in a session. + + + One of the enum values, indicates the state of + the . + + + + + Initializes a new instance of the class with + the specified . + + + This constructor must be called after calling the CheckPrefix method. + + + A that represents the URI prefix. + + + + + Determines whether this instance and the specified have the same value. + + + This method will be required to detect duplicates in any collection. + + + An to compare to this instance. + + + true if is a and + its value is the same as this instance; otherwise, false. + + + + + Gets the hash code for this instance. + + + This method will be required to detect duplicates in any collection. + + + An that represents the hash code. + + + + + Stores the parameters used to configure a instance as a client. + + + + + Stores the parameters used to configure a instance. + + + The SslConfiguration class is an abstract class. + + + + + Initializes a new instance of the class with + the specified and + . + + + The enum value that represents the protocols used for + authentication. + + + true if the certificate revocation list is checked during authentication; + otherwise, false. + + + + + Gets or sets the callback used to select a certificate to supply to the remote party. + + + If this callback returns , no certificate will be supplied. + + + A delegate that references the method + used to select a certificate. The default value is a function that only returns + . + + + + + Gets or sets the callback used to validate the certificate supplied by the remote party. + + + If this callback returns true, the certificate will be valid. + + + A delegate that references the method + used to validate the certificate. The default value is a function that only returns + true. + + + + + Gets or sets a value indicating whether the certificate revocation list is checked + during authentication. + + + true if the certificate revocation list is checked; otherwise, false. + + + + + Gets or sets the SSL protocols used for authentication. + + + The enum value that represents the protocols used for + authentication. + + + + + Initializes a new instance of the class with + the specified . + + + A that represents the name of the server that shares + a secure connection. + + + + + Initializes a new instance of the class with + the specified , , + , and . + + + A that represents the name of the server that shares + a secure connection. + + + A that contains client certificates. + + + The enum value that represents the protocols used for + authentication. + + + true if the certificate revocation list is checked during authentication; + otherwise, false. + + + + + Gets or sets the collection that contains client certificates. + + + A that contains client certificates. + + + + + Gets or sets the callback used to select a client certificate to supply to the server. + + + If this callback returns , no client certificate will be supplied. + + + A delegate that references the method + used to select the client certificate. The default value is a function that only returns + . + + + + + Gets or sets the callback used to validate the certificate supplied by the server. + + + If this callback returns true, the server certificate will be valid. + + + A delegate that references the method + used to validate the server certificate. The default value is a function that only returns + true. + + + + + Gets or sets the name of the server that shares a secure connection. + + + A that represents the name of the server that shares + a secure connection. + + + + + Stores the parameters used to configure a instance as a server. + + + + + Initializes a new instance of the class with + the specified . + + + A that represents the certificate used to authenticate + the server. + + + + + Initializes a new instance of the class with + the specified , + , , + and . + + + A that represents the certificate used to authenticate + the server. + + + true if the client must supply a certificate for authentication; + otherwise, false. + + + The enum value that represents the protocols used for + authentication. + + + true if the certificate revocation list is checked during authentication; + otherwise, false. + + + + + Gets or sets a value indicating whether the client must supply a certificate for + authentication. + + + true if the client must supply a certificate; otherwise, false. + + + + + Gets or sets the callback used to validate the certificate supplied by the client. + + + If this callback returns true, the client certificate will be valid. + + + A delegate that references the method + used to validate the client certificate. The default value is a function that only returns + true. + + + + + Gets or sets the certificate used to authenticate the server for secure connection. + + + A that represents the certificate used to authenticate + the server. + + + + + Contains the HTTP headers that may be specified in a client request. + + + The HttpRequestHeader enumeration contains the HTTP request headers defined in + RFC 2616 for the HTTP/1.1 and + RFC 6455 for the WebSocket. + + + + + Indicates the Cache-Control header. + + + + + Indicates the Connection header. + + + + + Indicates the Date header. + + + + + Indicates the Keep-Alive header. + + + + + Indicates the Pragma header. + + + + + Indicates the Trailer header. + + + + + Indicates the Transfer-Encoding header. + + + + + Indicates the Upgrade header. + + + + + Indicates the Via header. + + + + + Indicates the Warning header. + + + + + Indicates the Allow header. + + + + + Indicates the Content-Length header. + + + + + Indicates the Content-Type header. + + + + + Indicates the Content-Encoding header. + + + + + Indicates the Content-Language header. + + + + + Indicates the Content-Location header. + + + + + Indicates the Content-MD5 header. + + + + + Indicates the Content-Range header. + + + + + Indicates the Expires header. + + + + + Indicates the Last-Modified header. + + + + + Indicates the Accept header. + + + + + Indicates the Accept-Charset header. + + + + + Indicates the Accept-Encoding header. + + + + + Indicates the Accept-Language header. + + + + + Indicates the Authorization header. + + + + + Indicates the Cookie header. + + + + + Indicates the Expect header. + + + + + Indicates the From header. + + + + + Indicates the Host header. + + + + + Indicates the If-Match header. + + + + + Indicates the If-Modified-Since header. + + + + + Indicates the If-None-Match header. + + + + + Indicates the If-Range header. + + + + + Indicates the If-Unmodified-Since header. + + + + + Indicates the Max-Forwards header. + + + + + Indicates the Proxy-Authorization header. + + + + + Indicates the Referer header. + + + + + Indicates the Range header. + + + + + Indicates the TE header. + + + + + Indicates the Translate header. + + + + + Indicates the User-Agent header. + + + + + Indicates the Sec-WebSocket-Key header. + + + + + Indicates the Sec-WebSocket-Extensions header. + + + + + Indicates the Sec-WebSocket-Protocol header. + + + + + Indicates the Sec-WebSocket-Version header. + + + + + Contains the HTTP headers that can be specified in a server response. + + + The HttpResponseHeader enumeration contains the HTTP response headers defined in + RFC 2616 for the HTTP/1.1 and + RFC 6455 for the WebSocket. + + + + + Indicates the Cache-Control header. + + + + + Indicates the Connection header. + + + + + Indicates the Date header. + + + + + Indicates the Keep-Alive header. + + + + + Indicates the Pragma header. + + + + + Indicates the Trailer header. + + + + + Indicates the Transfer-Encoding header. + + + + + Indicates the Upgrade header. + + + + + Indicates the Via header. + + + + + Indicates the Warning header. + + + + + Indicates the Allow header. + + + + + Indicates the Content-Length header. + + + + + Indicates the Content-Type header. + + + + + Indicates the Content-Encoding header. + + + + + Indicates the Content-Language header. + + + + + Indicates the Content-Location header. + + + + + Indicates the Content-MD5 header. + + + + + Indicates the Content-Range header. + + + + + Indicates the Expires header. + + + + + Indicates the Last-Modified header. + + + + + Indicates the Accept-Ranges header. + + + + + Indicates the Age header. + + + + + Indicates the ETag header. + + + + + Indicates the Location header. + + + + + Indicates the Proxy-Authenticate header. + + + + + Indicates the Retry-After header. + + + + + Indicates the Server header. + + + + + Indicates the Set-Cookie header. + + + + + Indicates the Vary header. + + + + + Indicates the WWW-Authenticate header. + + + + + Indicates the Sec-WebSocket-Extensions header. + + + + + Indicates the Sec-WebSocket-Accept header. + + + + + Indicates the Sec-WebSocket-Protocol header. + + + + + Indicates the Sec-WebSocket-Version header. + + + + diff --git a/Unity3D/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/RosConnector.cs b/Unity3D/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/RosConnector.cs index 13d9a52ca..51c58ab4d 100644 --- a/Unity3D/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/RosConnector.cs +++ b/Unity3D/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/RosConnector.cs @@ -27,6 +27,7 @@ public class RosConnector : MonoBehaviour public RosSocket RosSocket { get; private set; } public enum Protocols { WebSocketSharp, WebSocketNET }; + public RosBridgeClient.RosSocket.SerializerEnum Serializer; public Protocols Protocol; public string RosBridgeServerUrl = "ws://192.168.0.1:9090"; @@ -39,19 +40,19 @@ public void Awake() private void ConnectAndWait() { - RosSocket = ConnectToRos(Protocol, RosBridgeServerUrl, OnConnected, OnClosed); + RosSocket = ConnectToRos(Protocol, RosBridgeServerUrl, OnConnected, OnClosed,Serializer); if (!isConnected.WaitOne(Timeout * 1000)) Debug.LogWarning("Failed to connect to RosBridge at: " + RosBridgeServerUrl); } - public static RosSocket ConnectToRos(Protocols protocolType, string serverUrl, EventHandler onConnected = null, EventHandler onClosed = null) + public static RosSocket ConnectToRos(Protocols protocolType, string serverUrl, EventHandler onConnected = null, EventHandler onClosed = null,RosSocket.SerializerEnum serializer=RosSocket.SerializerEnum.JSON) { RosBridgeClient.Protocols.IProtocol protocol = GetProtocol(protocolType, serverUrl); protocol.OnConnected += onConnected; protocol.OnClosed += onClosed; - return new RosSocket(protocol); + return new RosSocket(protocol,serializer); } private static RosBridgeClient.Protocols.IProtocol GetProtocol(Protocols protocol, string rosBridgeServerUrl) From 344e22a4e33ab15dee139c318d4468343d7b17a9 Mon Sep 17 00:00:00 2001 From: KenichiUsamiGitai Date: Mon, 13 May 2019 14:25:32 +0900 Subject: [PATCH 3/3] auto generate prefab and asset files --- .../MeshProcessing/StlAssetPostProcessor.cs | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/Unity3D/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/StlAssetPostProcessor.cs b/Unity3D/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/StlAssetPostProcessor.cs index 16410852e..1007d60ea 100644 --- a/Unity3D/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/StlAssetPostProcessor.cs +++ b/Unity3D/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/StlAssetPostProcessor.cs @@ -22,6 +22,30 @@ limitations under the License. namespace RosSharp { + //// Modifyed by Usami + //// At 20190425 + [InitializeOnLoad] + public class Startup { + static Startup() + { + if (Application.isEditor) + { + string gitai_description_dir = Application.dataPath + "/Models/gitai_description"; + string[] filePaths = Directory.GetFiles(gitai_description_dir + "/", "*.stl", System.IO.SearchOption.AllDirectories); + foreach(string f in filePaths) + { + string file = f.Replace("\\","/"); + string stlFile = "Assets" + file.Replace(Application.dataPath,""); + string prefabPath = file.Substring(0, file.Length - 4) + ".prefab"; + if(!System.IO.File.Exists(prefabPath)) + { + StlAssetPostProcessor.createStlPrefab(stlFile); + } + } + } + } + } + public class StlAssetPostProcessor : AssetPostprocessor { private static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromPath) @@ -30,7 +54,7 @@ private static void OnPostprocessAllAssets(string[] importedAssets, string[] del createStlPrefab(stlFile); } - private static void createStlPrefab(string stlFile) + public static void createStlPrefab(string stlFile) { GameObject gameObject = CreateStlParent(stlFile); if (gameObject == null)

qOB@X*Na`bEv%2OuU&E5e+7q zm)%=viq{Jv@z=D(QBb0y4b{=$HJv(W%*E^~)xQ_v4&N6h--V>tH2O@9J1a+qx!?S6 z5R>a+SQrCc?KU@fW5<_{+vY-Izxh6MH-I~~pE+R+d$nPVash}C3}$k zhAIQ&522ZJ%P6fKFM5rjaZxP35z=7{v$Zuwax>D&EdY5^fGdnqsWw|HkN4=Jg!&c+ zy+&fRPTl6%(v{u|WQgwNthy_{75DM`Ts7l#!x2W8Gi#1ck9w7;Y|S~k5k?G}dg5!) z&{qK(M#3t-Ir~Pk#D=uQFo-PwmeEMZ{ zAREU-;vHX_O@7HH*A?rDKLQD#%UR9?DBf>i6W*oAw*v{E&*TdL5}&aYFFddgFz9hE z6LFFJ01eB1#fzvn6FBwh4qphNJ`Zq5{30Z`Av&{FTK<4lfNA0%4T$#^V=KCVU zoG>~-?Y2O!%s*J>QjuX!IFz>Y8ol>OGiU}uS z?3Irm?to70K^h=|keb3bCvQctTKNH&Br1bRIKdmgN(g75j2yyUxr9EpL{I(@!hJ^} zsme470|OPyIK+h|UPCT@zlj0OO#TS63C%&>iE;pLIg|IIwWvTwwwJBS2yD9=nRwN+ z6L(!P4@2(oHNcbCGI76oI%~fU>G<^k*tZ%fbZfmAW1=GrgG}Dq!9jzZcLRj2b%jA| zm8&TEPsoqe`--?xjJ^`SIkGerGhx5^1s8cE6eMrra&HFMZ~kj2(JGX^sanh~bOibl zhI}f4uZ-}Ikw1JIvSSYy#wc&*x#G8ghK{SOX76V!aK�JHNIJ%eUK*f)`R;`t3-^ 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 L|Cjmyng{+L_`+8N diff --git a/Unity3D/Assets/RosSharp/Plugins/websocket-sharp.xml b/Unity3D/Assets/RosSharp/Plugins/websocket-sharp.xml new file mode 100644 index 000000000..9df57dc7a --- /dev/null +++ b/Unity3D/Assets/RosSharp/Plugins/websocket-sharp.xml @@ -0,0 +1,7850 @@ + + + + websocket-sharp + + + +