diff --git a/.gitignore b/.gitignore index 894e822..e8c03a6 100644 --- a/.gitignore +++ b/.gitignore @@ -127,7 +127,7 @@ publish/ # NuGet Packages Directory ## TODO: If you have NuGet Package Restore enabled, uncomment the next line -#packages/ +packages/ # Windows Azure Build Output csx diff --git a/TinyFileManager.NET.sln b/TinyFileManager.NET.sln index a72fa80..4c31c11 100644 --- a/TinyFileManager.NET.sln +++ b/TinyFileManager.NET.sln @@ -1,6 +1,8 @@  -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.30110.0 +MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TinyFileManager.NET", "TinyFileManager.NET\TinyFileManager.NET.csproj", "{45332B17-62BE-4E74-B64F-FD35509EA1BD}" EndProject Global diff --git a/TinyFileManager.NET/Properties/AssemblyInfo.cs b/TinyFileManager.NET/Properties/AssemblyInfo.cs index eabb96a..2f8b076 100644 --- a/TinyFileManager.NET/Properties/AssemblyInfo.cs +++ b/TinyFileManager.NET/Properties/AssemblyInfo.cs @@ -32,4 +32,4 @@ // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: [assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.1.0.0")] diff --git a/TinyFileManager.NET/Properties/Settings.Designer.cs b/TinyFileManager.NET/Properties/Settings.Designer.cs index 982810c..3295915 100644 --- a/TinyFileManager.NET/Properties/Settings.Designer.cs +++ b/TinyFileManager.NET/Properties/Settings.Designer.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.18033 +// Runtime Version:4.0.30319.18408 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -12,7 +12,7 @@ namespace TinyFileManager.NET.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); @@ -69,24 +69,6 @@ public string AllowedMiscExtensions { } } - [global::System.Configuration.ApplicationScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("resources\\files")] - public string UploadPath { - get { - return ((string)(this["UploadPath"])); - } - } - - [global::System.Configuration.ApplicationScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("resources\\thumbs")] - public string ThumbPath { - get { - return ((string)(this["ThumbPath"])); - } - } - [global::System.Configuration.ApplicationScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Configuration.DefaultSettingValueAttribute("True")] @@ -131,5 +113,60 @@ public int MaxUploadSizeMb { return ((int)(this["MaxUploadSizeMb"])); } } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("DefaultEndpointsProtocol=https;AccountName=playgroundservice;AccountKey=HCAHx1kCf" + + "ejMz8/fXP4Dcc6hFG8VMaUR164wv91x9iUXF63cTp4WWb29EPqhdmEasFTq0bMxpiBsnm6EneUQHw==")] + public string AzureBlobStore { + get { + return ((string)(this["AzureBlobStore"])); + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("//playgroundservice.blob.core.windows.net/")] + public string AzureBlobUrl { + get { + return ((string)(this["AzureBlobUrl"])); + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("tfm")] + public string AzureBlobContainer { + get { + return ((string)(this["AzureBlobContainer"])); + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("Azure")] + public string StorageMode { + get { + return ((string)(this["StorageMode"])); + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("resources\\files")] + public string UploadPath { + get { + return ((string)(this["UploadPath"])); + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("resources\\thumbs")] + public string ThumbPath { + get { + return ((string)(this["ThumbPath"])); + } + } } } diff --git a/TinyFileManager.NET/Properties/Settings.settings b/TinyFileManager.NET/Properties/Settings.settings index 6173871..d774145 100644 --- a/TinyFileManager.NET/Properties/Settings.settings +++ b/TinyFileManager.NET/Properties/Settings.settings @@ -17,12 +17,6 @@ - - resources\files - - - resources\thumbs - True @@ -38,5 +32,23 @@ 100 + + DefaultEndpointsProtocol=https;AccountName=playgroundservice;AccountKey=HCAHx1kCfejMz8/fXP4Dcc6hFG8VMaUR164wv91x9iUXF63cTp4WWb29EPqhdmEasFTq0bMxpiBsnm6EneUQHw== + + + //playgroundservice.blob.core.windows.net/ + + + tfm + + + Azure + + + resources\files + + + resources\thumbs + \ No newline at end of file diff --git a/TinyFileManager.NET/TinyFileManager.NET.csproj b/TinyFileManager.NET/TinyFileManager.NET.csproj index ec9a983..111c3da 100644 --- a/TinyFileManager.NET/TinyFileManager.NET.csproj +++ b/TinyFileManager.NET/TinyFileManager.NET.csproj @@ -1,5 +1,6 @@  + Debug AnyCPU @@ -14,6 +15,15 @@ TinyFileManager v4.0 false + + + + + 4.0 + + + + true @@ -34,10 +44,34 @@ + + ..\packages\Microsoft.Data.Edm.5.6.0\lib\net40\Microsoft.Data.Edm.dll + + + ..\packages\Microsoft.Data.OData.5.6.0\lib\net40\Microsoft.Data.OData.dll + + + ..\packages\Microsoft.Data.Services.Client.5.6.0\lib\net40\Microsoft.Data.Services.Client.dll + + + False + ..\packages\Microsoft.WindowsAzure.ConfigurationManager.1.8.0.0\lib\net35-full\Microsoft.WindowsAzure.Configuration.dll + + + False + ..\packages\WindowsAzure.Storage.3.0.3.0\lib\net40\Microsoft.WindowsAzure.Storage.dll + + + ..\packages\Newtonsoft.Json.5.0.8\lib\net40\Newtonsoft.Json.dll + + + + ..\packages\System.Spatial.5.6.0\lib\net40\System.Spatial.dll + @@ -188,12 +222,16 @@ + Code Code + + + dialog.aspx ASPXCodeBehind @@ -210,13 +248,19 @@ + SettingsSingleFileGenerator Settings.Designer.cs + + 10.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + - + + diff --git a/TinyFileManager.NET/Web.config b/TinyFileManager.NET/Web.config index 8d8ed0e..3d2a822 100644 --- a/TinyFileManager.NET/Web.config +++ b/TinyFileManager.NET/Web.config @@ -38,12 +38,6 @@ - - resources\files - - - resources\thumbs - True @@ -59,6 +53,24 @@ 100 + + Azure + + + DefaultEndpointsProtocol=https;AccountName=example;AccountKey=somekey + + + //example.blob.core.windows.net/ + + + tfm + + + resources\files + + + resources\thumbs + diff --git a/TinyFileManager.NET/bin/Microsoft.Data.Edm.dll b/TinyFileManager.NET/bin/Microsoft.Data.Edm.dll new file mode 100644 index 0000000..12d07d3 Binary files /dev/null and b/TinyFileManager.NET/bin/Microsoft.Data.Edm.dll differ diff --git a/TinyFileManager.NET/bin/Microsoft.Data.Edm.xml b/TinyFileManager.NET/bin/Microsoft.Data.Edm.xml new file mode 100644 index 0000000..f17fc72 --- /dev/null +++ b/TinyFileManager.NET/bin/Microsoft.Data.Edm.xml @@ -0,0 +1,11523 @@ + + + + Microsoft.Data.Edm + + + + + Defines a location in a XML file. + + + + + Represents the location of an Edm item. + + + + + Gets a string representation of the location. + + A string representation of the location. + + + + Gets a string representation of the location. + + A string representation of the location. + + + + Gets the line number in the file. + + + + + Gets the position in the line. + + + + + Exception type representing a failure to parse an EDM document. Carries the set of errors along with it. + + + + + Initializes a new instance of the class. + + The errors encountered while parsing. + + + + Prevents a default instance of the class from being created. + + The parse errors. + + + + Constructs an appropriate exception message from the set of parsing errors. + + The parse errors. + The exception message. + + + + Gets the set of errors that were encountered while parsing. + + + + + Specifies what target of an EDMX file. + + + + + The target is Entity Framework. + + + + + The target is OData. + + + + + Contains xml parsing methods for Edm. + + + + + Common base type for a CSDL expression. + + + + + Common base class for CSDL elements. + + + + + Represents a CSDL Collection expression. + + + + + Represents a CSDL enumeration type member. + + + + + Common base class for all named CSDL elements. + + + + + Base class for CSDL elements that have documentation. + + + + + Gets or sets the underlying type value of the member. + Value can be null only during deserialization of the declaring enumeration type. + When the type's deserialization is complete, all its members get their values assigned. + + + + + Represents a CSDL enumeration type. + + + + + Represents a CSDL Path expression. + + + + + Common base type for a CSDL type or value annotation. + + + + + Represents a CSDL Annotations element. + + + + + Represents a CSDL collection type. + + + + + Represents an inline type expression, such as , and + in the context of . + Note that nominal type declarations, such as entity, complex, association and primitive types, are not considered to be type expressions in the context + of - these types are handled in . + + + + + Represents a CSDL constant expression. + + + + + Represents a CSDL property value in an annotation. + + + + + Represents a CSDL Record expression. + + + + + Represents a reference to a CSDL primitive type. + + + + + Represents a CSDL type reference based on a type referenced by name. + + + + + Base type for the two kinds of type reference: and . + + + + + Represents a semantically invalid EDM enumeration type. + + + + + Represents an invalid EDM element. + + + + + Common base interface for all EDM elements. + + + + + Defines an Edm component who is invalid or whose validity is unknown at construction + + + + + Gets an error if one exists with the current object. + + + + + Represents an element that can be targeted by Vocabulary Annotations + + + + + Represents the definition of an EDM type. + + + + + Gets the kind of this type. + + + + + Represents a definition of an EDM enumeration type. + + + + + Represents an EDM type defined in an EDM schema. + + + + + Common base interface for all named children of EDM schemata. + + + + + Common base interface for all named EDM elements. + + + + + Gets the name of this element. + + + + + Gets the kind of this schema element. + + + + + Gets the namespace this schema element belongs to. + + + + + Gets the underlying type of this enumeration type. + + + + + Gets the members of this enumeration type. + + + + + Gets a value indicating whether the enumeration type can be treated as a bit field. + + + + + Common base class for all EDM elements. + + + + + Term to which an annotation can bind. + + + + + Gets the kind of a term. + + + + + Represents a definition of an EDM entity type. + + + + + Common base interface for definitions of EDM structured types. + + + + + Searches for a structural or navigation property with the given name in this type and all base types and returns null if no such property exists. + + The name of the property being found. + The requested property, or null if no such property exists. + + + + Gets a value indicating whether this type is abstract. + + + + + Gets a value indicating whether this type is open. + + + + + Gets the base type of this type. + + + + + Gets the properties declared immediately within this type. + + + + + Gets the structural properties of the entity type that make up the entity key. + + + + + Common base class for CsdlSemantics classes that have Annotations. + + + + + Interface for all EDM elements that can be located. + + + + + Gets the location of this element. + + + + + Allocates a new list if needed, and adds the item to the list. + + Type of the list. + List to add the item to. + Item being added. + List containing then new item. + + + + Represents an EDM expression. + + + + + Gets the kind of this expression. + + + + + Represents an EDM function application expression. + + + + + Gets the applied function. + + + + + Gets the arguments to the function. + + + + + Represents an EDM type assertion expression. + + + + + Gets the expression for which the type is asserted. + + + + + Gets the asserted type. + + + + + Provides semantics for a Csdl collection expression. + + + + + Represents an EDM multi-value construction expression. + + + + + Gets the declared type of the collection, or null if there is no declared type. + + + + + Gets the constructed element values. + + + + + Provides semantics for a Csdl datetime with offset constant expression. + + + + + Represents an EDM datetime with offset constant expression. + + + + + Represents an EDM datetime with offset value. + + + + + Represents an EDM primitive value. + + + + + Represents an EDM value. + + + + + Gets the type of this value. + + + + + Gets the kind of this value. + + + + + Gets the definition of this value. + + + + + Provides a CSDL-specific annotations manager. + + + + + Direct-value annotations manager provides services for setting and getting transient annotations on elements. + + + An object representing transient annotations is in one of these states: + 1) Null, if the element has no transient annotations. + 2) An EdmAnnotation, if the element has exactly one annotation. + 3) A list of EdmAnnotation, if the element has more than one annotation. + If the speed of annotation lookup for elements with many annotations becomes a concern, another option + including a dictionary is possible. + + + + + Manages getting and setting direct value annotations on EDM elements. + + + + + Gets annotations associated with an element. + + The annotated element. + The direct value annotations for the element. + + + + Sets an annotation value for an EDM element. If the value is null, no annotation is added and an existing annotation with the same name is removed. + + The annotated element. + Namespace that the annotation belongs to. + Name of the annotation within the namespace. + The value of the annotation. + + + + Sets a set of annotation values. If a supplied value is null, no annotation is added and an existing annotation with the same name is removed. + + The annotations to set + + + + Retrieves an annotation value for an EDM element. Returns null if no annotation with the given name exists for the given element. + + The annotated element. + Namespace that the annotation belongs to. + Local name of the annotation. + Returns the annotation value that corresponds to the provided name. Returns null if no annotation with the given name exists for the given element. + + + + Retrieves a set of annotation values. For each requested value, returns null if no annotation with the given name exists for the given element. + + The set of requested annotations + Returns values that correspond to the provided annotations. A value is null if no annotation with the given name exists for the given element. + + + + Keeps track of transient annotations on elements. + + + + + Used for locking during updates to the annotations dictionary; + + + + + Elements for which normal comparison failed to produce a valid result, arbitrarily ordered to enable stable comparisons. + + + + + Used for locking during updates to the unsorted elements list. + + + + + Initializes a new instance of the class. + + + + + Gets annotations associated with an element. + + The annotated element. + The immediate value annotations for the element. + + + + Sets an annotation value for an EDM element. If the value is null, no annotation is added and an existing annotation with the same name is removed. + + The annotated element. + Namespace that the annotation belongs to. + Name of the annotation within the namespace. + New annotation to set. + + + + Sets a set of annotation values. If a supplied value is null, no annotation is added and an existing annotation with the same name is removed. + + The annotations to set + + + + Retrieves an annotation value for an EDM element. Returns null if no annotation with the given name exists for the given element. + + The annotated element. + Namespace that the annotation belongs to. + Local name of the annotation. + Returns the annotation that corresponds to the provided name. Returns null if no annotation with the given name exists for the given element. + + + + Retrieves a set of annotation values. For each requested value, returns null if no annotation with the given name exists for the given element. + + The set of requested annotations + Returns values that correspond to the provided annotations. A value is null if no annotation with the given name exists for the given element. + + + + Retrieves the annotations that are directly attached to an element. + + The element in question. + The annotations that are directly attached to an element (outside the control of the manager). + + + + Retrieves the transient annotations for an EDM element. + + The annotated element. + The dictionary for looking up the element's annotations. + The transient annotations for the element, in a form managed by the annotations manager. + This method is static to guarantee that the annotations dictionary is not fetched more than once per lookup operation. + + + + Represents an EDM entity set reference expression. + + + + + Gets the referenced entity set. + + + + + Represents an EDM enumeration member reference expression. + + + + + Gets the referenced enum member. + + + + + Represents an EDM function reference expression. + + + + + Gets the referenced function. + + + + + Provides semantics for a Csdl guid constant expression. + + + + + Represents an EDM guid constant expression. + + + + + Represents an EDM integer value. + + + + + Gets the definition of this guid value. + + + + + Provides semantics for a Csdl binary constant expression. + + + + + Represents an EDM binary constant expression. + + + + + Represents an EDM binary value. + + + + + Gets the definition of this binary value. + + + + + Represents an EDM if expression. + + + + + Gets the test expression. + + + + + Gets the expression to evaluate if evaluates to true. + + + + + Gets the expression to evaluate if evaluates to false. + + + + + Represents an EDM type test expression. + + + + + Gets the expression whose type is to be tested. + + + + + Gets the type to be tested against. + + + + + Represents an EDM labeled expression element. + + + + + Gets the underlying expression. + + + + + Represents a reference to an EDM labeled expression. + + + + + Gets the referenced expression. + + + + + Provides semantics for a CsdlDirectValueAnnotation. + + + + + Represents an EDM annotation with an immediate value. + + + + + Gets the namespace Uri of the annotation. + + + + + Gets the value of this annotation. + + + + + Provides semantics for a CsdlEnumMember. + + + + + Represents a definition of an EDM enumeration type member. + + + + + Gets the value of this enumeration type member. + + + + + Gets the type that this member belongs to. + + + + + Provides semantics for CsdlEnumType. + + + + + Common base class for the semantics of EDM types. + + + + + Represents a CSDL type annotation. + + + + + Represents a CSDL value annotation. + + + + + Represents a CSDL value term. + + + + + Provides semantics for an out-of-line CSDL Annotations. + + + + + Provides semantics for a Csdl Bool constant expression. + + + + + Represents an EDM boolean constant expression. + + + + + Represents an EDM boolean value. + + + + + Gets a value indicating whether the value of this boolean value is true or false. + + + + + Provides semantics for CsdlCollectionType. + + + + + Represents a definition of an EDM collection type. + + + + + Gets the element type of this collection. + + + + + Provides semantics for . + + + + + Represents a references to a type. + + + + + Gets a value indicating whether this type is nullable. + + + + + Gets the definition to which this type refers. + + + + + Represents references to EDM Collection types. + + + + + Provides semantics for a Csdl DateTime constant expression. + + + + + Represents an EDM datetime constant expression. + + + + + Represents an EDM datetime value. + + + + + Gets the definition of this datetime value. + + + + + Provides semantics for a Csdl Decimal constant expression. + + + + + Represents an EDM decimal constant expression. + + + + + Represents an EDM decimal value. + + + + + Gets the definition of this decimal value. + + + + + Provides semantics for a Csdl Float constant expression. + + + + + Represents an EDM floating constant expression. + + + + + Represents an EDM floating point value. + + + + + Gets the definition of this floating value. + + + + + Provides semantics for a Csdl Int constant expression. + + + + + Represents an EDM integer constant expression. + + + + + Represents an EDM integer value. + + + + + Gets the definition of this integer value. + + + + + Provides semantics for CsdlNamedTypeReference. + + + + + Provides semantics for a Csdl null constant expression. + + + + + Represents an EDM null expression. + + + + + Represents an EDM null value. + + + + + Represents an EDM parameter reference expression. + + + + + Gets the referenced parameter. + + + + + Provides semantics for a Csdl Path expression. + + + + + Represents an EDM path expression. + + + + + Gets the path as a decomposed qualified name. "A.B/C/D.E" is { "A.B", "C", "D.E" }. + + + + + Provides semantics for a CsdlPropertyValue used in a record expression. + + + + + Represents an EDM property constructor specified as part of a EDM construction record expression. + + + + + Gets the name of the property. + + + + + Gets the expression for the value of the property. + + + + + Represents an EDM property reference expression. + + + + + Gets the expression for the structured value containing the referenced property. + + + + + Gets the referenced property. + + + + + Provides semantics for a CsdlPropertyValue used in a type annotation. + + + + + Represents a property binding specified as part of an EDM type annotation. + + + + + Gets the property that is given a value by the annotation. + + + + + Gets the expression producing the value of the annotation. + + + + + Represents an EDM structural (i.e. non-navigation) property. + + + + + Represents an EDM property. + + + + + Gets the kind of this property. + + + + + Gets the type of this property. + + + + + Gets the type that this property belongs to. + + + + + Gets the default value of this property. + + + + + Gets the concurrency mode of this property. + + + + + Provides semantics for a Csdl Record expression. + + + + + Represents an EDM record construction expression. + + + + + Gets the declared type of the record, or null if there is no declared type. + + + + + Gets the constructed property values. + + + + + Provides the semantics of a reference to an EDM primitive type. + + + + + Represents references to primitive types. + + + + + This doesn't need the full caching mechanism because the computation is cheap, and the likelyhood of computing a primitive type reference without needing its definition is remote. + + + + + Represents a reference to an EDM spatial type. + + + + + Gets the Spatial Reference Identifier of this spatial type. + + + + + Provides semantics for a Csdl String constant expression. + + + + + Represents an EDM string constant expression. + + + + + Represents an EDM string value. + + + + + Gets the definition of this string value. + + + + + Provides semantics for a Csdl DateTime constant expression. + + + + + Represents an EDM time constant expression. + + + + + Represents an EDM time value. + + + + + Gets the definition of this time value. + + + + + Common base class for CsdlSemanticsTypeAnnotation and CsdlSemanticsValueAnnotation. + + + + + Represents an EDM vocabulary annotation. + + + + + Gets the qualifier used to discriminate between multiple bindings of the same property or type. + + + + + Gets the term bound by the annotation. + + + + + Gets the element the annotation applies to. + + + + + Gets the type to use as a binding context for expressions in the annotation. If the target of the annotation + is an entity type, that is the binding context. If the target is an entity set, the binding context is the + element type of the set. + + + + + Provides semantics for a CsdlTypeAnnotation. + + + + + Represents an EDM type annotation. + + + + + Gets the value annotations for the properties of the type. + + + + + Provides semantics for a CsdlValueAnnotation. + + + + + Represents an EDM value annotation. + + + + + Gets the expression producing the value of the annotation. + + + + + Provides semantics for a CsdlValueTerm. + + + + + Represents an EDM value term. + + + + + Gets the type of this term. + + + + + Represents a definition of an EDM association type. + + + + + Gets the namespace this association belongs to. + + + + + Gets the first end of the association. + + + + + Gets the second end of the association. + + + + + Gets the referential constraint of the association. + + + + + Represents an end of an EDM association. + + + + + Gets the declaring association of this association end. + + + + + Gets the entity type of this end of the association. + + + + + Gets this end's multiplicity. + + + + + Gets the action to execute on the deletion of this association end. + + + + + Represents an EDM association set. + + + + + Gets the association of this association set. + + + + + Gets the first end of this association set. + + + + + Gets the second end of this association set. + + + + + Represents one of the ends of an EDM association set. + + + + + Gets the association end that describes the role of this association set end. + + + + + Gets the entity set this association set end corresponds to. + + + + + Validates that a type reference refers to a type that can be represented in CSDL. + + + + + Validates that a type reference refers to a type that can be represented in CSDL. + + + + + Validates that an entity set refers to a type that can be represented in CSDL. + + + + + Validates that a structured type's base type can be represented in CSDL. + + + + + Validates that association names can be represented in CSDL. + + + + + Validates that vocabulary annotations serialized out of line have a serializable target name. + + + + + Validates that vocabulary annotations have a serializable term name. + + + + + Represents whether a vocabulary annotation should be serialized within the element it applies to or in a seperate section of the CSDL. + + + + + The annotation should be serialized within the element being annotated. + + + + + The annotation should be serialized in a seperate section. + + + + + Contains extension methods for interfaces that are useful to serialization. + + + + + Gets the value for the EDMX version of the . + + Model the version has been set for. + The version. + + + + Sets a value of EDMX version attribute of the . + + The model the version should be set for. + The version. + + + + Sets an annotation on the IEdmModel to notify the serializer of preferred prefix mappings for xml namespaces. + + Reference to the calling object. + XmlNamespaceManage containing mappings between namespace prefixes and xml namespaces. + + + + Gets the preferred prefix mappings for xml namespaces from an IEdmModel + + Reference to the calling object. + Namespace prefixes that exist on the model. + + + + Sets a value for the DataServiceVersion attribute in an EDMX artifact. + + The model the attribute should be set for. + The value of the attribute. + + + + Gets the value for the DataServiceVersion attribute used during EDMX serialization. + + Model the attribute has been set for. + Value of the attribute. + + + + Sets a value for the MaxDataServiceVersion attribute in an EDMX artifact. + + The model the attribute should be set for. + The value of the attribute. + + + + Gets the value for the MaxDataServiceVersion attribute used during EDMX serialization. + + Model the attribute has been set for + Value of the attribute. + + + + Sets the location an annotation should be serialized in. + + The annotation the location is being specified for. + Model containing the annotation. + The location the annotation should appear. + + + + Gets the location an annotation should be serialized in. + + Reference to the calling annotation. + Model containing the annotation. + The location the annotation should be serialized at. + + + + Sets the schema an annotation should appear in. + + The annotation the schema should be set for. + Model containing the annotation. + The schema the annotation belongs in. + + + + Gets the schema an annotation should be serialized in. + + Reference to the calling annotation. + Model containing the annotation. + Name of the schema the annotation belongs to. + + + + Sets the name used for the association serialized for a navigation property. + + Model containing the navigation property. + The navigation property. + The association name. + + + + Gets the name used for the association serialized for a navigation property. + + Model containing the navigation property. + The navigation property. + The association name. + + + + Sets the namespace used for the association serialized for a navigation property. + + Model containing the navigation property. + The navigation property. + The association namespace. + + + + Gets the namespace used for the association serialized for a navigation property. + + Model containing the navigation property. + The navigation property. + The association namespace. + + + + Gets the fully-qualified name used for the association serialized for a navigation property. + + Model containing the navigation property. + The navigation property. + The fully-qualified association name. + + + + Sets the annotations for the association serialized for a navigation property. + + Model containing the navigation property. + The navigation property. + The association annotations. + The annotations for association end 1. + The annotations for association end 2. + The annotations for the referential constraint. + + + + Gets the annotations associated with the association serialized for a navigation property. + + Model containing the navigation property. + The navigation property. + The association annotations. + The annotations for association end 1. + The annotations for association end 2. + The annotations for the referential constraint. + + + + Sets the name used for the association end serialized for a navigation property. + + Model containing the navigation property. + The navigation property. + The association end name. + + + + Gets the name used for the association end serialized for a navigation property. + + Model containing the navigation property. + The navigation property. + The association end name. + + + + Sets the name used for the association set serialized for a navigation property of an entity set. + + Model containing the entity set. + The entity set + The navigation property. + The association set name. + + + + Gets the name used for the association set serialized for a navigation property of an entity set. + + Model containing the entity set. + The entity set. + The navigation property. + The association set name. + + + + Sets the annotations for the association set serialized for a navigation target of an entity set. + + Model containing the entity set. + The entity set. + The navigation property. + The association set annotations. + The annotations for association set end 1. + The annotations for association set end 2. + + + + Gets the annotations associated with the association serialized for a navigation target of an entity set. + + Model containing the entity set. + The entity set. + The navigation property. + The association set annotations. + The annotations for association set end 1. + The annotations for association set end 2. + + + + Gets the primary end of a pair of partnered navigation properties, selecting the principal end if there is one and making a stable, arbitrary choice otherwise. + + The navigation property. + The primary end between the navigation property and its partner. + + + + Sets an annotation indicating whether the value of an enum member should be explicitly serialized. + + Member to set the annotation on. + Model containing the member. + If the value of the enum member should be explicitly serialized + + + + Gets an annotation indicating whether the value of an enum member should be explicitly serialized. + + The member the annotation is on. + Model containing the member. + Whether the member should have its value serialized. + + + + Sets an annotation indicating if the value should be serialized as an element. + + Value to set the annotation on. + Model containing the value. + Value indicating if the value should be serialized as an element. + + + + Gets an annotation indicating if the value should be serialized as an element. + + Value the annotation is on. + Model containing the value. + Value indicating if the string should be serialized as an element. + + + + Sets the serialization alias for a given namespace + + Model that will be serialized. + The namespace to set the alias for. + The alias for that namespace. + + + + Gets the serialization alias for a given namespace. + + Model that will be serialized. + Namespace the alias is needed for. + The alias of the given namespace, or null if one does not exist. + + + + Represents a CSDL function return type. + + + + + Provides EDMX parsing services for EDM models. + + + + + True when either Runtime or DataServices node have been processed. + + + + + Returns an IEdmModel for the given EDMX artifact. + + XmlReader containing the EDMX artifact. + The model generated by parsing + Errors reported while parsing. + Success of the parse operation. + + + + Returns an IEdmModel for the given EDMX artifact. + + XmlReader containing the EDMX artifact. + The model generated by parsing. + + + + Returns an IEdmModel for the given EDMX artifact. + + XmlReader containing the EDMX artifact. + Model to be referenced by the created model. + The model generated by parsing + Errors reported while parsing. + Success of the parse operation. + + + + Returns an IEdmModel for the given EDMX artifact. + + XmlReader containing the EDMX artifact. + Model to be referenced by the created model. + The model generated by parsing. + + + + Returns an IEdmModel for the given EDMX artifact. + + XmlReader containing the EDMX artifact. + Models to be referenced by the created model. + The model generated by parsing + Errors reported while parsing. + Success of the parse operation. + + + + Returns an IEdmModel for the given EDMX artifact. + + XmlReader containing the EDMX artifact. + Models to be referenced by the created model. + The model generated by parsing. + + + + .TryParse does not exist on all platforms, so implementing it here. + + Input string. + Parsed version. + False in case of failure. + + + + All parse functions start with the reader pointing at the start tag of an element, and end after consuming the ending tag for the element. + + The current element name to be parsed. + The parsers for child elements of the current element. + + + + Provides EDMX serialization services for EDM models. + + + + + Outputs an EDMX artifact to the provided XmlWriter. + + Model to be written. + XmlWriter the generated EDMX will be written to. + Target implementation of the EDMX being generated. + Errors that prevented successful serialization, or no errors if serialization was successfull. + A value indicating whether serialization was successful. + + + + Represents references to entity reference types. + + + + + Represents the common base type of EDM functions and function imports. + + + + + Searches for a parameter with the given name, and returns null if no such parameter exists. + + The name of the parameter being found. + The requested parameter or null if no such parameter exists. + + + + Gets the return type of this function. + + + + + Gets the collection of parameters for this function. + + + + + Represents an EDM function import. + + + + + Represents the common elements of all EDM entity container elements. + + + + + Gets the kind of element of this container element. + + + + + Gets the container that contains this element. + + + + + Gets a value indicating whether this function import has side-effects. + cannot be set to true if is set to true. + + + + + Gets a value indicating whether this functon import can be composed inside expressions. + cannot be set to true if is set to true. + + + + + Gets a value indicating whether this function import can be used as an extension method for the type of the first parameter of this function import. + + + + + Gets the entity set containing entities returned by this function import. + + + + + Represents an EDM entity set reference expression. + + + + + Initializes a new instance of the class. + + Referenced entity set. + + + + Gets the referenced entity set. + + + + + Gets the kind of this expression. + + + + + Represents an EDM path expression. + + + + + Initializes a new instance of the class. + + Path string containing segments seperated by '/'. For example: "A.B/C/D.E/Func1(NS.T,NS.T2)/P1". + + + + Initializes a new instance of the class. + + Path segments. + + + + Initializes a new instance of the class. + + Path segments. + + + + Gets the path as a decomposed qualified name. "A.B/C/D.E/Func1(NS.T,NS.T2)/P1" is { "A.B", "C", "D.E", "Func1(NS.T,NS.T2)", "P1" }. + + + + + Gets the kind of this expression. + + + + + Represents references to row types. + + + + + Represents references to EDM structured types. + + + + + When we see an entity container, we see if it has . + If it does, then we attach it to that schema, otherwise we attached to the first existing schema. + If there are no schemas, we create the one named "Default" and attach container to it. + + The entity container being processed. + + + + Represents a delegate for creating an instance of CLR type based on and . + The delegate can be used to create CLR instances of polymorphic types. + + The for which the needs to be created. + The expected CLR type of the object instance. In case of polymorphic properties and collections this may be a base type. + The converter instance calling this delegate. + The output parameter returning a CLR object instance created for the . + The output parameter returning true if all properties of the created are initialized. + False if properties of the created instance should be initialized using the default logic. + True if the delegate produced a desired . + If delegate returns false, the default logic will be applied to create and populate a CLR object instance. + + + + to CLR value converter. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The delegate customizing conversion of structured values. + + + + Converts to a CLR value of the specified type. + Supported values for are: + CLR primitive types such as and , + CLR enum types, + , + , + , + CLR classes with default constructors and public properties with setters and collection properties of the following shapes: + EnumerableProperty { get; set; }, + CollectionProperty { get; set; }, + ListProperty { get; set; }, + CollectionProperty { get { return this.nonNullCollection; } }, + ListProperty { get { return this.nonNullList; } }. + + The CLR type. + The EDM value to be converted. + A CLR value converted from . + This method performs boxing and unboxing for value types. Use value-type specific methods such as to avoid boxing and unboxing. + + + + Converts to a CLR value of the specified type. + Supported values for are: + CLR primitive types such as and , + CLR enum types, + , + , + , + CLR classes with default constructors and public properties with setters and collection properties of the following shapes: + EnumerableProperty { get; set; }, + CollectionProperty { get; set; }, + ListProperty { get; set; }, + CollectionProperty { get { return this.nonNullCollection; } }, + ListProperty { get { return this.nonNullList; } }. + + The EDM value to be converted. + The CLR type. + A CLR value converted from . + This method performs boxing and unboxing for value types. Use value-type specific methods such as to avoid boxing and unboxing. + + + + Registers the corresponding to the . + All subsequent conversions from this performed by this instance of will return the specified + . Registration is required to support graph consistency and loops during conversion process. + This method should be called inside the delegate if the delegate is calling back into + in order to populate properties of the . + + The EDM value. + The CLR object. + + + + Converts to a CLR byte array value. + + The EDM value to be converted. + Converted byte array. + Exception is thrown if is not . + + + + Converts to a value. + + The EDM value to be converted. + Converted string. + Exception is thrown if is not . + + + + Converts to a value. + + The EDM value to be converted. + Converted boolean. + Exception is thrown if is not . + + + + Converts to a value. + + The EDM value to be converted. + Converted integer. + Exception is thrown if is not . + + + + Converts to a value. + + The EDM value to be converted. + Converted char. + Exception is thrown if is not . + Exception is thrown if cannot be converted to . + + + + Converts to a value. + + The EDM value to be converted. + Converted byte. + Exception is thrown if is not . + Exception is thrown if cannot be converted to . + + + + Converts to a value. + + The EDM value to be converted. + Converted integer. + Exception is thrown if is not . + Exception is thrown if cannot be converted to . + + + + Converts to a value. + + The EDM value to be converted. + Converted integer. + Exception is thrown if is not . + Exception is thrown if cannot be converted to . + + + + Converts to a value. + + The EDM value to be converted. + Converted double. + Exception is thrown if is not . + + + + Converts to a value. + + The EDM value to be converted. + Converted single. + Exception is thrown if is not . + + + + Converts to a value. + + The EDM value to be converted. + Converted decimal. + Exception is thrown if is not . + + + + Converts to a value. + + The EDM value to be converted. + Converted DateTime. + Exception is thrown if is not . + + + + Converts to a value. + + The EDM value to be converted. + Converted Time. + Exception is thrown if is not . + + + + Converts to a value. + + The EDM value to be converted. + Converted DateTimeOffset. + Exception is thrown if is not . + + + + Searches the for a property with the . + Handles the case of multiple properties with the same name (declared via C# "new") by choosing the one on the deepest derived type. + + The clr object type. + The property name. + The property or null. + + + + Used for error messages only. + + The EDM value. + The EDM value interface name. + + + + The class contains method that are called thru reflection to produce values of correct CLR types. + For example if one has an int value and a clr type represnting an enum : int, there is no other way to convert the int + to the enum type object. + + + + + Expression evaluator capable of producing CLR values. + + + + + Expression evaluator. + + + + + Initializes a new instance of the EdmExpressionEvaluator class. + + Builtin functions dictionary to the evaluators for the functions. + + + + Initializes a new instance of the EdmExpressionEvaluator class. + + Builtin functions dictionary to the evaluators for the functions. + Function to call to evaluate an application of a function with no static binding. + + + + Evaluates an expression with no value context. + + Expression to evaluate. The expression must not contain paths, because no context for evaluating a path is supplied. + The value that results from evaluating the expression in the context of the supplied value. + + + + Evaluates an expression in the context of a value. + + Expression to evaluate. + Value to use as context in evaluating the expression. Cannot be null if the expression contains paths. + The value that results from evaluating the expression in the context of the supplied value. + + + + Evaluates an expression in the context of a value and a target type. + + Expression to evaluate. + Value to use as context in evaluating the expression. Cannot be null if the expression contains paths. + Type to which the result value is expected to conform. + The value that results from evaluating the expression in the context of the supplied value, asserted to be of the target type. + + + + Represents a lazily computed value. + + + + + Gets the data stored in this value. + + + + + Represents a value of an EDM property. + + + + + Gets the name of the property this value is associated with. + + + + + Represents an EDM collection value. + + + + + Gets the values stored in this collection. + + + + + Initializes a new instance of the class. + + Builtin functions dictionary to the evaluators for the functions. + + + + Initializes a new instance of the class. + + Builtin functions dictionary to the evaluators for the functions. + Function to call to evaluate an application of a function with no static binding. + + + + Evaluates an expression with no value context. + + The CLR type of the value to be returned. + Expression to evaluate. The expression must not contain paths, because no context for evaluating a path is supplied. + The value that results from evaluating the expression in the context of the supplied value. + + + + Evaluates an expression in the context of a value. + + The CLR type of the value to be returned. + Expression to evaluate. + Value to use as context in evaluating the expression. + The value that results from evaluating the expression in the context of the supplied value. + + + + Evaluates an expression in the context of a value and a target type. + + The CLR type of the value to be returned. + Expression to evaluate. + Value to use as context in evaluating the expression. + Type to which the result value is expected to conform. + The value that results from evaluating the expression in the context of the supplied value, asserted to be of the targetType. + + + + Gets or sets an instance of that is used to produce CLR values during evaluation. + + + + + Contains IsEquivalentTo() extension methods. + + + + + Returns true if the compared type is semantically equivalent to this type. + Schema types () are compared by their object refs. + + Type being compared. + Type being compared to. + Equivalence of the two types. + + + + Returns true if the compared type reference is semantically equivalent to this type reference. + Schema types () are compared by their object refs. + + Type reference being compared. + Type referenced being compared to. + Equivalence of the two type references. + + + + Returns true if function signatures are semantically equivalent. + Signature includes function name () and its parameter types. + + Reference to the calling object. + Function being compared to. + Equivalence of signatures of the two functions. + + + + Returns true if the compared function parameter is semantically equivalent to this function parameter. + + Reference to the calling object. + Function parameter being compared to. + Equivalence of the two function parameters. + + + + Represents a mapping from an EDM navigation property to an entity set. + + + + + Gets the navigation property. + + + + + Gets the target entity set. + + + + + Represents the combination of an EDM annotation with an immediate value and the element to which it is attached. + + + + + Gets the element to which the annotation is attached + + + + + Gets the namespace URI of the annotation. + + + + + Gets the local name of this annotation. + + + + + Gets the value of this annotation. + + + + + Remembers the result of evaluating an expensive function so that subsequent + evaluations are faster. Thread-safe. + + Type of the argument to the function. + Type of the function result. + + + + Constructs the memoizer. + + Required. Function whose values are being cached. + Optional. Comparer used to determine if two functions arguments are the same. + + + + Evaluates the wrapped function for the given argument. If the function has already + been evaluated for the given argument, returns cached value. Otherwise, the value + is computed and returned. + + Function argument. + Function result. + + + + Encapsulates a 'deferred' result. The result is constructed with a delegate (must not + be null) and when the user requests a value the delegate is invoked and stored. + + + + + Represents an EDM navigation property info used during construction of navigation properties. + + + + + Clones this object. + + A copy of this object. + + + + Gets or sets the name of this navigation property. + + + + + Gets or sets the entity type that this navigation property belongs to. + + + + + Gets or sets multiplicity of the navigation target. + + + + + Gets or sets the dependent properties of the association this navigation property expresses. + + + + + Gets or sets a value indicating whether the navigation target is contained inside the navigation source. + + + + + Gets or sets the action to take when an instance of the declaring type is deleted. + + + + + Represents a mapping from an EDM navigation property to an entity set. + + + + + Creates a new navigation target mapping. + + The navigation property. + The entity set that the navigation propertion targets. + + + + Gets the navigation property. + + + + + Gets the target entity set. + + + + + Represents an EDM time constant. + + + + + Represents an EDM value. + + + + + Initializes a new instance of the EdmValue class. + + Type of the value. + + + + Gets the type of this value. + + + + + Gets the kind of this value. + + + + + Initializes a new instance of the class. + + Time value represented by this value. + + + + Initializes a new instance of the class. + + Type of the Time. + Time value represented by this value. + + + + Gets the definition of this value. + + + + + Gets the kind of this expression. + + + + + Gets the kind of this value. + + + + + Represents a name binding to more than one item. + + Type of the ambiguous element. + + + + Represents an EDM entity container. + + + + + Searches for an entity set with the given name in this entity container and returns null if no such set exists. + + The name of the element being found. + The requested element, or null if the element does not exist. + + + + Searches for function imports with the given name in this entity container and returns null if no such function import exists. + + The name of the function import being found. + A group of the requested function imports, or an empty enumerable if no such function import exists. + + + + Gets a collection of the elements of this entity container. + + + + + Represents an EDM entity set. + + + + + Finds the entity set that a navigation property targets. + + The navigation property. + /// The entity set that the navigation propertion targets, or null if no such entity set exists. + + + + Gets the entity type contained in this entity set. + + + + + Gets the navigation targets of this entity set. + + + + + Represents an EDM function. + + + + + Gets the defining expression of this function. + + + + + Represents a labeled expression binding to more than one item. + + + + + Gets the kind of this property. + + + + + Gets the type that this property belongs to. + + + + + Represents a name binding to more than one item. + + + + + Represents a name binding to more than one item. + + + + + Represents a reference to a semantically invalid EDM binary type. + + + + + Represents a reference to an EDM binary type. + + + + + Represents a reference to an EDM primitive type. + + + + + Represents a reference to an EDM type. + + + + + Initializes a new instance of the class. + + Type that describes this value. + Denotes whether the type can be nullable. + + + + Returns the text representation of the current object. + + The text representation of the current object. + + + + Gets a value indicating whether this type is nullable. + + + + + Gets the definition to which this type refers. + + + + + Initializes a new instance of the class. + + The type this reference refers to. + Denotes whether the type can be nullable. + + + + Represents a reference to an EDM binary type. + + + + + Gets a value indicating whether this type specifies fixed length. + + + + + Gets a value indicating whether this type specifies the maximum allowed length. + + + + + Gets the maximum length of this type. + + + + + Initializes a new instance of the class. + + The type this reference refers to. + Denotes whether the type can be nullable. + + + + Initializes a new instance of the class. + + The type this reference refers to. + Denotes whether the type can be nullable. + Denotes whether the max length is the maximum allowed value. + Maximum length of a value of this type. + Denotes whether the length can vary. + + + + Gets a value indicating whether this type specifies fixed length. + + + + + Gets a value indicating whether this type specifies the maximum allowed length. + + + + + Gets the maximum length of this type. + + + + + Represents a semantically invalid EDM collection type. + + + + + Represents a semantically invalid EDM complex type definition. + + + + + Represents a semantically invalid EDM named structured type definition. + + + + + Represents a semantically invalid EDM structured type definition. + + + + + Represents a definition of an EDM complex type. + + + + + Represents a reference to an EDM complex type. + + + + + Represents references to EDM complex types. + + + + + Initializes a new instance of the class. + + The type definition this reference refers to. + Denotes whether the type can be nullable. + + + + Represents a reference to a semantically invalid EDM decimal type. + + + + + Represents a reference to an EDM decimal type. + + + + + Represents a reference to an EDM decimal type. + + + + + Gets the precision of this type. + + + + + Gets the scale of this type. + + + + + Initializes a new instance of the class. + + The type this reference refers to. + Denotes whether the type can be nullable. + + + + Initializes a new instance of the class. + + The type this reference refers to. + Denotes whether the type can be nullable. + Precision of values with this type. + Scale of values with this type. + + + + Gets the precision of this type. + + + + + Gets the scale of this type. + + + + + Represents a semantically invalid EDM entity container. + + + + + Gets the kind of this schema element. + + + + + Represents a semantically invalid EDM entity reference type. + + + + + Represents a definition of an EDM entity reference type. + + + + + Gets the entity type pointed to by this entity reference. + + + + + Represents a semantically invalid EDM entity set. + + + + + Represents a semantically invalid EDM entity type. + + + + + Represents a reference to an EDM entity type. + + + + + Represents references to entity types. + + + + + Initializes a new instance of the class. + + The definition refered to by this reference. + Denotes whether the type can be nullable. + + + + Represents a semantically invalid EDM enumeration type member. + + + + + Represents a semantically invalid EDM labeled expression. + + + + + Represents a semantically invalid EDM primitive type definition. + + + + + Represents a definition of an EDM primitive type. + + + + + Gets the primitive kind of this type. + + + + + Represents a reference to a semantically invalid EDM primitive type. + + + + + Gets the kind of this value. + + + + + Represents a semantically invalid EDM property. + + + + + Represents a semantically invalid EDM row type. + + + + + Represents a definition of an EDM row type. + + + + + Represents a reference to a semantically invalid EDM spatial type. + + + + + Represents a reference to an EDM spatial type. + + + + + Initializes a new instance of the class. + + The type this reference refers to. + Denotes whether the type can be nullable. + + + + Initializes a new instance of the class. + + The type this reference refers to. + Denotes whether the type can be nullable. + Spatial Reference Identifier for the spatial type being created. + + + + Gets the precision of this temporal type. + + + + + Represents a reference to a semantically invalid EDM string type. + + + + + Represents a reference to an EDM string type. + + + + + Represents a reference to an EDM string type. + + + + + Gets a value indicating whether this string type specifies fixed length. + + + + + Gets a value indicating whether this string type specifies the maximum allowed length. + + + + + Gets the maximum length of this string type. + + + + + Gets a value indicating whether this string type supports unicode encoding. + + + + + Gets a string representing the collation of this string type. + + + + + Initializes a new instance of the class. + + The type this reference refers to. + Denotes whether the type can be nullable. + + + + Initializes a new instance of the class. + + The type this reference refers to. + Denotes whether the type can be nullable. + Denotes whether the max length is the maximum allowed value. + Maximum length of a value of this type. + Denotes whether the length can vary. + Denotes if string is encoded using Unicode. + Indicates the collation string to be used by the underlying store. + + + + Gets a value indicating whether this string type specifies fixed length. + + + + + Gets a value indicating whether this string type specifies the maximum allowed length. + + + + + Gets the maximum length of this string type. + + + + + Gets a value indicating whether this string type supports unicode encoding. + + + + + Gets a string representing the collation of this string type. + + + + + Represents a reference to a semantically invalid EDM temporal (Time, DateTime, DateTimeOffset) type. + + + + + Represents a reference to an EDM temporal (Time, DateTime, DateTimeOffset) type. + + + + + Represents a reference to an EDM temporal (Time, DateTime, DateTimeOffset) type. + + + + + Gets the precision of this temporal type. + + + + + Initializes a new instance of the class. + + The type this reference refers to. + Denotes whether the type can be nullable. + + + + Initializes a new instance of the class. + + The type this reference refers to. + Denotes whether the type can be nullable. + Precision of values with this type. + + + + Gets the precision of this temporal type. + + + + + Represents an EDM complex type that cannot be determined due to a cyclic reference. + + + + + Represents an EDM entity container that cannot be determined due to a cyclic reference. + + + + + Represents an EDM entity type that cannot be determined due to a cyclic reference. + + + + + Provides a dictionary that is thread safe by virtue of being immutable. + Any update returns a new dictionary (which, for efficiency, may share some of the state of the old one). + + Key type of the dictionary. + Value type of the dictionary. + + + + Provides a list that is thread safe by virtue of being immutable. + "Mutating" operations return a new list (which, for efficiency, may share some of the state of the old one). + + Element type of the list. + + + + Provides an approximately-balanced binary search tree that is thread safe by virtue of being immutable. + Updates return a new tree (which, for efficiency, may share some state with the old one). + + Key type of the tree. + Value type of the tree. + + + + Initializes a new instance of VersioningTree. + + The key of the tree node. + The value of the tree node. + A tree with all keys less than the key of the tree node. May be null. + A tree with all keys greater than the key of the tree node. May be null. + + + + Represents the combination of an EDM annotation with an immediate value and the element to which it is attached. + + + + + Initializes a new instance of the class. + + Element to which the annotation is attached. + Namespace URI of the annotation. + Name of the annotation within the namespace. + Value of the annotation + + + + Initializes a new instance of the class. + + Element to which the annotation is attached. + Namespace URI of the annotation. + Name of the annotation within the namespace. + + + + Gets the element to which the annotation is attached. + + + + + Gets the namespace Uri of the annotation. + + + + + Gets the local name of the annotation. + + + + + Gets the value of this annotation. + + + + + Represents the combination of an EDM annotation with an immediate value and the element to which it is attached. + + Type of the annotation value. + + + + Common base class for all named EDM elements. + + + + + Initializes a new instance of the class. + + Name of the element. + + + + Gets the name of this element. + + + + + Initializes a new instance of the class. + + Element to which the annotation is attached. + Value of the annotation + + + + Gets the element to which the annotation is attached. + + + + + Gets the namespace Uri of the annotation. + + + + + Gets the value of this annotation. + + + + + Defines an object as a location of itself. + + + + + Gets a string representation of the location. + + A string representation of the location. + + + + Gets the object. + + + + + Collection of extension methods to assert that an expression is of the required type. + + + + + Determines if the type of an expression is compatible with the provided type + + The expression to assert the type of. + The type to assert the expression as. + Errors produced if the expression does not match the specified type. + A value indicating whether the expression is valid for the given type or not. + If the expression has an associated type, this function will check that it matches the expected type and stop looking further. + If an expression claims a type, it must be validated that the type is valid for the expression. If the expression does not claim a type + this method will attempt to check the validity of the expression itself with the asserted type. + + + + Determines if the type of an expression is compatible with the provided type + + The expression to assert the type of. + The type to assert the expression as. + The context paths are to be evaluated in. + A value indicating whether the expression must match the asserted type exactly, or simply be compatible. + Errors produced if the expression does not match the specified type. + A value indicating whether the expression is valid for the given type or not. + If the expression has an associated type, this function will check that it matches the expected type and stop looking further. + If an expression claims a type, it must be validated that the type is valid for the expression. If the expression does not claim a type + this method will attempt to check the validity of the expression itself with the asserted type. + + + + Contains ToTraceString() extension methods. + + + + + Returns the text representation of the current object. + + Reference to the calling object. + The text representation of the current object. + + + + Returns the text representation of the current object. + + Reference to the calling object. + The text representation of the current object. + + + + Returns the text representation of the current object. + + Reference to the calling object. + The text representation of the current object. + + + + Returns the text representation of the current object. + + Reference to the calling object. + The text representation of the current object. + + + + Returns the text representation of the current object. + + Reference to the calling object. + The text representation of the current object. + + + + Represents an EDM enumeration type value. + + + + + Gets the underlying type value of the enumeration type. + + + + + Represents references to EDM enumeration types. + + + + + Represents an EDM value term reference expression. + + + + + Gets the expression for the structured value containing the referenced term property. + + + + + Gets the referenced value term. + + + + + Gets the optional qualifier. + + + + + Defines EDM term kinds. + + + + + Represents a term with unknown or error kind. + + + + + Represents a term implementing and . + + + + + Represents a term implementing . + + + + + Represents an EDM structured value. + + + + + Finds the value corresponding to the provided property name. + + Property to find the value of. + The found property, or null if no property was found. + + + + Gets the property values of this structured value. + + + + + Defines Edm values + + + + + Represents a value implementing . + + + + + Represents a value implementing . + + + + + Represents a value implementing . + + + + + Represents a value implementing . + + + + + Represents a value implementing . + + + + + Represents a value implementing . + + + + + Represents a value implementing . + + + + + Represents a value implementing . + + + + + Represents a value implementing . + + + + + Represents a value implementing . + + + + + Represents a value implementing . + + + + + Represents a value implementing . + + + + + Represents a value implementing . + + + + + Represents a value implementing . + + + + + Represents a value with an unknown or error kind. + + + + + Defines EDM expression kinds. + + + + + Represents an expression with unknown or error kind. + + + + + Represents an expression implementing . + + + + + Represents an expression implementing . + + + + + Represents an expression implementing . + + + + + Represents an expression implementing . + + + + + Represents an expression implementing . + + + + + Represents an expression implementing . + + + + + Represents an expression implementing . + + + + + Represents an expression implementing . + + + + + Represents an expression implementing . + + + + + Represents an expression implementing . + + + + + Represents an expression implementing . + + + + + Represents an expression implementing . + + + + + Represents an expression implementing . + + + + + Represents an expression implementing . + + + + + Represents an expression implementing . + + + + + Represents an expression implementing . + + + + + Represents an expression implementing . + + + + + Represents an expression implementing . + + + + + Represents an expression implementing . + + + + + Represents an expression implementing . + + + + + Represents an expression implementing . + + + + + Represents an expression implementing . + + + + + Represents an expression implementing . + + + + + Represents an expression implementing . + + + + + Represents an expression implementing . + + + + + Represents an expression implementing + + + + + Constants for CSDL XML. + + + + + The local name of the annotation that stores EDMX version of a model. + + + + + Version 1.0 of EDMX. Corresponds to EDMX namespace "http://schemas.microsoft.com/ado/2007/06/edmx". + + + + + Version 2.0 of EDMX. Corresponds to EDMX namespace "http://schemas.microsoft.com/ado/2008/10/edmx". + + + + + Version 3.0 of EDMX. Corresponds to EDMX namespace "http://schemas.microsoft.com/ado/2009/11/edmx". + + + + + The current latest version of EDMX. + + + + + Represents a CSDL annotation. + + + + + Represents a CSDL association. + + + + + Represents a CSDL association end. + + + + + Represents a CSDL association set. + + + + + Represents a CSDL association set end. + + + + + Represents a reference to a CSDL Binary type. + + + + + Represents a CSDL complex type. + + + + + Common base class for CSDL entity and complex types. + + + + + Common base class for CSDL entity, complex, and row Types. + + + + + Represents a reference to a CSDL decimal type. + + + + + Represents a CSDL documentation. + + + + + Represents a CSDL entity container. + + + + + Represents a CSDL entity reference type. + + + + + Represents a CSDL Entity Set. + + + + + Represents a CSDL entity type. + + + + + Represents a CSDL type reference based on a type expression. + + + + + Represents a CSDL function. + + + + + Represents a base class for CSDL functions and function imports. + + + + + Represents a CSDL function import. + + + + + Represents a CSDL function parameter. + + + + + Represents a CSDL key. + + + + + Represents a CSDL model. + + + + + Represents a CSDL navigation property. + + + + + Represents a CSDL "on delete" action. + + + + + Represents a CSDL property. + + + + + Represents a CSDL property reference. + + + + + Represents a CSDL referential constraint. + + + + + Represents a CSDL referential constraint role. + + + + + Represents a CSDL row type. + + + + + Represents a CSDL schema. + + + + + Represents a reference to a CSDL String type. + + + + + Represents a reference to a CSDL temporal type. + + + + + Represents a CSDL Using. + + + + + Base class for parsers of XML documents + + + + + CSDL document parser. + + + + + Provides for the loading and conversion of one or more CSDL XML readers into Entity Data Model. + + + + + Provides semantics for a CsdlAssociation. + + + + + Provides semantics for a CsdlAssociationEnd. + + + + + Provides semantics for a CsdlAssociationSet. + + + + + Provides semantics for a CsdlAssociationSetEnd. + + + + + Provides the semantics of a reference to an EDM Binary type. + + + + + Provides semantics for CsdlComplexType. + + + + + Provides semantics for CsdlStructuredType. + + + + + Provides the semantics of a reference to an EDM Decimal type. + + + + + Provides semantics for CsdlDocumentation. + + + + + Represents an EDM documentation. + + + + + Gets a summary of this documentation. + + + + + Gets a long description of this documentation. + + + + + Provides semantics for CsdlEntityContainer. + + + + + Provides semantics for CsdlEntityTypeReference. + + + + + Provides semantics for CsdlEntitySet. + + + + + Provides semantics for CsdlEntityType. + + + + + Provides semantics for a CsdlFunction. + + + + + Provides semantics for a CsdlFunctionParameter. + + + + + Represents a parameter of an EDM function. + + + + + Gets the type of this function parameter. + + + + + Gets the function or function import that declared this parameter. + + + + + Gets the mode of this function parameter. + + + + + Provides semantics for CsdlMetadataModel. + + + + + Represents an EDM model. + + + + + Semantic representation of an EDM model. + + + This interface, and all interfaces reachable from it, preserve certain invariants: + -- The backing implementation of an element can be loaded or created on demand. + -- No direct element mutation occurs through the interfaces. + + + + + Searches for an entity container with the given name in this model and returns null if no such entity container exists. + + The name of the entity container being found. + The requested entity container, or null if no such entity container exists. + + + + Searches for a type with the given name in this model and returns null if no such type exists. + + The qualified name of the type being found. + The requested type, or null if no such type exists. + + + + Searches for functions with the given name in this model and returns an empty enumerable if no such function exists. + + The qualified name of the function being found. + A set of functions sharing the specified qualified name, or an empty enumerable if no such function exists. + + + + Searches for a value term with the given name in this model and returns null if no such value term exists. + + The qualified name of the value term being found. + The requested value term, or null if no such value term exists. + + + + Searches for vocabulary annotations specified by this model. + + The annotated element. + The vocabulary annotations for the element. + + + + Finds a list of types that derive directly from the supplied type. + + The base type that derived types are being searched for. + A list of types from this model that derive directly from the given type. + + + + Gets the collection of schema elements that are contained in this model. + + + + + Gets the collection of vocabulary annotations that are contained in this model. + + + + + Gets the collection of models referred to by this model. + + + + + Gets the model's annotations manager. + + + + + Initializes a new instance of the class. + + Models to which this model refers. + Annotations manager for the model to use. + + + + Searches for an entity container with the given name in this model and returns null if no such entity container exists. + + The name of the entity container being found. + The requested entity container, or null if no such entity container exists. + + + + Searches for a type with the given name in this model and returns null if no such type exists. + + The qualified name of the type being found. + The requested type, or null if no such type exists. + + + + Searches for a value term with the given name in this model and returns null if no such value term exists. + + The qualified name of the value term being found. + The requested value term, or null if no such value term exists. + + + + Searches for a function with the given name in this model and returns null if no such function exists. + + The qualified name of the function being found. + A group of functions sharing the specified qualified name, or an empty enumerable if no such function exists. + + + + Searches for vocabulary annotations specified by this model or a referenced model for a given element. + + The annotated element. + The vocabulary annotations for the element. + + + + Finds a list of types that derive directly from the supplied type. + + The base type that derived types are being searched for. + A list of types that derive directly from the base type. + + + + Adds a schema element to this model. + + The element to register. + + + + Adds a model reference to this model. + + The model to reference. + + + + Gets the collection of schema elements that are contained in this model. + + + + + Gets the collection of vocabulary annotations that are contained in this model. + + + + + Gets the collection of models referred to by this model. + + + + + Gets the model's annotations manager. + + + + + Searches for an association with the given name in this model and returns null if no such association exists. + + The qualified name of the type being found. + The requested association, or null if no such type exists. + + + + Searches for vocabulary annotations specified by this model. + + The annotated element. + The vocabulary annotations for the element. + + + + Gets an error if one exists with the current object. + + + + + Provides semantics for a CsdlNavigationProperty. + + + + + Represents an EDM navigation property. + + + + + Gets the partner of this navigation property. + + + + + Gets the action to execute on the deletion of this end of a bidirectional association. + + + + + Gets whether this navigation property originates at the principal end of an association. + + + + + Gets the dependent properties of this navigation property, returning null if this is the principal end or if there is no referential constraint. + + + + + Gets a value indicating whether the navigation target is contained inside the navigation source. + + + + + Represents a semantically invalid EDM association end. + + + + + Represents a navigation property synthesized for an association end that does not have a corresponding navigation property. + + + + + Represents a name binding to more than one item. + + + + + Represents a property binding specified as part of an EDM type annotation. + + + + + Initializes a new instance of the class. + + Property that is given a value by the annotation. + Expression producing the value of the annotation. + + + + Gets the property that is given a value by the annotation. + + + + + Gets the expression producing the value of the annotation. + + + + + Represents an EDM type annotation. + + + + + Represents an EDM annotation with an immediate value. + + + + + Initializes a new instance of the class. + + Element the annotation applies to. + Term bound by the annotation. + Qualifier used to discriminate between multiple bindings of the same property or type. + + + + Gets the element the annotation applies to. + + + + + Gets the term bound by the annotation. + + + + + Gets the qualifier used to discriminate between multiple bindings of the same property or type. + + + + + Initializes a new instance of the class. + + Element the annotation applies to. + Term bound by the annotation. + Value annotations for the properties of the type. + + + + Initializes a new instance of the class. + + Element the annotation applies to. + Term bound by the annotation. + Qualifier used to discriminate between multiple bindings of the same property or type. + Value annotations for the properties of the type. + + + + Initializes a new instance of the class. + + Element the annotation applies to. + Term bound by the annotation. + Qualifier used to discriminate between multiple bindings of the same property or type. + Value annotations for the properties of the type. + + + + Gets the value annotations for the properties of the type. + + + + + Represents an EDM value annotation. + + + + + Initializes a new instance of the class. + + Element the annotation applies to. + Term bound by the annotation. + Expression producing the value of the annotation. + + + + Initializes a new instance of the class. + + Element the annotation applies to. + Term bound by the annotation. + Qualifier used to discriminate between multiple bindings of the same property or type. + Expression producing the value of the annotation. + + + + Gets the expression producing the value of the annotation. + + + + + Represents a semantically invalid EDM association. + + + + + Represents a member of an EDM enumeration type. + + + + + Initializes a new instance of the class. + + The type that declares this member. + Name of this enumeration member. + Value of this enumeration member. + + + + Gets the type that this member belongs to. + + + + + Gets the value of this enumeration type member. + + + + + Represents the definition of an Edm enumeration type. + + + + + Represents the definition of an EDM type. + + + + + Returns the text representation of the current object. + + The text representation of the current object. + + + + Gets the kind of this type. + + + + + Initializes a new instance of the class with underlying type. + + Namespace this enumeration type belongs to. + Name of this enumeration type. + + + + Initializes a new instance of the class with underlying type. + + Namespace this enumeration type belongs to. + Name of this enumeration type. + A value indicating whether the enumeration type can be treated as a bit field. + + + + Initializes a new instance of the class with underlying type. + + Namespace this enumeration type belongs to. + Name of this enumeration type. + The underlying type of this enumeration type. + A value indicating whether the enumeration type can be treated as a bit field. + + + + Initializes a new instance of the class. + + Namespace this enumeration type belongs to. + Name of this enumeration type. + The underlying type of this enumeration type. + A value indicating whether the enumeration type can be treated as a bit field. + + + + Adds a new member to this enum type. + + The member to add. + + + + Creates and adds a new member to this enum type. + + Name of the member. + Value of the member. + Created member. + + + + Gets the kind of this type. + + + + + Gets the kind of this schema element. + + + + + Gets the namespace this schema element belongs to. + + + + + Gets the name of this enumeration type. + + + + + Gets the underlying type of this enumeration type. + + + + + Gets the members of this enumeration type. + + + + + Gets a value indicating whether the enumeration type can be treated as a bit field. + + + + + Represents an EDM enumeration member reference expression. + + + + + Initializes a new instance of the class. + + Referenced enum member. + + + + Gets the referenced enum member. + + + + + Gets the kind of this expression. + + + + + Represents an EDM labeled expression reference expression. + + + + + Initializes a new instance of class with non-initialized property. + + + + + Initializes a new instance of the class. + This constructor will not allow changing property after the EdmLabeledExpressionReferenceExpression instance has been constructed. + + Referenced labeled element. + + + + Gets or sets the referenced labeled element. + The referenced labeled element can be initialized only once either using the constructor or by assigning value directly to this property. + + + + + Gets the kind of this expression. + + + + + Represents an EDM null. + + + + + Singleton instance. + + + + + Initializes a new instance of the class. + + + + + Gets the kind of this expression. + + + + + Gets the kind of this value. + + + + + Represents an EDM parameter reference expression. + + + + + Initializes a new instance of the class. + + Referenced parameter + + + + Gets the referenced parameter. + + + + + Gets the kind of this expression. + + + + + Represents information about an EDM function that failed to resolve. + + + + + Represents an EDM enumeration type value. + + + + + Initializes a new instance of the class. + + A reference to the enumeration type that describes this value. + The enumeration type value. + + + + Initializes a new instance of the class. + + A reference to the enumeration type that describes this value. + The underlying type value. + + + + Gets the underlying type value of the enumeration type. + + + + + Gets the kind of this value. + + + + + Represents an EDM binary constant. + + + + + Initializes a new instance of the class. + + Integer value represented by this value. + + + + Initializes a new instance of the class. + + Type of the integer. + Integer value represented by this value. + + + + Gets the definition of this value. + + + + + Gets the kind of this expression. + + + + + Gets the kind of this value. + + + + + Represents an EDM boolean constant. + + + + + Initializes a new instance of the class. + + Boolean value represented by this value. + + + + Initializes a new instance of the class. + + Type of the boolean. + Boolean value represented by this value. + + + + Gets a value indicating whether the value of this boolean value is true or false. + + + + + Gets the kind of this expression. + + + + + Gets the kind of this value. + + + + + Represents an EDM datetime constant. + + + + + Initializes a new instance of the class. + + DateTime value represented by this value. + + + + Initializes a new instance of the class. + + Type of the DateTime. + DateTime value represented by this value. + + + + Gets the definition of this value. + + + + + Gets the kind of this expression. + + + + + Gets the kind of this value. + + + + + Represents an EDM datetime with offset constant. + + + + + Initializes a new instance of the class. + + DateTimeOffset value represented by this value. + + + + Initializes a new instance of the class. + + Type of the DateTimeOffset. + DateTimeOffset value represented by this value. + + + + Gets the definition of this value. + + + + + Gets the kind of this expression. + + + + + Gets the kind of this value. + + + + + Represents an EDM decimal constant. + + + + + Initializes a new instance of the class. + + Decimal value represented by this value. + + + + Initializes a new instance of the class. + + Type of the decimal. + Decimal value represented by this value. + + + + Gets the definition of this value. + + + + + Gets the kind of this expression. + + + + + Gets the kind of this value. + + + + + Represents a reference to an EDM enumeration type. + + + + + Initializes a new instance of the class. + + The definition refered to by this reference. + Denotes whether the type can be nullable. + + + + Represents an EDM value term reference expression. + + + + + Initializes a new instance of the class. + + Expression for the structured value containing the referenced term property. + Referenced value term. + + + + Initializes a new instance of the class. + + Expression for the structured value containing the referenced term property. + Referenced value term. + Qualifier. + + + + Gets the expression for the structured value containing the referenced term property. + + + + + Gets the referenced value term. + + + + + Gets the optional qualifier. + + + + + Gets the kind of this expression. + + + + + Represents an EDM record construction expression. + + + + + Initializes a new instance of the class. + + Property constructors. + + + + Initializes a new instance of the class. + + Declared type of the record. + Property constructors. + + + + Initializes a new instance of the class. + + Property constructors. + + + + Initializes a new instance of the class. + + Optional declared type of the record. + Property constructors. + + + + Gets the declared type of the record, or null if there is no declared type. + + + + + Gets the constructed property values. + + + + + Gets the kind of this expression. + + + + + Represents an EDM property constructor specified as part of a EDM record construction expression. + + + + + Initializes a new instance of the class. + + Property name. + Property value. + + + + Gets the name of the property. + + + + + Gets the expression for the value of the property. + + + + + Represents an EDM property reference expression. + + + + + Initializes a new instance of the class. + + Expression for the structured value containing the referenced property. + Referenced property. + + + + Gets the expression for the structured value containing the referenced property. + + + + + Gets the referenced property. + + + + + Gets the kind of this expression. + + + + + Represents an EDM type test expression. + + + + + Initializes a new instance of the class. + + Expression whose type is to be tested. + Type to test. + + + + Gets the expression whose type is to be tested. + + + + + Gets the type to be tested against. + + + + + Gets the kind of this expression. + + + + + Represents an EDM if expression. + + + + + Initializes a new instance of the class. + + Test expression + Expression to evaluate if evaluates to true. + Expression to evaluate if evaluates to false. + + + + Gets the test expression. + + + + + Gets the expression to evaluate if evaluates to true. + + + + + Gets the expression to evaluate if evaluates to false. + + + + + Gets the kind of this expression. + + + + + Represents an EDM function reference expression. + + + + + Initializes a new instance of the class. + + Referenced function + + + + Gets the referenced function. + + + + + Gets the kind of this expression. + + + + + Represents an EDM function application expression. + + + + + Initializes a new instance of the class. + + Function to apply. + Application arguments. Value may be null, in which case it is treated as an empty enumerable. + + + + Initializes a new instance of the class. + + Function to apply. + Application arguments. Value may be null, in which case it is treated as an empty enumerable. + + + + Initializes a new instance of the class. + + Function to apply. + Application arguments. Value may be null, in which case it is treated as an empty enumerable. + + + + Gets the applied function. + + + + + Gets the arguments to the function. + + + + + Gets the kind of this expression. + + + + + Represents an EDM labeled expression. + + + + + Initializes a new instance of the class. + + Label of the expression. + Underlying expression. + + + + Gets the label. + + + + + Gets the underlying expression. + + + + + Gets the expression kind. + + + + + Represents an EDM multi-value construction expression. + + + + + Initializes a new instance of the class. + + The constructed element values. + + + + Initializes a new instance of the class. + + Declared type of the collection. + The constructed element values. + + + + Initializes a new instance of the class. + + The constructed element values. + + + + Initializes a new instance of the class. + + Declared type of the collection. + The constructed element values. + + + + Gets the declared type of the collection. + + + + + Gets the constructed element values. + + + + + Gets the kind of this expression. + + + + + Represents an EDM type assertion expression. + + + + + Initializes a new instance of the class. + + Expression for which the type is asserted. + Type to assert. + + + + Gets the expression for which the type is asserted. + + + + + Gets the asserted type. + + + + + Gets the kind of this expression. + + + + + Represents an EDM floating point constant. + + + + + Initializes a new instance of the class. + + Floating point value represented by this value. + + + + Initializes a new instance of the class. + + Type of the floating point. + Floating point value represented by this value. + + + + Gets the definition of this value. + + + + + Gets the kind of this expression. + + + + + Gets the kind of this value. + + + + + Represents an EDM guid constant. + + + + + Initializes a new instance of the class. + + Integer value represented by this value. + + + + Initializes a new instance of the class. + + Type of the integer. + Integer value represented by this value. + + + + Gets the definition of this value. + + + + + Gets the kind of this expression. + + + + + Gets the kind of this value. + + + + + Represents an EDM value term. + + + + + Initializes a new instance of class. + The new value term will be of the nullable primitive . + + Namespace of the term. + Name of the term. + Type of the term. + + + + Initializes a new instance of the class. + + Namespace of the term. + Name of the term. + Type of the term. + + + + Gets the namespace of this term. + + + + + Gets the kind of this term. + + + + + Gets the type of this term. + + + + + Gets the schema element kind of this term. + + + + + Represents a definition of an EDM collection type. + + + + + Initializes a new instance of the class. + + The type of the elements in this collection. + + + + Gets the kind of this type. + + + + + Gets the element type of this collection type. + + + + + Represents a reference to an EDM collection type. + + + + + Initializes a new instance of the class. + + The type definition this reference refers to. + Denotes whether the type can be nullable. + + + + Represents an EDM collection value. + + + + + Initializes a new instance of the class. + + A reference to a collection type that describes this collection value + The collection of values stored in this collection value + + + + Gets the values stored in this collection. + + + + + Gets the kind of this value. + + + + + Provides semantics for a CsdlProperty. + + + + + Provides semantics for a CsdlReferentialConstraint. + + + + + Provides semantics for CsdlRowType. + + + + + Provides semantics for CsdlSchema. + + + + + All of the labeled expressions in a schema are collected into a dictionary so that references to them can be bound. + The elements of the dictionary are Csdl objects and not CsdlSemantics objects because the semantics objects are not created + until and unless necessary. + + A dictionary containing entries for all labeled expressions in the schema. + + + + Gets the labeled element expressions dictionary. + Each value in the dictionary is either a or a list of same. + + + + + Provides the semantics of a reference to an EDM String type. + + + + + Provides the semantics of a reference to an EDM temporal type. + + + + + Contains extension methods for interfaces. + + + + + Gets the value for the EDM version of the . + + Model the version has been set for. + The version. + + + + Sets a value of EDM version attribute of the . + + The model the version should be set for. + The version. + + + + Searches for a type with the given name in this model and all referenced models and returns null if no such type exists. + + The model to search. + The qualified name of the type being found. + The requested type, or null if no such type exists. + + + + Searches for a value term with the given name in this model and all referenced models and returns null if no such value term exists. + + The model to search. + The qualified name of the value term being found. + The requested value term, or null if no such value term exists. + + + + Searches for functions with the given name in this model and all referenced models and returns an empty enumerable if no such functions exist. + + The model to search. + The qualified name of the functions being found. + The requested functions. + + + + Searches for an entity container with the given name in this model and all referenced models and returns null if no such entity container exists. + + The model to search. + The qualified name of the entity container being found. + The requested entity container, or null if no such entity container exists. + + + + Gets the entity containers belonging to this model. + + Model to search for entity containers. + Entity containers belonging to this model. + + + + Gets an annotatable element's vocabulary annotations defined in a specific model and models referenced by that model. + + The model to search. + Element to check for annotations. + Annotations attached to the element (or, if the element is a type, to its base types) by this model or by models referenced by this model. + + + + Gets an annotatable element's vocabulary annotations defined in a specific model and models referenced by that model. + + The model to search. + Element to check for annotations. + Annotations attached to the element by this model or by models referenced by this model. + + + + Gets an annotatable element's vocabulary annotations that bind a particular term. + + Type of the annotation being returned. + Model to search. + Element to check for annotations. + Term to search for. + Annotations attached to the element by this model or by models referenced by this model that bind the term. + + + + Gets an annotatable element's vocabulary annotations that bind a particular term. + + Type of the annotation being returned. + Model to search. + Element to check for annotations. + Term to search for. + Qualifier to apply. + Annotations attached to the element by this model or by models referenced by this model that bind the term with the given qualifier. + + + + Gets an annotatable element's vocabulary annotations that bind a particular term. + + Type of the annotation being returned. + Model to search. + Element to check for annotations. + Name of the term to search for. + Annotations attached to the element by this model or by models referenced by this model that bind the term. + + + + Gets an annotatable element's vocabulary annotations that bind a particular term. + + Type of the annotation being returned. + Model to search. + Element to check for annotations. + Name of the term to search for. + Qualifier to apply. + Annotations attached to the element by this model or by models referenced by this model that bind the term with the given qualifier. + + + + Gets the of a property of a term type that has been applied to the type of a value. + + Model to search for type annotations. + Value to use as context in evaluation. + Property to evaluate. + Evaluator to use to perform expression evaluation. + Value of the property evaluated against the supplied value, or null if no relevant type annotation exists. + + + + Gets the of a property of a term type that has been applied to the type of a value. + + Model to search for type annotations. + Value to use as context in evaluation. + Property to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + Value of the property evaluated against the supplied value, or null if no relevant type annotation exists. + + + + Gets the CLR value of a property of a term type that has been applied to the type of a value. + + The CLR type of the value to be returned. + Model to search for type annotations. + Value to use as context in evaluation. + Property to evaluate. + Evaluator to use to perform expression evaluation. + Value of the property evaluated against the supplied value, or default() if no relevant type annotation exists. + + + + Gets the CLR value of a property of a term type that has been applied to the type of a value. + + The CLR type of the value to be returned. + Model to search for type annotations. + Value to use as context in evaluation. + Property to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + Value of the property evaluated against the supplied value, or default() if no relevant type annotation exists. + + + + Gets the of a vocabulary term that has been applied to the type of a value. + + Model to search for term annotations. + Value to use as context in evaluation. + Name of the term to evaluate. + Evaluator to use to perform expression evaluation. + Value of the term evaluated against the supplied value. + + + + Gets the of a vocabulary term that has been applied to the type of a value. + + Model to search for term annotations. + Value to use as context in evaluation. + Name of the term to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + Value of the term evaluated against the supplied value. + + + + Gets the of a vocabulary term that has been applied to the type of a value. + + Model to search for term annotations. + Value to use as context in evaluation. + Term to evaluate. + Evaluator to use to perform expression evaluation. + Value of the term evaluated against the supplied value. + + + + Gets the of a vocabulary term that has been applied to the type of a value. + + Model to search for term annotations. + Value to use as context in evaluation. + Term to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + Value of the term evaluated against the supplied value. + + + + Gets the CLR value of a vocabulary term that has been applied to the type of a value. + + The CLR type of the value to be returned. + Model to search for term annotations. + Value to use as context in evaluation. + Name of the term to evaluate. + Evaluator to use to perform expression evaluation. + Value of the term evaluated against the supplied value. + + + + Gets the CLR value of a vocabulary term that has been applied to the type of a value. + + The CLR type of the value to be returned. + Model to search for term annotations. + Value to use as context in evaluation. + Name of the term to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + Value of the term evaluated against the supplied value. + + + + Gets the CLR value of a vocabulary term that has been applied to the type of a value. + + The CLR type of the value to be returned. + Model to search for term annotations. + Value to use as context in evaluation. + Term to evaluate. + Evaluator to use to perform expression evaluation. + Value of the term evaluated against the supplied value. + + + + Gets the CLR value of a vocabulary term that has been applied to the type of a value. + + The CLR type of the value to be returned. + Model to search for term annotations. + Value to use as context in evaluation. + Term to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + Value of the term evaluated against the supplied value. + + + + Gets the of a vocabulary term that has been applied to an element. + + Model to search for term annotations. + Annotated element. + Name of the term to evaluate. + Evaluator to use to perform expression evaluation. + Value of the term evaluated against the supplied value. + + + + Gets the of a vocabulary term that has been applied to an element. + + Model to search for term annotations. + Annotated element. + Name of the term to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + Value of the term evaluated against the supplied value. + + + + Gets the of a vocabulary term that has been applied to an element. + + Model to search for term annotations. + Annotated element. + Term to evaluate. + Evaluator to use to perform expression evaluation. + Value of the term evaluated against the supplied value. + + + + Gets the of a vocabulary term that has been applied to an element. + + Model to search for term annotations. + Annotated element. + Term to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + Value of the term evaluated against the supplied value. + + + + Gets the CLR value of a vocabulary term that has been applied to an element. + + The CLR type of the value to be returned. + Model to search for term annotations. + Annotated element. + Name of the term to evaluate. + Evaluator to use to perform expression evaluation. + Value of the term evaluated against the supplied value. + + + + Gets the CLR value of a vocabulary term that has been applied to an element. + + The CLR type of the value to be returned. + Model to search for term annotations. + Annotated element. + Name of the term to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + Value of the term evaluated against the supplied value. + + + + Gets the CLR value of a vocabulary term that has been applied to an element. + + The CLR type of the value to be returned. + Model to search for term annotations. + Annotated element. + Term to evaluate. + Evaluator to use to perform expression evaluation. + Value of the term evaluated against the supplied value. + + + + Gets the CLR value of a vocabulary term that has been applied to an element. + + The CLR type of the value to be returned. + Model to search for term annotations. + Annotated element. + Term to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + Value of the term evaluated against the supplied value. + + + + Gets documentation for a specified element. + + The model containing the documentation. + The element. + Documentation that exists on the element. Otherwise, null. + + + + Sets documentation for a specified element. + + The model containing the documentation. + The element. + Documentation to set. + + + + Gets an annotation value corresponding to the given namespace and name provided. + + The model containing the annotation. + The annotated element. + Namespace of the annotation. + Name of the annotation inside the namespace. + The requested annotation value, if it exists. Otherwise, null. + + + + Gets an annotation value corresponding to the given namespace and name provided. + + Type of the annotation being returned. + The model containing the annotation. + The annotated element. + Namespace of the annotation. + Name of the annotation inside the namespace. + The requested annotation value, if it exists. Otherwise, null. + + + + Gets an annotation value from an annotatable element. + + Type of the annotation being returned. + The model containing the annotation. + The annotated element. + The requested annotation, if it exists. Otherwise, null. + + Strongly-typed wrappers for unnamed annotations keyed by CLR type. + + + + + Sets an annotation value for an EDM element. If the value is null, no annotation is added and an existing annotation with the same name is removed. + + The model containing the annotation. + The annotated element. + Namespace that the annotation belongs to. + Name of the annotation within the namespace. + Value of the new annotation. + + + + Gets all schema elements from the model, and models referenced by it. + + Model to search for elements + Schema elements from the model, and models referenced by it. + + + + Finds a list of types that derive from the supplied type directly or indirectly, and across models. + + The model types are being found on. + The base type that derived types are being searched for. + A list of types that derive from the type. + + + + Sets an annotation value on an annotatable element. + + Type of the annotation being set. + The model containing the annotation. + The annotated element. + Value of the new annotation. + + + + Retrieves a set of annotation values. For each requested value, returns null if no annotation with the given name exists for the given element. + + The model in which to find the annotations. + The set of requested annotations. + Returns values that correspond to the provided annotations. A value is null if no annotation with the given name exists for the given element. + + + + Sets a set of annotation values. If a supplied value is null, no annotation is added and an existing annotation with the same name is removed. + + The model in which to set the annotations. + The annotations to set. + + + + Gets the direct value annotations for an element. + + The model containing the annotations. + The annotated element. + The immediate value annotations of the element. + + + + Gets the location of this element. + + Reference to the calling object. + The location of the element. + + + + Gets an annotatable element's vocabulary annotations as seen from a particular model. + + Reference to the calling object. + Model to check for annotations. + Annotations attached to the element by the model or by models referenced by the model. + + + + Gets the full name of the element. + + Reference to the calling object. + The full name of the element. + + + + Returns entity sets belonging to an IEdmEntityContainer. + + Reference to the calling object. + Entity sets belonging to an IEdmEntityContainer. + + + + Returns function imports belonging to an IEdmEntityContainer. + + Reference to the calling object. + Function imports belonging to an IEdmEntityContainer. + + + + Gets the type kind of the type references definition. + + Reference to the calling object. + The type kind of the reference. + + + + Gets the full name of the definition referred to by the type reference. + + Reference to the calling object. + The full name of this references definition. + + + + Gets the definition of this primitive type reference. + + Reference to the calling object. + Definition of this primitive type reference. + + + + Gets the primitive kind of the definition referred to by this type reference. + + Reference to the calling object. + Primitive kind of the definition of this reference. + + + + Gets all properties of the structured type definition and its base types. + + Reference to the calling object. + Properties of this type. + + + + Gets all structural properties declared in the IEdmStructuredTypeDefinition. + + Reference to the calling object. + All structural properties declared in the IEdmStructuredTypeDefinition. + + + + Gets the structural properties declared in this type definition and all base types. + + Reference to the calling object. + The structural properties declared in this type definition and all base types. + + + + Gets the definition of this structured type reference. + + Reference to the calling object. + The definition of this structured type reference. + + + + Returns true if the definition of this reference is abstract. + + Reference to the calling object. + If the definition of this reference is abstract. + + + + Returns true if the definition of this reference is open. + + Reference to the calling object. + If the definition of this reference is open. + + + + Returns the base type of the definition of this reference. + + Reference to the calling object. + The base type of the definition of this reference. + + + + Gets all structural properties declared in the definition of this reference. + + Reference to the calling object. + All structural properties declared in the definition of this reference. + + + + Gets all structural properties declared in the definition of this reference and all its base types. + + Reference to the calling object. + All structural properties declared in the definition of this reference and all its base types. + + + + Finds a property from the definition of this reference. + + Reference to the calling object. + Name of the property to find. + The requested property if it exists. Otherwise, null. + + + + Gets the base type of this entity type definition. + + Reference to the calling object. + The base type of this entity type definition. + + + + Gets the navigation properties declared in this entity definition. + + Reference to the calling object. + The navigation properties declared in this entity definition. + + + + Get the navigation properties declared in this entity type and all base types. + + Reference to the calling object. + The navigation properties declared in this entity type and all base types. + + + + Gets the declared key of the most defined entity with a declared key present. + + Reference to the calling object. + Key of this type. + + + + Checks whether the given entity type has the as one of the key properties. + + Given entity type. + Property to be searched for. + true if the type or base types has given property declared as key. false otherwise. + + + + Gets the definition of this entity reference. + + Reference to the calling object. + The definition of this entity reference. + + + + Gets the base type of the definition of this reference. + + Reference to the calling object. + The base type of the definition of this reference. + + + + Gets the entity key of the definition of this reference. + + Reference to the calling object. + The entity key of the definition of this reference. + + + + Gets the navigation properties declared in the definition of this reference and its base types. + + Reference to the calling object. + The navigation properties declared in the definition of this reference and its base types. + + + + Gets the navigation properties declared in the definition of this reference. + + Reference to the calling object. + The navigation properties declared in the definition of this reference. + + + + Finds a navigation property declared in the definition of this reference by name. + + Reference to the calling object. + Name of the navigation property to find. + The requested navigation property if it exists. Otherwise, null. + + + + Gets the base type of this references definition. + + Reference to the calling object. + The base type of this references definition. + + + + Gets the definition of this reference typed as an IEdmComplexTypeDefinition. + + Reference to the calling object. + The definition of this reference typed as an IEdmComplexTypeDefinition. + + + + Gets the base type of this reference. + + Reference to the calling object. + The base type of this reference. + + + + Gets the definition of this entity reference type reference. + + Reference to the calling object. + The definition of this entity reference type reference. + + + + Gets the entity type referred to by the definition of this entity reference type reference. + + Reference to the calling object. + The entity type referred to by the definition of this entity reference type reference. + + + + Gets the definition of this collection reference. + + Reference to the calling object. + The definition of this collection reference. + + + + Gets the element type of the definition of this collection reference. + + Reference to the calling object. + The element type of the definition of this collection reference. + + + + Gets the definition of this enumeration reference. + + Reference to the calling object. + The definition of this enumeration reference. + + + + Gets the multiplicity of this end of a bidirectional relationship between this navigation property and its partner. + + Reference to the calling object. + The multiplicity of this end of the relationship. + + + + Gets the entity type targeted by this navigation property. + + Reference to the calling object. + The entity type targeted by this navigation property. + + + + Gets the entity type declaring this navigation property. + + Reference to the calling object. + The entity type that declares this navigation property. + + + + Gets the definition of this row type reference. + + Reference to the calling object. + The definition of this row type reference. + + + + Gets the binding of a property of the type term of a type annotation. + + Annotation to search. + Property to search for. + The binding of the property in the type annotation, or null if no binding exists. + + + + Gets the binding of a property of the type term of a type annotation. + + Annotation to search. + Name of the property to search for. + The binding of the property in the type annotation, or null if no binding exists. + + + + Gets the value term of this value annotation. + + Reference to the calling object. + The value term of this value annotation. + + + + Analyzes .EntitySet expression and returns a static reference if available. + + The function import containing the entity set expression. + The static entity set of the function import. + True if the entity set expression of the contains a static reference to an , otherwise false. + + + + Analyzes .EntitySet expression and returns a relative path to an if available. + The path starts with the and may have optional sequence of and type casts segments. + + The function import containing the entity set expression. + The model containing the function import. + The function import parameter from which the relative entity set path starts. + The optional sequence of navigation properties. + True if the entity set expression of the contains a relative path an , otherwise false. + + + + Finds a property of a record expression. + + The record expression. + Name of the property to find. + The property, if found, otherwise null. + + + + This method is only used for the function import entity set path parsing. + + The type of the segment. + Non-null entity type that may be bad. + + + + Provides CSDL serialization services for EDM models. + + + + + Outputs a CSDL artifact to the provided writer. + + Model to be written. + XmlWriter the generated CSDL will be written to. + Errors that prevented successful serialization, or no errors if serialization was successful. + A value indicating whether serialization was successful. + + + + Outputs a CSDL artifact to the provided writers. + + Model to be written. + A delegate that takes in a schema namespace name and returns an XmlWriter to write the schema to. + Errors that prevented successful serialization, or no errors if serialization was successful. + A value indicating whether serialization was successful. + + + + Provides CSDL parsing services for EDM models. + + + + + Returns an IEdmModel for the given CSDL artifacts. + + Collection of XmlReaders containing the CSDL artifacts. + The model generated by parsing. + Errors reported while parsing. + Success of the parse operation. + + + + Returns an IEdmModel for the given CSDL artifacts. + + Collection of XmlReaders containing the CSDL artifacts. + Model to be references by the created model. + The model generated by parsing. + Errors reported while parsing. + Success of the parse operation. + + + + Returns an IEdmModel for the given CSDL artifacts. + + Collection of XmlReaders containing the CSDL artifacts. + Models to be references by the created model. + The model generated by parsing. + Errors reported while parsing. + Success of the parse operation. + + + + Enumerates the kinds of Edm Primitives. + + + + + Represents a primitive type of unknown kind. + + + + + Represents a Binary type. + + + + + Represents a Boolean type. + + + + + Represents a Byte type. + + + + + Represents a DateTime type. + + + + + Represents a DateTimeOffset type. + + + + + Represents a Decimal type. + + + + + Represents a Double type. + + + + + Represents a Guid type. + + + + + Represents a Int16 type. + + + + + Represents a Int32 type. + + + + + Represents a Int64 type. + + + + + Represents a SByte type. + + + + + Represents a Single type. + + + + + Represents a String type. + + + + + Represents a Stream type. + + + + + Represents a Time type. + + + + + Represents an arbitrary Geography type. + + + + + Represents a geography Point type. + + + + + Represents a geography LineString type. + + + + + Represents a geography Polygon type. + + + + + Represents a geography GeographyCollection type. + + + + + Represents a geography MultiPolygon type. + + + + + Represents a geography MultiLineString type. + + + + + Represents a geography MultiPoint type. + + + + + Represents an arbitrary Geometry type. + + + + + Represents a geometry Point type. + + + + + Represents a geometry LineString type. + + + + + Represents a geometry Polygon type. + + + + + Represents a geometry GeometryCollection type. + + + + + Represents a geometry MultiPolygon type. + + + + + Represents a geometry MultiLineString type. + + + + + Represents a geometry MultiPoint type. + + + + + Enumerates the EDM property concurrency modes. + + + + + Denotes a property that should be used for optimistic concurrency checks. + + + + + Denotes a property that should not be used for optimistic concurrency checks. + + + + + Provides a caching mechanism for semantic properties. + + Type of the element that contains the cached property + Type of the cached property + + + + Helper for Cache class. + + + + + Defines EDM container element types. + + + + + Represents an element where the container kind is unknown or in error. + + + + + Represents an element implementing . + + + + + Represents an element implementing . + + + + + Enumerates the modes of parameters of EDM functions. + + + + + Denotes that a parameter with an unknown or error directionality. + + + + + Denotes that a parameter is used for input. + + + + + Denotes that a parameter is used for output. + + + + + Denotes that a parameter is used for input and output. + + + + + Enumerates the multiplicities of EDM navigation properties. + + + + + The Multiplicity of the association end is unknown. + + + + + The Multiplicity of the association end is zero or one. + + + + + The Multiplicity of the association end is one. + + + + + The Multiplicity of the association end is many. + + + + + Enumerates the actions EDM can apply on deletes. + + + + + Take no action on delete. + + + + + On delete also delete items on the other end of the association. + + + + + Defines EDM property types. + + + + + Represents a property implementing . + + + + + Represents a property implementing . + + + + + Represents a property with an unknown or error kind. + + + + + Defines EDM schema element types. + + + + + Represents a schema element with unknown or error kind. + + + + + Represents a schema element implementing . + + + + + Represents a schema element implementing . + + + + + Represents a schema element implementing . + + + + + Represents a schema element implementing + + + + + Defines EDM metatypes. + + + + + Represents a type with an unknown or error kind. + + + + + Represents a type implementing . + + + + + Represents a type implementing . + + + + + Represents a type implementing . + + + + + Represents a type implementing . + + + + + Represents a type implementing . + + + + + Represents a type implementing . + + + + + Represents a type implementing . + + + + + Interface describing anything that can be depended upon in tracking semantic changes in an EDM model. + + + + + Interface describing anything that can be dependent on a dependency trigger in tracking semantic changes in an EDM model. + + + + + Interface describing anything that can have cached data that might need flushing. + + + + + Represents a definition of an EDM complex type. + + + + + Common base class for definitions of EDM structured types. + + + + + Initializes a new instance of the class. + + Denotes a structured type that cannot be instantiated. + Denotes if the type is open. + Base type of the type + + + + Adds the to this type. + of the must be this type. + + The property being added. + + + + Creates and adds a nullable structural property to this type. + + Name of the property. + Type of the property. + Created structural property. + + + + Creates and adds a nullable structural property to this type. + + Name of the property. + Type of the property. + Flag specifying if the property is nullable. + Created structural property. + + + + Creates and adds a structural property to this type. + + Name of the property. + Type of the property. + Created structural property. + + + + Creates and adds a structural property to this type. + + Name of the property. + Type of the property. + The default value of this property. + The concurrency mode of this property. + Created structural property. + + + + Searches for a structural or navigation property with the given name in this type and all base types and returns null if no such property exists. + + The name of the property being found. + The requested property, or null if no such property exists. + + + + Computes the the cached dictionary of properties for this type definition. + + Dictionary of properties keyed by their name. + + + + Gets a value indicating whether this type is abstract. + + + + + Gets a value indicating whether this type is open. + + + + + Gets the properties declared immediately within this type. + + + + + Gets the base type of this type. + + + + + Gets a dictionary of the properties in this type definition for faster lookup. + + + + + Initializes a new instance of the class. + + The namespace this type belongs to. + The name of this type within its namespace. + + + + Initializes a new instance of the class. + Note: Complex type inheritance is not supported in EDM version 3.0 and above. + + The namespace this type belongs to. + The name of this type within its namespace. + The base type of this complex type. + Denotes whether this complex type is abstract. + + + + Gets the schema element kind of this element. + + + + + Gets the namespace of this element. + + + + + Gets the name of this element. + + + + + Gets the kind of this type. + + + + + Gets the kind of this term. + + + + + Represents an EDM documentation. + + + + + Initializes a new instance of the class. + + Summary of the documentation. + The documentation contents. + + + + Gets summary of this documentation. + + + + + Gets documentation. + + + + + Represents an EDM entity container. + + + + + Initializes a new instance of the class. + + Namespace of the entity container. + Name of the entity container. + + + + Adds an entity container element to this entity container. + + The element to add. + + + + Creates and adds an entity set to this entity container. + + Name of the entity set. + The entity type of the elements in this entity set. + Created entity set. + + + + Creates and adds a function import to this entity container. + + Name of the function import. + Return type of the function import. + Created function import. + + + + Creates and adds a function import to this entity container. + + Name of the function import. + Return type of the function import. + An entity set containing entities returned by this function import. + The two expression kinds supported are and . + Created function import. + + + + Creates and adds a function import to this entity container. + + Name of the function import. + Return type of the function import. + An entity set containing entities returned by this function import. + The two expression kinds supported are and . + A value indicating whether this function import has side-effects. + A value indicating whether this functon import can be composed inside expressions. + A value indicating whether this function import can be used as an extension method for the type of the first parameter of this function import. + Created function import. + + + + Searches for an entity set with the given name in this entity container and returns null if no such set exists. + + The name of the element being found. + The requested element, or null if the element does not exist. + + + + Searches for function imports with the given name in this entity container and returns null if no such function import exists. + + The name of the function import being found. + A group of the requested function imports, or an empty enumerable if no such function import exists. + + + + Gets a collection of the elements of this entity container. + + + + + Gets the namespace of this entity container. + + + + + Gets the name of this entity container. + + + + + Gets the kind of this schema element. + + + + + Represents a definition of an EDM entity reference type. + + + + + Initializes a new instance of the class. + + The entity referred to by this entity reference. + + + + Gets the kind of this type. + + + + + Gets the entity type pointed to by this entity reference. + + + + + Represents an EDM entity set. + + + + + Initializes a new instance of the class. + + An containing this entity set. + Name of the entity set. + The entity type of the elements in this entity set. + + + + Adds a navigation target, specifying the destination entity set of a navigation property of an entity in this entity set. + + The navigation property the target is being set for. + The destination entity set of the specified navigation property. + + + + Finds the entity set that a navigation property targets. + + The navigation property. + /// The entity set that the navigation propertion targets, or null if no such entity set exists. + + + + Gets the entity type contained in this entity set. + + + + + Gets the kind of element of this container element. + + + + + Gets the container of this entity set. + + + + + Gets the navigation targets of this entity set. + + + + + Represents a definition of an EDM entity type. + + + + + Initializes a new instance of the class. + + Namespace the entity belongs to. + Name of the entity. + + + + Initializes a new instance of the class. + + Namespace the entity belongs to. + Name of the entity. + The base type of this entity type. + + + + Initializes a new instance of the class. + + Namespace the entity belongs to. + Name of the entity. + The base type of this entity type. + Denotes an entity that cannot be instantiated. + Denotes if the type is open. + + + + Adds the to the key of this entity type. + + The key properties. + + + + Adds the to the key of this entity type. + + The key properties. + + + + Creates and adds a unidirectional navigation property to this type. + Default partner property is created, but not added to the navigation target type. + + Information to create the navigation property. + Created navigation property. + + + + Creates and adds a unidirectional navigation property to this type. + Navigation property partner is created, but not added to the navigation target type. + + Information to create the navigation property. + Information to create the partner navigation property. + Created navigation property. + + + + Creates and adds a navigation property to this type and adds its navigation partner to the navigation target type. + + Information to create the navigation property. + Information to create the partner navigation property. + Created navigation property. + + + + The puspose of this method is to make sure that some of the fields are set to valid partner defaults. + For example if .Target is null, it will be set to this entity type. If .TargetMultiplicity + is unknown, it will be set to 0..1, etc. + Whenever this method applies new values to , it will return a copy of it (thus won't modify the original). + If is null, a new info object will be produced. + + Primary navigation property info. + Partner navigation property info. May be null. + Partner info. + + + + Gets the structural properties of the entity type that make up the entity key. + + + + + Gets the kind of this schema element. + + + + + Gets the namespace this schema element belongs to. + + + + + Gets the name of this element. + + + + + Gets the kind of this type. + + + + + Gets the term kind of the entity type. + + + + + Represents an EDM function. + + + + + Represents a base class for EDM functions and function imports. + + + + + Initializes a new instance of the class. + + The name of the function. + The return type of the function. + + + + Searches for a parameter with the given name in this function and returns null if no such parameter exists. + + The name of the parameter to be found. + The requested parameter, or null if no such parameter exists. + + + + Creates and adds a parameter to this function (as the last parameter). + + The name of the parameter being added. + The type of the parameter being added. + Created parameter. + + + + Creates and adds a parameter to this function (as the last parameter). + + The name of the parameter being added. + The type of the parameter being added. + Mode of the parameter. + Created parameter. + + + + Adds a parameter to this function (as the last parameter). + + The parameter being added. + + + + Gets the return type of this function. + + + + + Gets the parameters of this function. + + + + + Initializes a new instance of the class. + + Namespace of the function. + Name of the function. + Return type of the function. + + + + Initializes a new instance of the class. + + Namespace of the function. + Name of the function. + Return type of the function. + Defining expression of the function (for example an eSQL expression). + + + + Gets the defining expression of this function. + + + + + Gets the element kind of this function, which is always Function. + + + + + Gets the namespace of this function. + + + + + Represents an EDM function import. + + + + + Initializes a new instance of class (side-effecting, non-composable, non-bindable). + + An containing this function import. + Name of the function import. + Return type of the function import. + + + + Initializes a new instance of class (side-effecting, non-composable, non-bindable). + + An containing this function import. + Name of the function import. + Return type of the function import. + An entity set containing entities returned by this function import. + The two expression kinds supported are and . + + + + Initializes a new instance of class. + + An containing this function import. + Name of the function import. + Return type of the function import. + An entity set containing entities returned by this function import. + The two expression kinds supported are and . + A value indicating whether this function import has side-effects. + A value indicating whether this functon import can be composed inside expressions. + A value indicating whether this function import can be used as an extension method for the type of the first parameter of this function import. + + + + Gets a value indicating whether this function import has side-effects. + cannot be set to true if is set to true. + + + + + Gets a value indicating whether this functon import can be composed inside expressions. + cannot be set to true if is set to true. + + + + + Gets a value indicating whether this function import can be used as an extension method for the type of the first parameter of this function import. + + + + + Gets the entity set containing entities returned by this function import. + + + + + Gets the kind of this function, which is always FunctionImport. + + + + + Gets the container of this function. + + + + + Represents an EDM function parameter. + + + + + Initializes a new instance of the class. + + Declaring function of the parameter. + Name of the parameter. + Type of the parameter. + + + + Initializes a new instance of the class. + + Declaring function of the parameter. + Name of the parameter. + Type of the parameter. + Mode of the parameter. + + + + Gets the type of this parameter. + + + + + Gets the function or function import that declared this parameter. + + + + + Gets the mode of this parameter. + + + + + Represents an EDM model. + + + + + Initializes a new instance of the class. + + + + + Adds a model reference to this model. + + The model to reference. + + + + Adds a schema element to this model. + + Element to be added. + + + + Adds a collection of schema elements to this model. + + Elements to be added. + + + + Adds a vocabulary annotation to this model. + + The annotation to be added. + + + + Searches for vocabulary annotations specified by this model. + + The annotated element. + The vocabulary annotations for the element. + + + + Finds a list of types that derive directly from the supplied type. + + The base type that derived types are being searched for. + A list of types from this model that derive directly from the given type. + + + + Gets the collection of schema elements that are contained in this model. + + + + + Gets the collection of vocabulary annotations that are contained in this model. + + + + + Represents an EDM navigation property. + + + + + Represents an EDM property. + + + + + Initializes a new instance of the class. + + The type that declares this property. + Name of the property. + Type of the property. + + + + Gets the type of this property. + + + + + Gets the type that this property belongs to. + + + + + Gets the kind of this property. + + + + + Creates two navigation properties representing an association between two entity types. + + Information to create the navigation property. + Information to create the partner navigation property. + Created navigation property. + + + + Creates two navigation properties representing an association between two entity types. + + Navigation property name. + Type of the navigation property. + Dependent properties of the navigation source. + A value indicating whether the navigation source logically contains the navigation target. + Action to take upon deletion of an instance of the navigation source. + Navigation partner property name. + Type of the navigation partner property. + Dependent properties of the navigation target. + A value indicating whether the navigation target logically contains the navigation source. + Action to take upon deletion of an instance of the navigation target. + Navigation property. + + + + Gets the kind of this property. + + + + + Gets a value indicating whether the navigation target is contained inside the navigation source. + + + + + Gets the dependent properties of the association this navigation property expresses. + + + + + Gets a value indicating whether this navigation property is from the principal end of the association. + + + + + Gets the entity type that this navigation property belongs to. + + + + + Gets the action to take when an instance of the declaring type is deleted. + + + + + Gets the partner of this navigation property. + + + + + Represents an EDM integer constant. + + + + + Initializes a new instance of the class. + + Integer value represented by this value. + + + + Initializes a new instance of the class. + + Type of the integer. + Integer value represented by this value. + + + + Gets the definition of this value. + + + + + Gets the kind of this expression. + + + + + Gets the kind of this value. + + + + + Represents a value of an EDM property. + + + + + Initializes a new instance of the class with non-initialized property. + This constructor allows setting property once after has been constructed. + + Name of the property for which this provides a value. + + + + Initializes a new instance of the class. + This constructor will not allow changing property after the EdmPropertyValue instance has been constructed. + + Name of the property for which this provides a value. + Value of the property. + + + + Gets the name of the property for which this provides a value. + + + + + Gets or sets the value of the property. + The value can be initialized only once either using the constructor or by assigning value directly to this property. + + + + + Represents an EDM structural (i.e. non-navigation) property. + + + + + Initializes a new instance of the class. + + The type that declares this property. + Name of the property. + The type of the property. + + + + Initializes a new instance of the class. + + The type that declares this property. + Name of the property. + The type of the property. + The default value of this property. + The concurrency mode of this property. + + + + Gets the default value of this property. + + + + + Gets the concurrency mode of this property. + + + + + Gets the kind of this property. + + + + + Represents a definition of an EDM row type. + + + + + Initializes a new instance of the class. + + + + + Gets the kind of this type. + + + + + Represents an EDM string constant. + + + + + Initializes a new instance of the class. + + String value represented by this value. + + + + Initializes a new instance of the class. + + Type of the string. + String value represented by this value. + + + + Gets the definition of this value. + + + + + Gets the kind of this expression. + + + + + Gets the kind of this value. + + + + + Represents an EDM structured value. + + + + + Initializes a new instance of the class. + + Type that describes this value. + Child values of this value. + + + + Retrieves the value corresponding to the given property name. Returns null if no such value exists. + + The property that describes the value being found. + The requested value, or null if no such value exists. + + + + Gets the property values of this structured value. + + + + + Gets the kind of this value. + + + + + Represents an EDM annotation with an immediate native value. + + + + + Initializes a new instance of the class. + + Namespace URI of the annotation. + Name of the annotation within the namespace. + Value of the annotation + + + + Initializes a new instance of the class. + + Namespace URI of the annotation. + Name of the annotation within the namespace. + + + + The namespace Uri of the annotation. + + + + + Gets the value of this annotation. + + + + + Represents information about an EDM type definition that failed to resolve. + + + + + Represents a reference to an EDM entity reference type. + + + + + Initializes a new instance of the class. + + The definition referred to by this reference. + Denotes whether the type can be nullable. + + + + Gets the entity reference definition to which this type refers. + + + + + Contains constant values that apply to the EDM model, regardless of source (for CSDL/EDMX specific constants see ). + + + + + The URI of annotations that will be serialized as documentation elements. + + + + + The local name of annotations that will be serialized as documentation elements. + + + + + The URI of annotations that are internal and will not be serialized. + + + + + The local name of the annotation that stores the data services version attribute for EDMX serialization. + + + + + The local name of the annotation that stores the max data services version attribute for EDMX serialization. + + + + + The local name of the annotation that stores EDM version of a model. + + + + + Version 1.0 of EDM. Corresponds to CSDL namespace "http://schemas.microsoft.com/ado/2006/04/edm". + + + + + Version 1.1 of EDM. Corresponds to CSDL namespace "http://schemas.microsoft.com/ado/2007/05/edm". + + + + + Version 1.2 of EDM. Corresponds to CSDL namespace "http://schemas.microsoft.com/ado/2008/01/edm". + + + + + Version 2.0 of EDM. Corresponds to CSDL namespaces "http://schemas.microsoft.com/ado/2008/09/edm" and "http://schemas.microsoft.com/ado/2009/08/edm". + + + + + Version 3.0 of EDM. Corresponds to CSDL namespace "http://schemas.microsoft.com/ado/2009/11/edm". + + + + + The current latest version of EDM. + + + + + This is a marker interface for core model elements that do not require validation. + + + + + Provides predefined declarations relevant to EDM semantics. + + + + + The default core EDM model. + + + + + Gets a reference to a non-atomic collection type definition. + + Type of elements in the collection. + A new non-atomic collection type reference. + + + + Searches for a type with the given name in this model and returns null if no such type exists. + + The qualified name of the type being found. + The requested type, or null if no such type exists. + + + + Searches for a value term with the given name in this model and returns null if no such value term exists. + + The qualified name of the value term being found. + The requested value term, or null if no such value term exists. + + + + Searches for functions with the given name in this model and returns an empty enumerable if no such function exists. + + The qualified name of the function being found. + A set functions sharing the specified qualified name, or an empty enumerable if no such function exists. + + + + Searches for an entity container with the given name in this model and returns null if no such entity container exists. + + The name of the entity container being found. + The requested entity container, or null if no such entity container exists. + + + + Gets primitive type by kind. + + Kind of the primitive type. + Primitive type definition. + + + + Gets the EdmPrimitiveTypeKind by the type name. + + Name of the type to look up. + EdmPrimitiveTypeKind of the type. + + + + Gets a reference to a primitive type of the specified kind. + + Primitive kind of the type reference being created. + Flag specifying if the referenced type should be nullable. + A new primitive type reference. + + + + Gets a reference to the Int16 primitive type definition. + + Flag specifying if the referenced type should be nullable. + A new primitive type reference. + + + + Gets a reference to the Int32 primitive type definition. + + Flag specifying if the referenced type should be nullable. + A new primitive type reference. + + + + Gets a reference to the Int64 primitive type definition. + + Flag specifying if the referenced type should be nullable. + A new primitive type reference. + + + + Gets a reference to the Boolean primitive type definition. + + Flag specifying if the referenced type should be nullable. + A new primitive type reference. + + + + Gets a reference to the Byte primitive type definition. + + Flag specifying if the referenced type should be nullable. + A new primitive type reference. + + + + Gets a reference to the SByte primitive type definition. + + Flag specifying if the referenced type should be nullable. + A new primitive type reference. + + + + Gets a reference to the Guid primitive type definition. + + Flag specifying if the referenced type should be nullable. + A new primitive type reference. + + + + Gets a reference to a datetime primitive type definition. + + Flag specifying if the referenced type should be nullable. + A new datetime type reference. + + + + Gets a reference to a datetime with offset primitive type definition. + + Flag specifying if the referenced type should be nullable. + A new datetime with offset type reference. + + + + Gets a reference to a time primitive type definition. + + Flag specifying if the referenced type should be nullable. + A new time type reference. + + + + Gets a reference to a decimal primitive type definition. + + Precision of values of this type. + Scale of values of this type. + Flag specifying if the referenced type should be nullable. + A new decimal type reference. + + + + Gets a reference to a decimal primitive type definition. + + Flag specifying if the referenced type should be nullable. + A new decimal type reference. + + + + Gets a reference to a single primitive type definition. + + Flag specifying if the referenced type should be nullable. + A new decimal type reference. + + + + Gets a reference to a double primitive type definition. + + Flag specifying if the referenced type should be nullable. + A new decimal type reference. + + + + Gets a reference to a stream primitive type definition. + + Flag specifying if the referenced type should be nullable. + A new stream type reference. + + + + Gets a reference to a temporal primitive type definition. + + Primitive kind of the type reference being created. + Precision of values of this type. + Flag specifying if the referenced type should be nullable. + A new temporal type reference. + + + + Gets a reference to a temporal primitive type definition. + + Primitive kind of the type reference being created. + Flag specifying if the referenced type should be nullable. + A new temporal type reference. + + + + Gets a reference to a binary primitive type definition. + + Flag specifying if max length is unbounded. + Maximum length of the type. + Flag specifying if the type will have a fixed length. + Flag specifying if the referenced type should be nullable. + A new binary type reference. + + + + Gets a reference to a binary primitive type definition. + + Flag specifying if the referenced type should be nullable. + A new binary type reference. + + + + Gets a reference to a spatial primitive type definition. + + Primitive kind of the type reference being created. + Spatial Reference Identifier for the spatial type being created. + Flag specifying if the referenced type should be nullable. + A new spatial type reference. + + + + Gets a reference to a spatial primitive type definition. + + Primitive kind of the type reference being created. + Flag specifying if the referenced type should be nullable. + A new spatial type reference. + + + + Gets a reference to a string primitive type definition. + + Flag specifying if max length is the maximum allowable value. + Maximum length of the type. + Flag specifying if the type will have a fixed length. + Flag specifying if the type should support unicode encoding. + String representing how data should be ordered. + Flag specifying if the referenced type should be nullable. + A new string type reference. + + + + Gets a reference to a binary string type definition. + + Flag specifying if the referenced type should be nullable. + A new string type reference. + + + + Searches for vocabulary annotations specified by this model or a referenced model for a given element. + + The annotated element. + The vocabulary annotations for the element. + + + + Finds a list of types that derive from the supplied type. + + The base type that derived types are being searched for. + A list of types that derive from the type. + + + + Gets the namespace of this core model. + + + + + Gets the types defined in this core model. + + + + + Gets the vocabulary annotations defined in this model. + + + + + Gets the collection of models referred to by this model. + + + + + Gets the model's annotations manager. + + + + + Gets the kind of this type. + + + + + Represents a reference to an EDM row type. + + + + + Initializes a new instance of the class. + + Type that describes this value. + Denotes whether the type can be nullable. + + + + Provides semantics of the predefined EDM types. + + + + + Returns true if this reference refers to a collection. + + Type reference. + This reference refers to a collection. + + + + Returns true if this reference refers to an entity type. + + Type reference. + This reference refers to an entity type. + + + + Returns true if this reference refers to an entity type. + + Type reference. + This reference refers to an entity type. + + + + Returns true if this reference refers to a complex type. + + Type reference. + This reference refers to a complex type. + + + + Returns true if this reference refers to an enumeration type. + + Type reference. + This reference refers to an enumeration type. + + + + Returns true if this reference refers to a row type. + + Type reference. + This reference refers to a row type. + + + + Returns true if this reference refers to a structured type. + + Type reference. + This reference refers to a structured type. + + + + Returns true if this type kind represents a structured type. + + Reference to the calling object. + This kind refers to a structured type. + + + + Returns true if this reference refers to a primitive type. + + Type reference. + This reference refers to a primitive type. + + + + Returns true if this reference refers to a binary type. + + Type reference. + This reference refers to a binary type. + + + + Returns true if this reference refers to a boolean type. + + Type reference. + This reference refers to a boolean type. + + + + Returns true if this reference refers to a temporal type. + + Type reference. + This reference refers to a temporal type. + + + + Returns true if this type kind represents a temporal type. + + Reference to the calling object. + This kind refers to a temporal type. + + + + Returns true if this reference refers to a DateTime type. + + Type reference. + This reference refers to a DateTime type. + + + + Returns true if this reference refers to a time type. + + Type reference. + This reference refers to a time type. + + + + Returns true if this reference refers to a DateTimeOffset type. + + Type reference. + This reference refers to a DateTimeOffset type. + + + + Returns true if this reference refers to a decimal type. + + Type reference. + This reference refers to a decimal type. + + + + Returns true if this reference refers to a floating point type. + + Type reference. + This reference refers to a floating point type. + + + + Returns true if this reference refers to a single type. + + Type reference. + This reference refers to a single type. + + + + Returns true if this reference refers to a double type. + + Type reference. + This reference refers to a double type. + + + + Returns true if this reference refers to a GUID type. + + Type reference. + This reference refers to a GUID type. + + + + Returns true if this reference refers to a signed integral type. + + Type reference. + This reference refers to a signed integral type. + + + + Returns true if this reference refers to an SByte type. + + Type reference. + This reference refers to an SByte type. + + + + Returns true if this reference refers to an Int16 type. + + Type reference. + This reference refers to an Int16 type. + + + + Returns true if this reference refers to an Int32 type. + + Type reference. + This reference refers to an Int32 type. + + + + Returns true if this reference refers to an Int64 type. + + Type reference. + This reference refers to an Int64 type. + + + + Returns true if this reference refers to an integer type. + + Type reference. + This reference refers to an integer type. + + + + Returns true if this primitive type kind represents an integer type. + + Type reference. + This kind refers to an integer type. + + + + Returns true if this reference refers to a byte type. + + Type reference. + This reference refers to a byte type. + + + + Returns true if this reference refers to a string type. + + Type reference. + This reference refers to a string type. + + + + Returns true if this reference refers to a stream type. + + Type reference. + This reference refers to a stream type. + + + + Returns true if this reference refers to a spatial type. + + Type reference. + This reference refers to a spatial type. + + + + Returns true if this definition refers to a spatial type. + + Type reference. + This definition refers to a spatial type. + + + + Returns true if this type kind represents a spatial type. + + Type reference. + This kind refers to a spatial type. + + + + If this reference is of a primitive type, this will return a valid primitive type reference to the type definition. Otherwise, it will return a bad primitive type reference. + + Reference to the calling object. + A valid primitive type reference if the definition of the reference is of a primitive type. Otherwise a bad primitive type reference. + + + + If this reference is of a collection type, this will return a valid collection type reference to the type definition. Otherwise, it will return a bad collection type reference. + + Reference to the calling object. + A valid collection type reference if the definition of the reference is of a collection type. Otherwise a bad collection type reference. + + + + If this reference is of a structured type, this will return a valid structured type reference to the type definition. Otherwise, it will return a bad structured type reference. + + Reference to the calling object. + A valid structured type reference if the definition of the reference is of a structured type. Otherwise a bad structured type reference. + + + + If this reference is of an enumeration type, this will return a valid enumeration type reference to the type definition. Otherwise, it will return a bad enumeration type reference. + + Reference to the calling object. + A valid enumeration type reference if the definition of the reference is of an enumeration type. Otherwise a bad enumeration type reference. + + + + If this reference is of an entity type, this will return a valid entity type reference to the type definition. Otherwise, it will return a bad entity type reference. + + Reference to the calling object. + A valid entity type reference if the definition of the reference is of an entity type. Otherwise a bad entity type reference. + + + + If this reference is of an entity reference type, this will return a valid entity reference type reference to the type definition. Otherwise, it will return a bad entity reference type reference. + + Reference to the calling object. + A valid entity reference type reference if the definition of the reference is of an entity reference type. Otherwise a bad entity reference type reference. + + + + If this reference is of a complex type, this will return a valid complex type reference to the type definition. Otherwise, it will return a bad complex type reference. + + Reference to the calling object. + A valid complex type reference if the definition of the reference is of a complex type. Otherwise a bad complex type reference. + + + + If this reference is of a row type, this will return a valid row type reference to the type definition. Otherwise, it will return a bad row type reference. + + Reference to the calling object. + A valid row type reference if the definition of the reference is of a row type. Otherwise a bad row type reference. + + + + If this reference is of a spatial type, this will return a valid spatial type reference to the type definition. Otherwise, it will return a bad spatial type reference. + + Reference to the calling object. + A valid spatial type reference if the definition of the reference is of a spatial type. Otherwise a bad spatial type reference. + + + + If this reference is of a temporal type, this will return a valid temporal type reference to the type definition. Otherwise, it will return a bad temporal type reference. + + Reference to the calling object. + A valid temporal type reference if the definition of the reference is of a temporal type. Otherwise a bad temporal type reference. + + + + If this reference is of a decimal type, this will return a valid decimal type reference to the type definition. Otherwise, it will return a bad decimal type reference. + + Reference to the calling object. + A valid decimal type reference if the definition of the reference is of a decimal type. Otherwise a bad decimal type reference. + + + + If this reference is of a string type, this will return a valid string type reference to the type definition. Otherwise, it will return a bad string type reference. + + Reference to the calling object. + A valid string type reference if the definition of the reference is of a string type. Otherwise a bad string type reference. + + + + If this reference is of a binary type, this will return a valid binary type reference to the type definition. Otherwise, it will return a bad binary type reference. + + Reference to the calling object. + A valid binary type reference if the definition of the reference is of a binary type. Otherwise a bad binary type reference. + + + + Returns the primitive kind of the definition of this reference. + + Reference to the calling object. + The primitive kind of the definition of this reference. + + + + Returns a reference to this row type definition. + + Reference to the calling object. + Flag specifying if the referenced type should be nullable. + A reference to this row type definition. + + + + Determines if the potential base type is in the inheritance hierarchy of the type being tested. + + Type to be tested for derivation from the other type. + The potential base type of the type being tested. + True if and only if the type inherits from the potential base type. + + + + Determines if a type is equivalent to or derived from another type. + + Type to be tested for equivalence to or derivation from the other type. + Type that is the other type. + True if and only if the thisType is equivalent to or inherits from otherType. + + + + Represents a reportable error in EDM + + + + + Initializes a new instance of the EdmError class. + + The location where the error occurred. + An integer code representing the error. + A human readable message describing the error. + + + + Gets a string representation of the error. + + A string representation of the error. + + + + Gets the location of the error in the file in which it occurred. + + + + + Gets an integer code representing the error. + + + + + Gets a human readable string describing the error. + + + + + Collection of validation methods. + + + + + Validate the and all of its properties using the current version of the model. + If the model has no version, is used. + + The root of the model to be validated. + Errors encountered while validating the model. + True if model is valid, otherwise false. + + + + Validate the and all of its properties given certain version. + + The root of the model to be validated. + Version of Edm to validate against. + Errors encountered while validating the model. + True if model is valid, otherwise false. + + + + Validate the and all of its properties given certain version. + + The root of the model to be validated. + Custom rule set to validate against. + Errors encountered while validating the model. + True if model is valid, otherwise false. + + + + This is a thread-safe cache of object type to interface visitors which is shared between all instances of the validator. + + + + + Context that records errors reported by validation rules. + + + + + Method returns true if the is known to have structural errors associated with it. + + The element to test. + True if the has structural errors associated with it. + + + + Register an error with the validation context. + + Location of the error. + Value representing the error. + Message text discribing the error. + + + + Register an error with the validation context. + + Error to register. + + + + Gets the model being validated. + + + + + Contains IsBad() and Errors() extension methods. + + + + + Returns true if this element contains errors returned by the method. + + Reference to the calling object. + This element is an invalid element. + + + + Gets the errors, if any, that belong to this element or elements that this element contains. For example errors for a structural type include the errors of the type itself and errors of its declared properties. + The method does not analyze elements referenced by this element. For example errors of a property do not include errors from its type. + + Reference to the calling object. + Any errors that belong to this element or elements that element contains. + + + + Gets the errors, if any, that belong to this type reference or its definition. + + The type reference. + Any errors that belong to this type reference or its definition. + + + + Built in Edm validation rules. + + + + + Validates that no direct value annotations share the same name and namespace. + + + + + Validates that a name is not empty or whitespace. + + + + + Validates that an element name is not too long according to the CSDL spec. + + + + + Validates that an element name matches the allowed pattern of names according to the CSDL spec. + + + + + Validates that an element namespace is not empty or whitespace. + + + + + Validates that an element namespace is not too long according to the CSDL spec. + + + + + Validates that an element namespace matches the allowed pattern of namespaces according to the CSDL spec. + + + + + Validates that an element namespace is not a reserved system namespace. + + + + + A schema element without other errors must not have kind of none. + + + + + An entity container element without other errors must not have kind of none. + + + + + Validates that there are no duplicate names in an entity container. + + + + + Validates that there is no entity set whose entity type has no key. + + + + + Validates that the entity type of an entity set can be found from the model being validated. + + + + + Validates that an entity set can only have a single navigation property targetting it that has Contains set to true. + + + + + Validates that if a navigation property is traversed to another entity set, and then the navigation properties partner is traversed, the destination will be the source entity set. + + + + + Validates an association set's name is correct + + + + + Validates that no navigation property is mapped to two different entity sets. + + + + + Validates that if a navigation property mapping is of recursive containment, the mapping points back to the source entity set. + + + + + Validates that the target of a navigation property mapping is valid for the target type of the property. + + + + + Validates that a type does not have a property with the same name as that type. + + + + + Validates that there are not duplicate properties in a type. + + + + + Validates that the base type of a complex type is complex, and the base type of an entity type is an entity. + + + + + Validates that the base type of a structured type can be found from the model being validated. + + + + + Validates that the declaring type of a property contains that property. + + + + + Open types are supported only in version 1.2 and after version 2.0. + + + + + Open types are supported only on entity types. + + + + + Raises an error if an enum type is found. + + + + + Validates that there are not duplicate enum members in an enum. + + + + + Raises an error if the underlying type of an enum type is not an integer type. + + + + + Raises an error if the type of an enum member doesn't match the underlying type of the enum it belongs to. + + + + + Validates that there are not duplicate properties in an entity key. + + + + + Validates that no part of an entity key is nullable. + + + + + Validates that all parts of an entity key are scalar. + + + + + Validates that no part of an entity key is a binary primitive type. + + + + + Validates that a key is not defined if there is already a key in the base type. + + + + + Validates that the entity type has a key. + + + + + Validates that all properties in the key of an entity blong to that entity. + + + + + Validates that the entity type wrapped in this entity reference can be found through the model being validated. + + + + + A type without other errors must not have kind of none. + + + + + A primtive type without other errors must not have kind of none. + + + + + Validates that a complex type is not abstract. + + + + + Validates that a complex type does not inherit. + + + + + Validates that a complex type contains at least one property. + + + + + Validates that a row type does not have a base type. + + + + + Validates that a row type contains at least one property. + + + + + Validates that any property with a complex type is not nullable. + + + + + Validates that the property is of an allowed type. + + + + + Validates that if the concurrency mode of a property is fixed, the type is primitive. + + + + + Validates that only one end of an association has an OnDelete operation. + + + + + Validates that the type of a navigation property corresponds to the other end of the association and the multiplicity of the other end. + + + + + Validates that the dependent properties of a navigation property contain no duplicates. + + + + + Validates multiplicity of the principal end: + 0..1 - if some dependent properties are nullable, + 1 - if some dependent properties are not nullable. + * - not allowed. + + + + + Validates that if the dependent properties are equivalent to the key of the dependent end, the multiplicity of the dependent end cannot be 1 + Validates multiplicity of the dependent end according to the following rules: + 0..1, 1 - if dependent properties represent the dependent end key. + * - if dependent properties don't represent the dependent end key. + + + + + Validates that all dependent properties of a navigation property belong to the dependent entity type. + + + + + Validates that all dependent properties are a subset of the dependent entity types key. + + + + + Validates that the navigation property does not have both a multiplicity of many and an OnDelete operation. + + + + + Validates that is not set prior to V3. + + + + + Validates that if a navigation property has = true and the target entity type is the same as + the declaring type of the property, then the multiplicity of the target of navigation is 0..1 or Many. + This depends on there being a targetting cycle. Because of the rule , we know that either this is always true, or there will be an error + + + + + Validates that if a navigation property has = true and the target entity type is the same as + the declaring type of the property, then the multiplicity of the source of navigation is Zero-Or-One. + This depends on there being a targetting cycle. Because of the rule , we know that either this is always true, or there will be an error + + + + + Validates that if a navigation property has = true and the target entity type is defferent than + the declaring type of the property, then the multiplicity of the source of navigation is One. + + + + + Validates that if an entity does not directly contain itself, it cannot contain itself through a containment loop. + + + + + Validates that each pair of properties between the dependent properties and the principal ends key are of the same type. + + + + + Validates that an association name is valid. + + + + + Validates that an association end name is valid. + + + + + A property without other errors must not have kind of none. + + + + + Raises an error if a function is found. + + + + + Validates that no function parameters are output parameters. + + + + + Validates that a function import has an allowed return type. + + + + + Validates that a function import has an allowed return type. + + + + + Validates that if a function import specifies an entity or collection of entities as its return type, it must also specify an entity set. + + + + + Validates that the entity set of a function import is defined using a path or an entity set reference expression. + + + + + Validates that the return type of a function import must match the type of the entity set of the function. + + + + + Validates that if a function import is composable, it must have a return type. + + + + + Validates that the type of a function imports parameter is correct. + + + + + Validates that a function import is not sideeffecting. + + + + + Validates that a function import is not composable. + + + + + Validates that a function is not bindable. + + + + + Validates that if a function is composable, it is not also sideeffecting. + + + + + Validates that if a function is bindable, it must have parameters. + + + + + Validates that no function import parameters have mode of none. + + + + + Validates that a function does not have multiple parameters with the same name. + + + + + Validates that a type reference refers to a type that can be found through the model being validated. + + + + + References to EDM stream type are not supported before version 3.0. + + + + + References to EDM spatial types are not supported before version 3.0. + + + + + Validates that the scale is between 0 and the precision of the decimal type. + + + + + Validates that the precision is between 0 and the max precision of the decimal type. + + + + + Validates that the max length of a string is not negative. + + + + + Validates that IsUnbounded cannot be true if MaxLength is non-null. + + + + + Validates that the max length of a binary type is not negative. + + + + + Validates that isUnbounded cannot be true if MaxLength is non-null. + + + + + Validates that the precision is between 0 and the max precision of the temporal type. + + + + + Validates every schema element in the current model (except for entity containers) is unique across all referenced models. + + + + + Validates every schema element in the current model is unique across all referenced models. + + + + + Validates that there are not duplicate properties in an entity key. + + + + + Validates that an immediate value annotation has a name and a namespace. + + + + + Validates that an immediate value annotation that is flagged to be serialized as an element can be serialized safely. + + + + + Validates that the name of a direct value annotation can safely be serialized as XML. + + + + + Vocabulary annotations are not supported before EDM 3.0. + + + + + Validates that a vocabulary annotations target can be found through the model containing the annotation. + + + + + Validates that if a value annotation declares a type, the expression for that annotation has the correct type. + + + + + Validates that a vocabulary annotations term can be found through the model containing the annotation. + + + + + Validates that a vocabulary annotations term can be found through the model containing the annotation. + + + + + Validates that a type annotation implements its term type properly. + + + + + Validates that the value of a property value binding is the correct type. + + + + + Value terms are not supported before EDM 3.0. + + + + + A term without other errors must not have kind of none. + + + + + Validates that an if expression has a boolean condition. + + + + + Validates that all properties of a collection expression are of the correct type. + + + + + Validates that if a value record expression declares a type, the property types are correct. + + + + + Validates the types of a function application are correct. + + + + + Validates that there are no annotations that share the same term and qualifier. + + + + + Validates that if a primitive value declares a type, the value is acceptable for the type. + + + + + A semantic validation rule. + + + + + A validation rule that is valid for a specific type. + + Type that the rule is valid for. + + + + Initializes a new instance of the ValidationRule class. + + Action to perform the validation. + + + + A set of rules to run during validation. + + + + + Initializes a new instance of the ValidationRuleSet class. + + Ruleset whose rules should be contained in this set. + Additional rules to add to the set. + + + + Initializes a new instance of the ValidationRuleSet class. + + Rules to be contained in this ruleset. + + + + Gets the default validation ruleset for the given version. + + The EDM version being validated. + The set of rules to validate that the model conforms to the given version. + + + + Gets all of the rules in this ruleset. + + All of the rules in this ruleset. + + + + Gets all of the rules in this ruleset. + + All of the rules in this ruleset. + + + + EdmLib validation error codes + + + + + Invalid error code + + + + + References to EDM stream type are not supported before version 3.0. + + + + + References to EDM spatial types are not supported before version 3.0. + + + + + An exception was thrown by the underlying xml reader. + + + + + Encountered an XML node that was never used + + + + + Encountered an XML attribute that was never used + + + + + Encountered an XML element that was never used + + + + + Text was found in a location it was not allowed in + + + + + An empty file was provided to the parser + + + + + An XML element was missing a required attribute + + + + + Invalid Name + + + + + An XML attribute or element representing EDM type is missing. + + + + + Element name is already defined in this context. + + + + + The specified version number is not valid. + + + + + Malformed boolean value. + + + + + The property contains an error. + + + + + The type of this property is invalid for the given context. + + + + + Precision out of range + + + + + Scale out of range + + + + + Name is too long. + + + + + The provided association is invalid + + + + + Navigation property contains errors. + + + + + Entity key is invalid. + + + + + The value of the property must not be null. + + + + + An object with an interface kind property does not implement the interface corresponding to the value of that property. + For example this error will be reported for an object that implements interface with kind property reporting .Entity, + but does not implement interface. + + + + + The value of an interface kind property is not semantically valid. A semantically valid model must not contain elements of kind 'None'. + + + + + An enumeration property must not contain null elements. + + + + + The value of the enum type property is out of range. + + + + + If property P1 is a navigation property and P2 is its parnter, then partner property of P2 must be P1. + + + + + A chain of base types is cyclic. + + + + + Multiplicity value was malformed + + + + + The value for the Action attribute is invalid or not allowed in the current context + + + + + An error occured processing the OnDelete element + + + + + No complex type with that name exists. + + + + + The extent name used in the EntittyContainerType End does not match the name of any of the EntityContainerProperties in the containing EntityContainer + + + + + Function import specifies an entity set expression which is not supported in this context. Function import entity set expression can be either an entity set reference or a path starting with a function import parameter and traversing navigation properties. + + + + + The target entity set must be able to hold an entity that is valid for the navigation property of a mapping. + + + + + Invalid role value in the relationship constraint + + + + + Invalid Property in relationship constraint + + + + + Type mismatch between ToProperty and FromProperty in the relationship constraint + + + + + Invalid multiplicty of the principal end of a navigation. + + + + + The number of properties in the FromProperty and ToProperty in the relationship constraint must be identical + + + + + Invalid multiplicty of the dependent end of a navigation. + + + + + Open types are supported only in version 1.2 and after version 2.0. Only entity types can be open. + + + + + Vocabulary annotations are not supported before EDM 3.0 + + + + + Same role referred in the ToRole and FromRole of a referential constraint + + + + + Properties that are part of entity key must be of scalar type + + + + + Binary type properties which are part of entity key are currently supported before V2.0 + + + + + End with * multiplicity cannot have operations specified + + + + + EntitySet type has no keys + + + + + ConcurrencyMode value was malformed + + + + + Conurency can't change for any sub types of an EntitySet type. + + + + + In version 1.0 function import can have no return type or return a collection of scalars or a collection of entities. + In all other versions function import can have no return type or return a scalar, a complex type, an entity type or a collection of those. + + + + + Composable function import cannot be side-effecting. + + + + + Function import specifies entity type return but no entity set. + + + + + Function import specifies entity type that does not derive from element type of entity set. + + + + + Function import specifies a binding to an entity set but does not return entities. + + + + + A composable function import must have return type. + + + + + Same Entity Set Taking part in the same role of the relationship set in two different relationship sets + + + + + Entity key refers to the same property twice + + + + + Nullable complex Type not supported in version 1.0 and 2.0. + + + + + No Key defined on Entity Type + + + + + Need not specify system namespace in using + + + + + Invalid qualification specified for type + + + + + The value for an enumeration type member is ouf of range. + + + + + The entity container name has already been assigned to a different entity container. + + + + + Complex types were not allowed to be abstract here. + + + + + Complex types cannot have base types in this version. + + + + + A navigation property without direct containment cannot contain its declaring entity indirectly. + + + + + If a navigation property mapping is of a recursive navigation property, the mapping must point back to the same entity set. + + + + + Name collision makes this name ambiguous. + + + + + Could not find a type with this name. + + + + + Could not find a primitive type with this name. + + + + + This complex type is part of a cycle. + + + + + This Entity Container is bad because some part of its extends hierarchy is part of a cycle. + + + + + This entity type is part of a cycle. + + + + + Could not convert type reference to the requested type. + + + + + This entity set became invalid because the entity that it was of the type of was removed from the model. + + + + + Could not find an EntityContainer with that name. + + + + + Could not find an EntitySet with that name. + + + + + Could not find a property with that name + + + + + Could not find an association end with that name + + + + + Type of the navigation property was invalid because the association of the navigation property was invalid. + + + + + The base type of an entity must also be an entity. + + + + + The base type of a complex type must also be complex. + + + + + Could not find a function with this name. + + + + + Rows cannot have base types. + + + + + The role of an association set end must be an association end belonging to the association type that defines the associaiton set. + + + + + Every property in an entity key must be a property of the entity. + + + + + The principal end of a referential constraint must be one of the ends of the association that defined the referential constraint. + + + + + Dependent properties of a referential constraint must belong to the dependent entity set. + + + + + If a structured type declares a property, that properties declaring type must be the declaring structured type. + + + + + Functions are not supported before version 2.0. + + + + + Value terms are not supported before EDM 3.0 + + + + + Navigation property has a type that is not an entity or collection of entities. + + + + + Underlying type of the enumeration type is bad because the enumeration type is bad. + + + + + The type of the entity set on this association end is inconsistent with the association end. + + + + + Only function parameters with mode of In are allowed in function imports. + + + + + Complex types must contain at least one property. + + + + + Unsupported function import parameter type. + + + + + A row type must contain at least one property. + + + + + A referential constraint cannot have multiple dependent properties with the same name. + + + + + Bindable function import must have at least one parameter. + + + + + Function imports with side-effecting setting are not supported before version 3.0. + + + + + Function imports with composable setting are not supported before version 3.0. + + + + + Function imports with bindable setting are not supported before version 3.0. + + + + + Max length is out of range. + + + + + Binding context for Path expression does not supply an entity type + + + + + Invalid value for SRID + + + + + Invalid value for max length + + + + + Invalid value for long + + + + + Invalid value for integer + + + + + Invalid association set + + + + + Invalid parameter mode + + + + + No entity type with that name exists. + + + + + Value is invalid + + + + + Binary value is invalid. + + + + + Floating point value is invalid. + + + + + DateTime value is invalid. + + + + + DateTimeOffset value is invalid. + + + + + Decimal value is invalid. + + + + + Guid value is invalid. + + + + + The type kind None is not semantically valid. A semantically valid model must not contain elements of type kind None. + + + + + The if expression is invalid because it does not have 3 elements. + + + + + Enums were present in a model with a version below 3.0 + + + + + The type of an enum member value must match the underlying of the parent enum. + + + + + The IsType expression is invalid because it does not have 1 element. + + + + + The type name is not fully qualified and not a primitive. + + + + + The term name is not fully qualified. + + + + + No model was parsed because no XmlReaders were provided. + + + + + Model could not be parsed because one of the XmlReaders was null. + + + + + IsUnbounded cannot be true if MaxLength is non-null. + + + + + ImmediateValueAnnotation is invalid as an element annotation. + + + + + The LabeledElement expression is invalid because it does not have 1 element. + + + + + Could not find a LabeledElement with that name + + + + + Could not find a enum member with that name + + + + + The AssertType expression is invalid because it does not have 1 element. + + + + + Could not find a Parameter with that name + + + + + A navigation property with = true must point to an optional target. + + + + + If a navigation property has = true and the target entity type is the same as + the declaring type of the property, then the multiplicity of the source of navigation is Zero-Or-One. + + + + + If a navigation property has = true and the target entity type is defferent than + the declaring type of the property, then the multiplicity of the source of navigation is One. + + + + + Navigation properties with setting are not supported before version 3.0. + + + + + The annotation target path cannot possibly refer to an annotable element. + + + + + A nullable type is not valid if a non-nullable type is required. + + + + + The expression is a primitive constant, and cannot be valid for an non-primitive type. + + + + + The primitive type is not valid for the requested type. + + + + + Null is not valid in a non nullable expression. + + + + + The expression is not valid for the asserted type. + + + + + A collection expression is not valid for a non-collection type. + + + + + A record expression is not valid for a non-structured type. + + + + + The record expression does not have all of the properties required for the specified type. + + + + + The record expression's type is not open, but the record expression has extra properties. + + + + + Target has multiple annotations with the same term and same qualifier. + + + + + Function application has wrong number of arguments for the function being applied. + + + + + Is it invalid to have multiple using statements with the same alias in a single schema element. + + + + + A model cannot be serialized to CSDL if it has references to types without fully qualified names. + + + + + The model could not be serialized because multiple schemas were produced and only a single output stream was found. + + + + + The Edmx version is not valid. + + + + + The EdmVersion is not valid. + + + + + Nothing was written because no schemas were produced. + + + + + Model has multiple entity containers with the same name. + + + + + The container name of a container element must be the full name of the container entity container. + + + + + A primitive constant expression is not valid for a non-primitive type. + + + + + The value of the integer constant is out of range for the asserted type. + + + + + The length of the string constant is too large for the asserted type. + + + + + The length of the binary constant is too large for the asserted type. + + + + + None is not a valid mode for a function import parameter. + + + + + A type without other errors must not have kind of none. + + + + + A primitive type without other errors must not have kind of none. + + + + + A property without other errors must not have kind of none. + + + + + A term without other errors must not have kind of none. + + + + + A schema element without other errors must not have kind of none. + + + + + An entity container element without other errors must not have kind of none. + + + + + A binary value must have content. + + + + + There can only be a single navigation property mapping with containment that targets a particular entity set. + + + + + The navigation properties partner does not point back to the correct type. + + + + + An entity set can only have one navigation property with containment. + + + + + If a navigation property is traversed from an entity set, and then it's partner is traversed from the target of the first mapping, the destination should be the originating entity set. + + + + + There can only be a single mapping from a given EntitySet with a particular navigation property. + + + + + An entity set must have a mapping for all of the navigation properties in its element type. + + + + + Type annotation does not have a property binding for all required properties. + + + + + Type annotation has a property binding for a non-existant property and its type is not open. + + + + + Time value is invalid. + + + + + The primitive type is invalid. + + + + + An Enum type must have an underlying type of integer. + + + + + Could not find a term with this name. + + + + + The principal properties of a referential constraint must match the key of the referential constraint. + + + + + A direct value annotation with the same name and namespace already exists. + + + + + AssociationSetEnd cannot infer an entity set because no set exists of the given type. + + + + + AssociationSetEnd cannot infer an entity set because more than one set exists of the given type. + + + + + Invalid entity set path. + + + + + Invalid enum member path. + + + + + An annotation qualifier must be a simple name. + + + + + Enum type could not be resolved. + + + + + Could not find a target with this name. + + + + + Path cannot be resolved in the given context. + + + + + Helper methods that provide a common API surface on all platforms. + + + + + Use this instead of Type.EmptyTypes. + + + + + Use this instead of Uri.UriSchemeHttp. + + + + + Use this instead of Uri.UriSchemeHttps. + + + + + Replacement for Type.Assembly. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsValueType. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsGenericParameter. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsAbstract. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsGenericType. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsGenericTypeDefinition. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsVisible. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsInterface. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsClass. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsEnum. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.BaseType. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.ContainsGenericParameters. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Array.AsReadOnly(T[]). + + Type of items in the array. + Array to use to create the ReadOnlyCollection. + ReadOnlyCollection containing the specified array items. + + + + Converts a string to a DateTime. + + String to be converted. + See documentation for method being accessed in the body of the method. + + + + Converts a string to a DateTimeOffset. + + String to be converted. + See documentation for method being accessed in the body of the method. + + + + Adds the seconds padding as zeros to the date time string if seconds part is missing. + + String that needs seconds padding + DateTime string after adding seconds padding + + + + Converts the DateTime to a string, internal method. + + DateTime to convert to String. + Converted String. + + + + Converts a DateTime to a string. + + DateTime to be converted. + See documentation for property being accessed in the body of the method. + + + + Gets the specified type. + + Name of the type to get. + Throws if the type could not be found. + Type instance that represents the specified type name. + + + + Gets the TypeCode for the specified type. + + Type on which to call this helper method. + TypeCode representing the specified type. + + + + Gets the Unicode Category of the specified character. + + Character to get category of. + Category of the character. + + + + Replacement for usage of MemberInfo.MemberType property. + + MemberInfo on which to access this method. + True if the specified member is a property, otherwise false. + + + + Replacement for usage of Type.IsPrimitive property. + + Type on which to access this method. + True if the specified type is primitive, otherwise false. + + + + Replacement for usage of Type.IsSealed property. + + Type on which to access this method. + True if the specified type is sealed, otherwise false. + + + + Replacement for usage of MemberInfo.MemberType property. + + MemberInfo on which to access this method. + True if the specified member is a method, otherwise false. + + + + Compares two methodInfos and returns true if they represent the same method. + Need this for Windows Phone as the method Infos of the same method are not always instance equivalent. + + MemberInfo to compare. + MemberInfo to compare. + True if the specified member is a method, otherwise false. + + + + Gets public properties for the specified type. + + Type on which to call this helper method. + True if method should return only instance properties, false if it should return both instance and static properties. + Enumerable of public properties for the type. + + + + Gets public properties for the specified type. + + Type on which to call this helper method. + True if method should return only instance properties, false if it should return both instance and static properties. + True if method should return only properties that are declared on the type, false if it should return properties declared on the type as well as those inherited from any base types. + Enumerable of public properties for the type. + + + + Gets instance constructors for the specified type. + + Type on which to call this helper method. + True if method should return only public constructors, false if it should return only non-public constructors. + Enumerable of instance constructors for the specified type. + + + + Gets a instance constructor for the type that takes the specified argument types. + + Type on which to call this helper method. + True if method should search only public constructors, false if it should search only non-public constructors. + Array of argument types for the constructor. + ConstructorInfo for the constructor with the specified characteristics if found, otherwise null. + + + + Tries to the get method from the type, returns null if not found. + + The type. + The name. + The parameter types. + Returns True if found. + + + + Gets a method on the specified type. + + Type on which to call this helper method. + Name of the method on the type. + True if method should search only public methods, false if it should search only non-public methods. + True if method should search only static methods, false if it should search only instance methods. + MethodInfo for the method with the specified characteristics if found, otherwise null. + + + + Gets a method on the specified type. + + Type on which to call this helper method. + Name of the method on the type. + Argument types for the method. + True if method should search only public methods, false if it should search only non-public methods. + True if method should search only static methods, false if it should search only instance methods. + MethodInfo for the method with the specified characteristics if found, otherwise null. + + + + Gets all public static methods for a type. + + Type on which to call this helper method. + Enumerable of all public static methods for the specified type. + + + + Replacement for Type.GetNestedTypes(BindingFlags.NonPublic) + + Type on which to call this helper method. + All types nested in the current type + + + + Creates a Compiled Regex expression + + Pattern to match. + Options to use. + Regex expression to match supplied patter + Is marked as compiled option only in platforms otherwise RegexOption.None is used + + + + Sets public key string for friend assemblies. + + + + ProductPublicKey is an official MS supported public key for external releases. + + + TestPublicKey is an unsupported strong key for testing and internal use only + + + Dont know what this is + + + Used for comparison with external assemblies for silverlight like Microsoft.VisualBasic. + + + Used for comparison with external assemblies for desktop like Microsoft.VisualBasic. + + + + AutoGenerated resource class. Usage: + + string s = EntityRes.GetString(EntityRes.MyIdenfitier); + + + + + Strongly-typed and parameterized string resources. + + + + + A string like "Annotations in the 'Documentation' namespace must implement 'IEdmDocumentation', but '{0}' does not." + + + + + A string like "Annotation of type '{0}' cannot be interpreted as '{1}'." + + + + + A string like "Navigation target entity type must be '{0}'." + + + + + A string like "The type '{0}' could not be converted to be a '{1}' type." + + + + + A string like "The value writer cannot write a value of kind '{0}'." + + + + + A string like "Type '{0}' must have a single type annotation with term type '{1}'." + + + + + A string like "Type '{0}' must have a single value annotation with term '{1}'." + + + + + A string like "Element must have a single value annotation with term '{0}'." + + + + + A string like "Expression with kind '{0}' cannot be evaluated." + + + + + A string like "Function '{0}' is not present in the execution environment." + + + + + A string like "Path segment '{0}' has no binding in the execution environment." + + + + + A string like "Value fails to match type '{0}'." + + + + + A string like "The namespace '{0}' is a system namespace and cannot be used by non-system types. Please choose a different namespace." + + + + + A string like "The entity set '{0}' is based on type '{1}' that has no keys defined." + + + + + A string like "An end with the name '{0}' is already defined." + + + + + A string like "The key specified in entity type '{0}' is not valid. Property '{1}' is referenced more than once in the key element." + + + + + A string like "The complex type '{0}' is marked as abstract. Abstract complex types are only supported in version 1.1 EDM models." + + + + + A string like "The complex type '{0}' has a base type specified. Complex type inheritance is only supported in version 1.1 EDM models." + + + + + A string like "The key part '{0}' for type '{1}' is not valid. All parts of the key must be non nullable." + + + + + A string like "The property '{0}' in entity type '{1}' is not valid. All properties that are part of the entity key must be of primitive type." + + + + + A string like "The key usage is not valid. '{0}' cannot define keys because one of its base classes '{1}' defines keys." + + + + + A string like "The entity type '{0}' has no key defined. Define the key for this entity type." + + + + + A string like "The navigation property '{0}' is not valid. The role '{1}' is not defined in relationship '{2}'." + + + + + A string like "The navigation property '{0}'is not valid. The from role and to role are the same." + + + + + A string like "The navigation property type could not be determined from the role '{0}'." + + + + + A string like "The navigation property '{0}' cannot have 'OnDelete' specified since its multiplicity is '*'." + + + + + A string like "Each name and plural name in a relationship must be unique. '{0}' is already defined." + + + + + A string like "In relationship '{0}', the principal and dependent role of the referential constraint refers to the same role in the relationship type." + + + + + A string like "The principal navigation property '{0}' has an invalid multiplicity. Valid values for the multiplicity of a principal end are '0..1' or '1'." + + + + + A string like "The multiplicity of the principal end '{0}' is not valid. Because all dependent properties of the end '{1}' are non-nullable, the multiplicity of the principal end must be '1'." + + + + + A string like "The multiplicity of the principal end '{0}' is not valid. Because all dependent properties of the end '{1}' are nullable, the multiplicity of the principal end must be '0..1'." + + + + + A string like "The multiplicity of the dependent end '{0}' is not valid. Because the dependent properties represent the dependent end key, the multiplicity of the dependent end must be '0..1' or '1'." + + + + + A string like "The multiplicity of the dependent end '{0}' is not valid. Because the dependent properties don't represent the dependent end key, the the multiplicity of the dependent end must be '*'." + + + + + A string like "The properties referred by the dependent role '{0}' must be a subset of the key of the entity type '{1}'." + + + + + A string like "The types of all properties in the dependent role of a referential constraint must be the same as the corresponding property types in the principal role. The type of property '{0}' on entity '{1}' does not match the type of property '{2}' on entity '{3}' in the referential constraint '{4}'." + + + + + A string like "There is no property with name '{0}' defined in the type referred to by role '{1}'." + + + + + A string like "The principal end properties in the referential constraint of the association '{0}' do not match the key of the type referred to by role '{1}'." + + + + + A string like "The property '{0}' is of a complex type and is nullable. Nullable complex type properties are not supported in EDM versions 1.0 and 2.0." + + + + + A string like "A property cannot be of type '{0}'. The property type must be a complex, a primitive or an enum type, or a collection of complex, primitive, or enum types." + + + + + A string like "The function import '{0}' cannot be composable and side-effecting at the same time." + + + + + A string like "The bindable function import '{0}' must have at least one parameter." + + + + + A string like "The return type is not valid in function import '{0}'. In version 1.0 a function import can have no return type or return a collection of scalar values or a collection of entities." + + + + + A string like "The return type is not valid in function import '{0}'. The function import can have no return type or return a scalar, a complex type, an entity type or a collection of those." + + + + + A string like "The function import '{0}' returns entities but does not specify an entity set." + + + + + A string like "The function import '{0}' returns entities of type '{1}' that cannot exist in the entity set '{2}' specified for the function import." + + + + + A string like "The function import '{0}' returns entities of type '{1}' that cannot be returned by the entity set path specified for the function import." + + + + + A string like "The function import '{0}' specifies an entity set expression of kind {1} which is not supported in this context. Function import entity set expression can be either an entity set reference or a path starting with a function import parameter and traversing navigation properties." + + + + + A string like "The function import '{0}' specifies an entity set expression which is not valid. Function import entity set expression can be either an entity set reference or a path starting with a function import parameter and traversing navigation properties." + + + + + A string like "The function import '{0}' specifies an entity set but does not return entities." + + + + + A string like "The composable function import '{0}' must specify a return type." + + + + + A string like "Each parameter name in a function must be unique. The parameter name '{0}' is already defined." + + + + + A string like "Each member name in an EntityContainer must be unique. A member with name '{0}' is already defined." + + + + + A string like "An element with the name '{0}' is already defined." + + + + + A string like "The member name '{0}' cannot be used in a type with the same name. Member names cannot be the same as their enclosing type." + + + + + A string like "Each property name in a type must be unique. Property name '{0}' is already defined." + + + + + A string like "The key property '{0}' must belong to the entity '{1}'." + + + + + A string like "The dependent property '{0}' must belong to the dependent entity '{1}'." + + + + + A string like "The property '{0}' cannot belong to a type other than its declaring type. " + + + + + A string like "The named type '{0}' could not be found from the model being validated." + + + + + A string like "The named type '{0}' is ambiguous from the model being validated." + + + + + A string like "The type of the navigation property '{0}' is invalid. The navigation target type must be an entity type or a collection of entity type. The navigation target entity type must match the declaring type of the partner property." + + + + + A string like "The target multiplicity of the navigation property '{0}' is invalid. If a navigation property has 'ContainsTarget' set to true and declaring entity type of the property is the same or inherits from the target entity type, then the property represents a recursive containment and it must have an optional target represented by a collection or a nullable entity type." + + + + + A string like "The source multiplicity of the navigation property '{0}' is invalid. If a navigation property has 'ContainsTarget' set to true and declaring entity type of the property is the same or inherits from the target entity type, then the property represents a recursive containment and the multiplicity of the navigation source must be zero or one." + + + + + A string like "The source multiplicity of the navigation property '{0}' is invalid. If a navigation property has 'ContainsTarget' set to true and declaring entity type of the property is not the same as the target entity type, then the property represents a non-recursive containment and the multiplicity of the navigation source must be exactly one." + + + + + A string like "The mode of the parameter '{0}' in the function '{1}' is invalid. Only input parameters are allowed in functions." + + + + + A string like "The mode of the parameter '{0}' in the function import '{1}' is invalid." + + + + + A string like "The type '{0}' of parameter '{1}' is invalid. A function import parameter must be one of the following types: A simple type or complex type." + + + + + A string like "The complex type '{0}' is invalid. A complex type must contain at least one property." + + + + + A string like "The dependent property '{0}' of navigation property '{1}' is a duplicate." + + + + + A string like "A property with a fixed concurrency mode cannot be of type '{0}'. The property type must be a primitive type." + + + + + A string like "The property '{0}' in entity type '{1}' is not valid. Binary types are not allowed in entity keys before version 2.0." + + + + + A string like "The type of the value of enum member '{0}' must match the underlying type of the parent enum." + + + + + A string like "Each member name of an enum type must be unique. Enum member name '{0}' is already defined." + + + + + A string like "Cannot assert the nullable type '{0}' as a non-nullable type." + + + + + A string like "Cannot promote the primitive type '{0}' to the specified primitive type '{1}'." + + + + + A string like "The record expression does not have a constructor for a property named '{0}'." + + + + + A string like "The type of the record expression is not open and does not contain a property named '{0}'." + + + + + A string like "The annotated element '{0}' has multiple annotations with the term '{1}' and the qualifier '{2}'." + + + + + A string like "The function application provides '{0}' arguments, but the function '{1}' expects '{2}' arguments." + + + + + A string like "Each entity container name in a function must be unique. The name '{0}' is already defined." + + + + + A string like "The value of the string constant is '{0}' characters long, but the max length of its type is '{1}'." + + + + + A string like "The value of the binary constant is '{0}' characters long, but the max length of its type is '{1}'." + + + + + A string like "A term without other errors must not have kind of none. The kind of term '{0}' is none." + + + + + A string like "A schema element without other errors must not have kind of none. The kind of schema element '{0}' is none." + + + + + A string like "A property without other errors must not have kind of none. The kind of property '{0}' is none." + + + + + A string like "A primitive type without other errors must not have kind of none. The kind of primitive type '{0}' is none." + + + + + A string like "An entity container element without other errors must not have kind of none. The kind of entity container element '{0}' is none." + + + + + A string like "The entity set '{0}' should have only a single mapping for the property '{1}'." + + + + + A string like "The mapping of the entity set '{0}' and navigation property '{1}' is invalid because the navigation property mapping must have a mapping with the navigation property's partner that points back to the originating entity set. " + + + + + A string like "The entity set '{0}' is invalid because it is contained by more than one navigation property." + + + + + A string like "The type annotation is missing a binding for the property '{0}'." + + + + + A string like "They type of the type annotation is not open, and does not contain a property named '{0}'." + + + + + A string like "The underlying type of '{0}' is not valid. The underlying type of an enum type must be an integral type. " + + + + + A string like "The term '{0}' could not be found from the model being validated." + + + + + A string like "The target '{0}' could not be found from the model being validated." + + + + + A string like "An element already has a direct value annotation with the namespace '{0}' and name '{1}'." + + + + + A string like "The association set '{0}' cannot assume an entity set for the role '{2}' because there are no entity sets for the role type '{1}'." + + + + + A string like "The association set '{0}' must specify an entity set for the role '{2}' because there are multiple entity sets for the role type '{1}'." + + + + + A string like "Because the navigation property '{0}' is recursive, the mapping from the entity set '{1}' must point back to itself." + + + + + A string like "The navigation property '{0}' is invalid because it indirectly contains itself." + + + + + A string like "The path cannot be resolved in the given context. The segment '{0}' failed to resolve." + + + + + A string like "The entity set '{1}' is not a valid destination for the navigation property '{0}' because it cannot hold an element of the target entity type." + + + + + A string like "The specified name must not be longer than 480 characters: '{0}'." + + + + + A string like "The specified name is not allowed: '{0}'." + + + + + A string like "The specified name must not be longer than 480 characters: '{0}'." + + + + + A string like "The specified namespace name is not allowed: '{0}'." + + + + + A string like "The value of the property '{0}.{1}' must not be null." + + + + + A string like "The property '{0}.{1}' of type '{2}' has value '{3}' that is not a valid enum member." + + + + + A string like "An object with the value '{0}' of the '{1}.{2}' property must implement '{3}' interface." + + + + + A string like "An object implementing '{0}' interface has type definition of kind '{1}'. The type reference interface must match to the kind of the definition." + + + + + A string like "The value '{0}' of the property '{1}.{2}' is not semantically valid. A semantically valid model must not contain elements of kind '{0}'." + + + + + A string like "The value of the enumeration the property '{0}.{1}' contains a null element. Enumeration properties must not contain null elements." + + + + + A string like "The partner of the navigation property '{0}' must not be the same property, and must point back to the navigation property." + + + + + A string like "The chain of base types of type '{0}' is cyclic." + + + + + A string like "The function import '{0}' could not be serialized because its return type cannot be represented inline." + + + + + A string like "A referenced type can not be serialized with an invalid name. The name '{0}' is invalid." + + + + + A string like "The annotation can not be serialized with an invalid target name. The name '{0}' is invalid." + + + + + A string like "{0} does not contain a schema definition, or the XmlReader provided started at the end of the file." + + + + + A string like "Required schema attribute '{0}' is not present on element '{1}'." + + + + + A string like "The current schema element does not support text '{0}'." + + + + + A string like "The attribute '{0}' was not expected in the given context." + + + + + A string like "The schema element '{0}' was not expected in the given context." + + + + + A string like "Unused schema element: '{0}'." + + + + + A string like "Unexpected XML node type: {0}." + + + + + A string like "The element '{0}' was unexpected for the root element. The root element should be {1}." + + + + + A string like "The namespace '{0}' is invalid. The root element is expected to belong to one of the following namespaces: '{1}'." + + + + + A string like "The root element has no namespace. The root element is expected to belong to one of the following namespaces: '{0}'." + + + + + A string like "The alias '{0}' is not a valid simple name." + + + + + A string like "The delete action '{0}' is not valid. Action must be: 'None', 'Cascade', or 'Restrict'." + + + + + A string like "The association '{0}' is not valid. Associations must contain exactly two end elements." + + + + + A string like "The association set '{0}' is not valid. Association sets must contain at most two end elements." + + + + + A string like "The concurrency mode '{0}' is not valid. Concurrency mode must be: 'None', or 'Fixed'." + + + + + A string like "Parameter mode '{0}' is not valid. Parameter mode must be: 'In', 'Out', or 'InOut'." + + + + + A string like "There is no Role with name '{0}' defined in relationship '{1}'." + + + + + A string like "The multiplicity '{0}' is not valid. Multiplicity must be: '*', '0..1', or '1'." + + + + + A string like "The type name '{0}' is invalid. The type name must be that of a primitive type, a fully qualified name or an inline 'Collection' or 'Ref' type." + + + + + A string like "The qualified name '{0}' is invalid. A qualified name must have a valid namespace or alias, and a valid name." + + + + + A string like "'{0}' is not a valid entity set path." + + + + + A string like "'{0}' is not a valid enum member path." + + + + + A string like "The annotation target '{0}' could not be resolved because it cannot refer to an annotatable element." + + + + + A string like "The schema '{0}' contains the alias '{1}' more than once." + + + + + A string like "Unexpected {0} element while parsing Edmx. Edmx is expected to have at most one of 'Runtime' or 'DataServices' elements." + + + + + A string like "Encountered the following errors when parsing the EDMX document: \r\n{0}" + + + + + A string like "The value '{0}' is not a valid boolean. The value must be 'true' or 'false'." + + + + + A string like "The value '{0}' is not a valid integer. The value must be a valid 32 bit integer." + + + + + A string like "The value '{0}' is not a valid integer. The value must be a valid 64 bit integer." + + + + + A string like "The value '{0}' is not a valid floating point value. " + + + + + A string like "The value '{0}' is not a valid integer. The value must be a valid 32 bit integer or 'Max'." + + + + + A string like "The value '{0}' is not a valid SRID. The value must either be a 32 bit integer or 'Variable'." + + + + + A string like "The value '{0}' is not a valid Guid. " + + + + + A string like "The value '{0}' is not a valid decimal." + + + + + A string like "The value '{0}' is not a valid date time offset value." + + + + + A string like "The value '{0}' is not a valid date time value." + + + + + A string like "The value '{0}' is not a valid time value." + + + + + A string like "The value '{0}' is not a valid binary value. The value must be a hexadecimal string and must not be prefixed by '0x'." + + + + + A string like "Invalid multiplicity: '{0}'" + + + + + A string like "Invalid schema element kind: '{0}'" + + + + + A string like "Invalid type kind: '{0}'" + + + + + A string like "Invalid primitive kind: '{0}'" + + + + + A string like "Invalid container element kind: '{0}'" + + + + + A string like "Invalid edmx target: '{0}'" + + + + + A string like "Invalid function parameter mode: '{0}'" + + + + + A string like "Invalid concurrency mode: '{0}'" + + + + + A string like "Invalid property kind: '{0}'" + + + + + A string like "Invalid term kind: '{0}'" + + + + + A string like "Invalid expression kind: '{0}'" + + + + + A string like "The name '{0}' is ambiguous." + + + + + A string like "The type '{0}' could not be found." + + + + + A string like "The complex type '{0}' could not be found." + + + + + A string like "The entity type '{0}' could not be found." + + + + + A string like "The primitive type '{0}' could not be found." + + + + + A string like "The function '{0}' could not be found." + + + + + A string like "The function '{0}' could not be resolved because more than one function could be used for this application." + + + + + A string like "The function '{0}' could not be resolved because none of the functions with that name take the correct set of parameters." + + + + + A string like "The entity set '{0}' could not be found." + + + + + A string like "The entity container '{0}' could not be found." + + + + + A string like "The enum type '{0}' could not be found." + + + + + A string like "The enum member '{0}' could not be found." + + + + + A string like "The property '{0}' could not be found." + + + + + A string like "The parameter '{0}' could not be found." + + + + + A string like "The labeled element '{0}' could not be found." + + + + + A string like "The entity '{0}' is invalid because its base type is cyclic." + + + + + A string like "The complex type '{0}' is invalid because its base type is cyclic." + + + + + A string like "The entity container '{0}' is invalid because its extends hierarchy is cyclic." + + + + + A string like "The association end '{0}' could not be computed." + + + + + A string like "Conversion of EDM values to a CLR type with type code {0} is not supported." + + + + + A string like "Cannot initialize a property '{0}' on an object of type '{1}'. The property already has a value." + + + + + A string like "An EDM structured value contains multiple values for the property '{0}'. Conversion of an EDM structured value with duplicate property values is not supported." + + + + + A string like "Conversion of an EDM value of the type '{0}' to the CLR type '{1}' is not supported." + + + + + A string like "Conversion of an edm collection value to the CLR type '{0}' is not supported. EDM collection values can be converted to System.Collections.Generic.IEnumerable<T>, System.Collections.Generic.IList<T> or System.Collections.Generic.ICollection<T>." + + + + + A string like "The type '{0}' of the object returned by the TryCreateObjectInstance delegate is not assignable to the expected type '{1}'." + + + + + A string like "Unexpected primitive type kind." + + + + + A string like "The annotation must have non-null target." + + + + + A string like "An entity type or a collection of an entity type is expected." + + + + + A string like "An element with type 'None' cannot be used in a model." + + + + + A string like "An element with type 'None' cannot be used in an entity container." + + + + + A string like "Value has already been set." + + + + + A string like "Path segments must not contain '/' character." + + + + + A string like "An on delete action can only be specified on one end of an association." + + + + + A string like "The number of properties in the dependent and principal role in a relationship constraint must be exactly identical." + + + + + A string like "The base type kind of a structured type must be the same as its derived type." + + + + + A string like "Row types cannot have a base type." + + + + + A string like "Functions are not supported prior to version 2.0." + + + + + A string like "The 'SideEffecting' setting of function imports is not supported before version 3.0." + + + + + A string like "The 'Composable' setting of function imports is not supported before version 3.0." + + + + + A string like "The 'Bindable' setting of function imports is not supported before version 3.0." + + + + + A string like "The 'ContainsTarget' setting of navigation properties is not supported before version 3.0." + + + + + A string like "The row type is invalid. A row must contain at least one property." + + + + + A string like "The scale value can range from 0 through the specified precision value." + + + + + A string like "Precision cannot be negative." + + + + + A string like "The max length facet specifies the maximum length of an instance of the string type. For unicode equal to 'true', the max length can range from 1 to 2^30, or if 'false', 1 to 2^31." + + + + + A string like "Max length can range from 1 to 2^31." + + + + + A string like "Enums are not supported prior to version 3.0." + + + + + A string like "Value terms are not supported prior to version 3.0." + + + + + A string like "Vocabulary annotations are not supported prior to version 3.0." + + + + + A string like "Open types are supported only in version 1.2 and after version 2.0." + + + + + A string like "Only entity types can be open types." + + + + + A string like "The string reference is invalid because if 'IsUnbounded' is true 'MaxLength' must be null." + + + + + A string like "The declared name and namespace of the annotation must match the name and namespace of its xml value." + + + + + A string like "The value of an annotation marked to be serialized as an xml element must have a well-formed xml value." + + + + + A string like "The value of an annotation marked to be serialized as an xml element must be IEdmStringValue." + + + + + A string like "The value of an annotation marked to be serialized as an xml element must be a string representing an xml element with non-empty name and namespace." + + + + + A string like "Null value cannot have a non-nullable type." + + + + + A string like "The type of the expression is incompatible with the asserted type." + + + + + A string like "A collection expression is incompatible with a non-collection type." + + + + + A string like "A primitive expression is incompatible with a non-primitive type." + + + + + A string like "A record expression is incompatible with a non-structured type." + + + + + A string like "References to EDM stream type are not supported before version 3.0." + + + + + A string like "References to EDM spatial types are not supported before version 3.0." + + + + + A string like "The primitive expression is not compatible with the asserted type." + + + + + A string like "The value of the integer constant is out of range for the asserted type." + + + + + A string like "A type without other errors must not have kind of none." + + + + + A string like "The name is missing or not valid." + + + + + A string like "The namespace name is missing or not valid." + + + + + A string like "Single file provided but model cannot be serialized into single file." + + + + + A string like "Unknown Edm version." + + + + + A string like "Unknown Edmx version." + + + + + A string like "No CSDL is written because no schema elements could be produced. This is likely because the model is empty." + + + + + A string like "The source XmlReader does not contain a schema definition or started at the end of the file." + + + + + A string like "Associations may have at most one constraint. Multiple constraints were specified for this association." + + + + + A string like "An XML attribute or sub-element representing an EDM type is missing." + + + + + A string like "Referential constraints requires one dependent role. Multiple dependent roles were specified for this referential constraint." + + + + + A string like "Referential constraints requires one principal role. Multiple principal roles were specified for this referential constraint." + + + + + A string like "If expression must contain 3 operands, the first being a boolean test, the second being being evaluated if the first is true, and the third being evaluated if the first is false." + + + + + A string like "The IsType expression must contain 1 operand." + + + + + A string like "The AssertType expression must contain 1 operand." + + + + + A string like "The LabeledElement expression must contain 1 operand." + + + + + A string like "A model could not be produced because no XML readers were provided." + + + + + A string like "A model could not be produced because one of the XML readers was null." + + + + + A string like " There was a mismatch in the principal and dependent ends of the referential constraint." + + + + + A string like "The enumeration member value exceeds the range of its data type 'http://www.w3.org/2001/XMLSchema:long'." + + + + + A string like "The EDMX version specified in the 'Version' attribute does not match the version corresponding to the namespace of the 'Edmx' element." + + + + + A string like "The specified value of data service version is invalid." + + + + + A string like "The specified value of max data service version is invalid." + + + + + A string like "The same rule cannot be in the same rule set twice." + + + + + A string like "Conversion of an EDM structured value is supported only to a CLR class." + + + + + Strongly-typed and parameterized exception factory. + + + + + The exception that is thrown when a null reference (Nothing in Visual Basic) is passed to a method that does not accept it as a valid argument. + + + + + The exception that is thrown when the value of an argument is outside the allowable range of values as defined by the invoked method. + + + + + The exception that is thrown when the author has yet to implement the logic at this point in the program. This can act as an exception based TODO tag. + + + + + The exception that is thrown when an invoked method is not supported, or when there is an attempt to read, seek, or write to a stream that does not support the invoked functionality. + + + + diff --git a/TinyFileManager.NET/bin/Microsoft.Data.OData.dll b/TinyFileManager.NET/bin/Microsoft.Data.OData.dll new file mode 100644 index 0000000..884b52a Binary files /dev/null and b/TinyFileManager.NET/bin/Microsoft.Data.OData.dll differ diff --git a/TinyFileManager.NET/bin/Microsoft.Data.OData.xml b/TinyFileManager.NET/bin/Microsoft.Data.OData.xml new file mode 100644 index 0000000..9241973 --- /dev/null +++ b/TinyFileManager.NET/bin/Microsoft.Data.OData.xml @@ -0,0 +1,55469 @@ + + + + Microsoft.Data.OData + + + + + Component for formatting literals for use in URIs, ETags, and skip-tokens. + + + + Constant table of nibble-to-hex convertion values. + + + Default singleton instance for parenthetical keys, etags, or skiptokens. + + + Default singleton instance which does not URL-encode the resulting string. + + + Default singleton instance for keys formatted as segments. + + + + Gets the literal formatter for keys. + + if set to true then the key is going to be written as a segment, rather than in parentheses. + The literal formatter for keys. + + + Converts the specified value to an encoded, serializable string for URI key. + Non-null value to convert. + value converted to a serializable string for URI key. + + + + Escapes the result accoridng to URI escaping rules. + + The result to escape. + The escaped string. + + + Converts the given byte[] into string. + byte[] that needs to be converted. + String containing hex values representing the byte[]. + + + + Formats the literal without a type prefix, quotes, or escaping. + + The non-null value to format. + The formatted literal, without type marker or quotes. + + + + Formats the literal without a type prefix or quotes, but does escape it. + + The non-null value to format. + The formatted literal, without type marker or quotes. + + + + Gets the literal formatter for URL constants. + + + + + Gets the literal formatter for URL constants which does not URL-encode the string. + + + + + Helper utilities that capture any deltas between ODL, the WCF DS Client, and the WCF DS Server. + + + + + Creates a new exception instance to be thrown if the value is not a type that can be formatted as a literal. + DEVNOTE: Will return a different exception depending on whether this is ODataLib, the WCF DS Server, or the WCF DS client. + + The literal value that could not be converted. + The exception that should be thrown. + + + + Tries to convert the given value to one of the standard recognized types. Used specifically for handling XML and binary types. + + The original value. + The value converted to one of the standard types. + Whether or not the value was converted. + + + + Appends the decimal marker to string form of double value if necessary. + DEVNOTE: Only used by the client and ODL, for legacy/back-compat reasons. + + Input string. + String with decimal marker optionally added. + + + + Returns whether a 'd' literal suffix to a double value based on its value. + DEVNOTE: The WCF DS client never added the 'd', but WCF DS Server and ODL do. + + The value itself. + Whether or not to append the 'd' suffix. + + + + Tries to convert an instance of System.Data.Linq.Binary to a byte array. + + The original value which might be an instance of System.Data.Linq.Binary. + The converted byte array, if it was converted. + Whether or not the value was converted. + + + + Default literal formatter implementation. + + + + If true, literals will not be URL encoded. + + + + Creates a new instance of . + + + + + Creates a new instance of . + + If true, literals will not be URL encoded. + + + Converts the specified value to an encoded, serializable string for URI key. + Non-null value to convert. + value converted to a serializable string for URI key. + + + + Escapes the result accoridng to URI escaping rules. + + The result to escape. + The escaped string. + + + + Formats the literal with a type prefix and quotes (if the type requires it). + + The value to format. + The formatted literal, with type marker if needed. + + + + Literal formatter for keys which are written as URI segments. + Very similar to the default, but it never puts the type markers or single quotes around the value. + + + + + Creates a new instance of . + + + + Converts the specified value to an encoded, serializable string for URI key. + Non-null value to convert. + value converted to a serializable string for URI key. + + + + If the string starts with a '$', prepends another '$' to escape it. + + The string value. + The string value with a leading '$' escaped, if one was present. + + + + Component for serializing entity key values for building identities, edit links, etc. + + + + Singleton instance of the default serializer. + + + Singleton instance of the segment-based serializer. + + + + Creates a new key serializer. + + The url convention to use. + + A new key serializer. + + + + + Appends the key expression for an entity to the given + + The type used to represent properties. + The builder to append onto. + The key properties. + The callback to get each property's name. + The callback to get each property's value. + + + + Gets the value of the key property and serializes it to a string. + + The type used to represent properties. + The callback to get the value for a property. + The key property. + The literal formatter to use. + The serialized key property value. + + + + Appends the key using the parentheses-based syntax (e.g. Customers(1)) onto the given . + + The builder to append onto. + The type used to represent properties. + The key properties. + The callback to get each property's name. + The callback to get each property's value. + + + + Default implementation of the key serializer which uses parentheses (e.g. Customers(1)). + + + + + Creates a new instance of . + + + + + Appends the key expression for an entity to the given + + The builder to append onto. + The type used to represent properties. + The key properties. + The callback to get each property's name. + The callback to get each property's value. + + + + Implementation of the key serializer which uses segments (e.g. Customers/1). + + + + + Creates a new instance of . + + + + + Appends the key expression for an entity to the given + + The builder to append onto. + The type used to represent properties. + The key properties. + The callback to get each property's name. + The callback to get each property's value. + + + + Appends the key for the current resource using segment-based syntax (e.g. Customers/1) onto the given . + + The builder to append onto. + The type used to represent properties. + The key properties. + The callback to get each property's value. + + + + Component for representing the url convention in use by the server, client, or codegen. + + + + + The namespace of the term to use when building value annotations for indicating the conventions used. + + + + + The name of the term to use when building value annotations for indicating the conventions used. + + + + + The string value for indicating that the key-as-segment convention is being used in annotations and headers. + + + + + The name of the request header for indicating what conventions are being used. + + + + + Whether to generate entity keys as '/'-delimited segments instead of using parenthesis. + + + + + Prevents a default instance of the class from being created. + + Whether keys should be generated as segments. + + + + Helper for creating an instance with explicit value. Should only be called from unit tests. + + Whether keys should be generated as segments. + A new UrlConvention instance with the given value. + + + + Gets the url convention for the given entity container based on its vocabulary annotations. + + The model the entity container belongs to. + The container to get the url convention for. + The url convention of the container. + + + + Gets the url convention for the given user setting and type context. + + true if keys should go in seperate segments in auto-generated URIs, false if they should go in parentheses. + A null value means the user hasn't specified a preference and we should look for an annotation in the entity container, if available. + The type context for the entry or feed being written. + The convention to use when generating URLs. + + + + Determines whether or not the annotation indicates the 'KeyAsSegment' url-convention. + + The annotation to check. + True if the annotation indicates the 'KeyAsSegment' url convention; false otherwise. + + + + Determines whether or not the value is 'KeyAsSegment'. + + The value to check. + True if the value is 'KeyAsSegment'.; false otherwise. + + + + Determines whether or not the term is the url-convention term. + + The term to check. + True if the term is the url-convention term.; false otherwise. + + + + Whether to generate entity keys as '/'-delimited segments instead of using parenthesis. + + + + + Class that knows how to bind binary operators. + + + + + Method to use for binding the parent node, if needed. + + + + + Constructs a BinaryOperatorBinder with the given method to be used binding the parent token if needed. + + Method to use for binding the parent token, if needed. + + + + Binds a binary operator token. + + The binary operator token to bind. + The bound binary operator token. + + + + Promote the left and right operand types + + the operator kind + the left operand + the right operand + + + + Retrieve SingleValueNode bound with given query token. + + the query token kind + the query token + the corresponding SingleValueNode + + + + Encapsulates the state of metadata binding. + TODO finish moving fields from MetadataBinder here and see if anything can be removed. + + + + + The configuration used for binding. + + + + + The dictionary used to store mappings between Any visitor and corresponding segment paths + + + + + If there is a $filter or $orderby, then this member holds the reference to the parameter node for the + implicit parameter ($it) for all expressions. + + + + + Collection of query option tokens associated with the currect query being processed. + If a given query option is bound it should be removed from this collection. + + + + + Constructs a with the given . + + The configuration used for binding. + + + + The model used for binding. + + + + + The configuration used for binding. + + + + + If there is a $filter or $orderby, then this member holds the reference to the parameter node for the + implicit parameter ($it) for all expressions. + + + + + The dictionary used to store mappings between Any visitor and corresponding segment paths + + + + + Collection of query option tokens associated with the currect query being processed. + If a given query option is bound it should be removed from this collection. + + + + + Internal class for storing all the configuration information about the URI parser. Allows us to flow these values around without passing an actual parser. + + + + + Model to use for metadata binding. + + + + + Absolute URI of the service root. + + + + The conventions to use when parsing URLs. + + + + Initializes a new instance of . + + Model to use for metadata binding. + Absolute URI of the service root. + Throws if input model is null. + Throws if the input serviceRoot is not an AbsoluteUri + + + + The settings for this instance of . Refer to the documentation for the individual properties of for more information. + + + + + Gets the model for this ODataUriParser + + + + + Gets the absolute URI of the service root. + + + + + Gets or Sets the to use while parsing, specifically + whether to recognize keys as segments or not. + + Throws if the input value is null. + + + + Gets or Sets a callback that returns a BatchReferenceSegment (to be used for $0 in batch) + + + + + Gets or sets a callback that returns the raw string value for an aliased function parameter. + + + + + Class that knows how to bind CastTokens. + + + + + Method to use for binding the parent node, if needed. + + + + + Constructs a DottedIdentifierBinder with the given method to be used binding the parent token if needed. + + Method to use for binding the parent token, if needed. + + + + Binds a DottedIdentifierToken and it's parent node (if needed). + + Token to bind to metadata. + State of the Binding. + A bound node representing the cast. + + + Use this class to perform late-bound operations on data service entity sets. + This class was copied from the product. + + + MethodInfo for object DataServiceProviderMethods.GetValue(this object value, string propertyName). + + + MethodInfo for IEnumerable<T> DataServiceProviderMethods.GetSequenceValue(this object value, string propertyName). + + + MethodInfo for Convert. + + + MethodInfo for TypeIs. + + + Method info for string comparison + + + Method info for Bool comparison + + + Method info for Bool? comparison + + + Method info for Guid comparison + + + Method info for Guid? comparison + + + Method info for byte array comparison. + + + Method info for byte array comparison. + + + Gets a named value from the specified object. + Object to get value from. + describing the property whose value needs to be fetched. + The requested value. + + + Gets a named value from the specified object as a sequence. + Object to get value from. + describing the property whose value needs to be fetched. + expected result type + The requested value as a sequence; null if not found. + + + Performs an type cast on the specified value. + Value. + Type reference to check for. + Casted value. + + + Performs an type check on the specified value. + Value. + Type reference type to check for. + True if value is-a type; false otherwise. + + + + Compares 2 strings by ordinal, used to obtain MethodInfo for comparison operator expression parameter + + Left Parameter + Right Parameter + 0 for equality, -1 for left less than right, 1 for left greater than right + + Do not change the name of this function because LINQ to SQL is sensitive about the + method name, so is EF probably. + + + + + Compares 2 booleans with true greater than false, used to obtain MethodInfo for comparison operator expression parameter + + Left Parameter + Right Parameter + 0 for equality, -1 for left less than right, 1 for left greater than right + + Do not change the name of this function because LINQ to SQL is sensitive about the + method name, so is EF probably. + + + + + Compares 2 nullable booleans with true greater than false, used to obtain MethodInfo for comparison operator expression parameter + + Left Parameter + Right Parameter + 0 for equality, -1 for left less than right, 1 for left greater than right + + Do not change the name of this function because LINQ to SQL is sensitive about the + method name, so is EF probably. + + + + + Compares 2 guids by byte order, used to obtain MethodInfo for comparison operator expression parameter + + Left Parameter + Right Parameter + 0 for equality, -1 for left less than right, 1 for left greater than right + + Do not change the name of this function because LINQ to SQL is sensitive about the + method name, so is EF probably. + + + + + Compares 2 nullable guids by byte order, used to obtain MethodInfo for comparison operator expression parameter + + Left Parameter + Right Parameter + 0 for equality, -1 for left less than right, 1 for left greater than right + + Do not change the name of this function because LINQ to SQL is sensitive about the + method name, so is EF probably. + + + + Compares two byte arrays for equality. + First byte array. + Second byte array. + true if the arrays are equal; false otherwise. + + + Compares two byte arrays for equality. + First byte array. + Second byte array. + true if the arrays are not equal; false otherwise. + + + + Helper class for throwing exceptions during URI parsing. + + + + Creates a new "Resource Not Found" exception. + segment identifier information for which resource was not found. + A new exception to indicate the requested resource cannot be found. + + + Creates a new "Resource Not Found" exception. + Plain text error message for this exception. + A new exception to indicate the requested resource cannot be found. + + + Creates a new exception to indicate a syntax error. + A new exception to indicate a syntax error. + + + + Creates a new exception to indicate BadRequest error. + + Plain text error message for this exception. + A new exception to indicate a bad request error. + + + Checks the specific value for syntax validity. + Whether syntax is valid. + This helper method is used to keep syntax check code more terse. + + + Checks the specifid value for syntax validity. + Whether syntax is valid. + segment indentifier for which the resource was null. + This helper method is used to keep syntax check code more terse. + + + + A component for walking an expand tree and determining if the depth or number of items exceed user-specified limits. + + + + + The maximum depth of any expand tree being validated. + + + + + The maximum number of expand items allowed in any expand tree being validated, including leaf and non-leaf nodes. + + + + + The current count when validating a particular tree. + + + + + Initializes a new instance of . + + The maximum depth of an expand tree. + The maximum number of expanded items allowed in a tree. + + + + Validates the given tree against the user-specified limits. + + The expand tree to validate. + + + + Recursively ensures that the maximum count/depth are not exceeded by walking the tree. + + The expand tree to walk and validate. + The current depth of the tree walk. + + + + Component for parsing function parameters in both $filter/$orderby expressions and in paths. + + + + + Tries to parse a collection of function parameters. Allows path and filter to share the core algorithm while representing parameters differently. + + The lexer to read from. + The parameters if they were successfully split. + Whether the parameters could be split. + + + + Tries to parse a collection of function parameters for filter/orderby. + + The syntactically split parameters to parse. + The configuration for the URI Parser. + The function import for the function whose parameters are being parsed. + The parameters if they were successfully parsed. + Whether the parameters could be parsed. + + + + Tries to parse a collection of function parameters for path. + + The function name to use in error messages. + The contents of the parentheses portion of the current path segment. + The parameters if they were successfully split. + Whether the parameters could be split. + + + + Tries to parse a collection of function parameters for path. + + The split parameters from the syntactic parsing step. + The configuration for the URI Parser. + The function import for the function whose parameters are being parsed. + The parameters if they were successfully parsed. + Whether the parameters could be parsed. + + + + Tries to parse a collection of function parameters. Allows path and filter to share the core algorithm while representing parameters differently. + + The lexer to read from. + The token kind that marks the end of the parameters. + The parameters if they were successfully split. + Whether the parameters could be split. + + + + Tries to parse a collection of function parameters. Allows path and filter to share the core algorithm while representing parameters differently. + + The type representing a parameter. + The syntactically split parameters to parse. + The configuration for the URI Parser. + The function import for the function whose parameters are being parsed. + The callback to use for individual parameter parsing. + The parameters if they were successfully parsed. + Whether the parameters could be parsed. + + + + Tries to create a parameter using any representation based on the provided delegate for creating it from a converted value. + + The current expression parameterToken from the lexer. + The parameter value if one was successfully created. + Whether the parameter could be created from the parameterToken. + + + + Tries to create a parameter using any representation based on the provided delegate for creating it from a converted value. + + The type used to represent a parameter. + The token from the syntactic parsing step. + The configuration for the URI Parser. + The type that the parameter is expected to resolve to. + Callback to create the final parameter from the parsed value. + The parameter if one was successfully created. + Whether the parameter could be created from the parameterToken. + + + + A token to represent a raw function parameter value that has not yet been parsed further. + + + + + Base class for all lexical tokens of OData query. + + + + + Base class for all annotatable types in OData library. + + + + The map of annotationsAsArray keyed by type. + + + + Collection of custom instance annotations. + + + + Gets or sets the annotation by type. + The annotation of type T or null if not present. + The type of the annotation. + + + Sets an annotation of type T. + The annotation to set. + The type of the annotation. + + + + Verifies that can be added as an annotation of this. + + Annotation instance. + + + + Get the annotation of type . If the annotation is not found, create a new + instance of the annotation and call SetAnnotation on it then return the newly created instance. + + The type of the annotation. + The annotation of type . + + + + Gets the custom instance annotations. + + The custom instance annotations. + + + + Sets the custom instance annotations. + + The new value to set. + + + + Check whether a given (non-null) instance is of the specified type (no sub-type). + + The (non-null) instance to test. + The type to check for. + True if the types match; otherwise false. + + + + Replace an existing annotation of type T or add a new one + if no annotation of type T exists. + + The type of the annotation. + The annotation to set. + + + + Remove the annotation of type T from the set of annotations (if such an annotation exists). + We only allow a single occurence of an annotation of type T. + + The type of the annotation to remove. + + + + Empty list of arguments. + + + + + Accept a to walk a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + + + + The kind of the query token. + + + + + Creates a RawFunctionParameterValue + + the raw text of this parameter value. + + + + Accept a to walk a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + + + + Gets the raw text of the value. + + + + + Gets the kind of this token + + + + + A token to represent a parameter alias in a function call. + + + + + Creates a FunctionParameterAliasToken + + the alias being used for the parameter. + + + + Accept a to walk a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + + + + Gets the alias. + + + + + Gets the kind of this token + + + + + A token to represent a parameter to a function call. + + + + + get an empty list of parameters + + + + + The name of the parameter + + + + + The value of this parameter + + + + + Creates a FunctionParameterToken + + the name of this parameter + the syntactically parsed value + + + + Accept a to walk a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + + + + Gets the name of this parameter + + + + + Gets the syntactically parsed value of this token. + + + + + Gets the kind of this token + + + + + Node representing a semantically parsed parameter to a function. + + + + + Base class for all semantic metadata bound nodes. + + + + + Accept a that walks a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + + + + Gets the kind of this node. + + + + + Gets the kind of this node. + + + + + The name of this parameter + + + + + The semantically parsed value of this parameter + + + + + Creates a NamedFunctionParameterNode to represent a semantically parsed parameter to a function. + + the name of this function + the already semantically parsed value of this parameter. + + + + Accept a that walks a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + Throws if the input visitor is null + + + + Gets the name of this parameter + + + + + Gets the semantically parsed value of this parameter. + + + + + Gets the kind of this node + + + + + Gets the kind of this node. + + + + + Settings used by . + + + + + Default recursive call limit for Filter + + + + + Default recursive call limit for OrderBy + + + + + Default tree depth for Select and Expand + + + + + Default limit for the path parser. + + + + + the recursive depth of the Syntactic tree for a filter clause + + + + + the maximum depth of the syntactic tree for an orderby clause + + + + + the maximum number of segments in a path + + + + + the maximum depth of the Syntactic or Semantic tree for a Select or Expand clause + + + + + Flag that indiactes whether or not inlined query options like $filter within $expand clauses as supported. + + + + + Whether use the behavior that the WCF DS Server had before integration. + + + + + The maximum depth of the tree that results from parsing $expand. + + + + + The maximum number of instances that can appear in the tree that results from parsing $expand. + + + + + Initializes a new instance of with default values. + + + + Specifies whether the WCF data services server behavior is enabled. + + + + Gets or sets the maximum depth of the tree that results from parsing $expand. + + + This will be validated after parsing completes, and so should not be used to prevent the instantiation of large trees. + Further, redundant expansions will be pruned before validation and will not count towards the maximum. + + + + + Gets or sets the maximum number of instances that can appear in the tree that results from parsing $expand. + + + This will be validated after parsing completes, and so should not be used to prevent the instantiation of large trees. + Further, redundant expansions will be pruned before validation and will not count towards the maximum. + + + + + Gets or Sets the maximum recursive depth for a select and expand clause, which limits the maximum depth of the tree that can be parsed by the + syntactic parser. This guarantees a set level of performance. + + + The number here doesn't necessarily correspond exactly with the actual maximum recursive depth of the syntactic tree, + i.e a limit of 20 doesn't necessarily mean that a tree will have depth exactly 20, it may have depth 10 (but never over 20). + Think of it more as an upper bound. + + Throws if the input value is negative. + + + + Gets or Sets a flag that indicates Whether use the behavior that the WCF DS Server had before integration. + + + + + Gets or sets a flag that indiactes whether or not inlined query options like $filter within $expand clauses as supported. + + + + + Gets or Sets the limit on the maximum depth of the filter tree that can be parsed by the + syntactic parser. This guarantees a set level of performance. + + + The number here doesn't necessarily correspond exactly with the actual maximum recursive depth of the syntactic tree, + i.e a limit of 20 doesn't necessarily mean that a tree will have depth exactly 20, it may have depth 10 (but never over 20). + Think of it more as an upper bound. + + Throws if the input value is negative. + + + + Gets or sets the maximum recursive depth for an orderby clause, which limits the maximum depth of the tree that can be parsed by the + syntactic parser. This guarantees a set level of performance. + + + The number here doesn't necessarily correspond exactly with the actual maximum recursive depth of the syntactic tree, + i.e a limit of 20 doesn't necessarily mean that a tree will have depth exactly 20, it may have depth 10 (but never over 20). + Think of it more as an upper bound. + + Throws if the input value is negative. + + + + Gets or Sets the limit on the maximum number of segments that can be parsed by the + syntactic parser. This guarantees a set level of performance. + + + Unlike Filter, OrderBy, and SelectExpand, this Limit is more concrete, and will + limit the segments to exactly the number that is specified... i.e. a limit of + 20 will throw if and only if there are more than 20 segments in the path. + + Throws if the input value is negative. + + + + Bind an entire Uri to Metadata. + + + + + The current state of the binding algorithm. + + + + + pointer to the metadata bind method. + + + + + Create a new ODataUriSemanticBinder to bind an entire uri to Metadata. + + the current state of the binding algorithm + pointer to the metadata bind method. + + + + Binds a . + + The query descriptor token to bind. + The bound query descriptor. + + + + Bind an inline count option + + The inline count option to bind. + the top level path + an InlineCountKind representing this inline count option + + + + Bind a select and expand option. + + A syntax tree containing the select and expand options to bind + the top level path + The configuration to use for binding. + a select expand clause bound to metadata + + + + Bind a top option + + a syntax tree containing the top option to bind + the range variable that iterates over the top level collection + the top level path + a nullable long representing this top option + + + + Bind a skip option + + a syntax tree containing the skip option + the range variable that iterates over the top level collection + the top level path. + a nullable long representing this skip option + + + + Bind an orderby option + + a syntac tree containing the orderby option + the range variable that iterates over the top level collection + the top level path + an OrderByClause representing this orderby option + + + + Bind a filter option + + a syntactic tree containing the filter option + the range variable that iterates over the top level collection. + A filter clause representing this filter option + + + + Helper class to help bind function overloads. + This is shared between path and filter/orderby function resolution. + + + + + Given a list of possible functions and a list of parameter names, choose a single function that exactly matches + the parameter names. If more than one function matches, throw. + + + Binding parameters will be ignored in this method. Only non-binding parameters are matched. + + The list of function imports to search. + The list of non-binding parameter names to match. + Name of the function. Only used for error strings. + A single function import that matches the parameter names exactly. + + + + Try to resolve a function from the given inputs. + + The identifier of the function that we're trying to find + the names of the parameters to search for. + the type of the previous segment + the model to use to look up the function import + The single matching function found. + True if a function was matched, false otherwise. Will throw if the model has illegal function imports. + + + + Add semantic meaning to a Select or Expand token. + + + + + Add semantic meaning to a Select or Expand Token + + the top level entity type. + the top level entity set + the syntactically parsed expand token + the syntactically parsed select token + The configuration to use for parsing. + A select expand clause bound to metadata. + + + + Node to represent a function call that returns a Collection + + + + + Base class for all semantic metadata bound nodes which represent a composable collection of values. + + + + + The resouce type of a single item from the collection represented by this node. + + + + + The type of the collection represented by this node. + + + + + Gets the kind of this node. + + + + + the name of this function + + + + + the list of function imports + + + + + the list of parameters provided to this function + + + + + the individual item type returned by this function + + + + + the collection type returned by this function + + + + + The semantically bound parent of this function. + + + + + Creates a CollectionFunctionCallNode to represent a function call that returns a collection + + The name of this function. + the list of function imports that this node should represent. + the list of already bound parameters to this function + the type of the collection returned by this function. + The parent of this CollectionFunctionCallNode. + Throws if the provided name is null. + Throws if the provided collection type reference is null. + Throws if the element type of the provided collection type reference is not a primitive or complex type. + + + + Accept a that walks a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + Throws if the input visitor is null. + + + + Gets the name of this function. + + + + + Gets the list of function imports represeted by this node + + + + + Gets the list of parameters to this function + + + + + Gets the individual item type returned by this function + + + + + The type of the collection represented by this node. + + + + + Gets the semantically bound parent node of this CollectionFunctionCallNode. + + + + + Gets the kind of this node. + + + + + Translator that determines the entity set of a segment. + + + + + Translator interface for walking the Syntactic Tree. + + Generic type produced by the translator. + + + + Translate a TypeSegment + + the segment to Translate + Defined by the implementer + + + + Translate a NavigationPropertySegment + + the segment to Translate + Defined by the implementer. + + + + Translate an EntitySetSegment + + the segment to Translate + Defined by the implementer. + + + + Translate a KeySegment + + the segment to Translate + Defined by the implementer. + + + + Translate a PropertySegment + + the segment to Translate + Defined by the implementer. + + + + Translate a OperationSegment + + the segment to Translate + Defined by the implementer. + + + + Translate an OpenPropertySegment + + the segment to Translate + Defined by the implementer. + + + + Translate a CountSegment + + the segment to Translate + Defined by the implementer. + + + + Visit a NavigationPropertyLinkSegment + + the segment to Translate + Defined by the implementer. + + + + Translate a ValueSegment + + the segment to Translate + Defined by the implementer. + + + + Translate a BatchSegment + + the segment to Translate + Defined by the implementer. + + + + Translate a BatchReferenceSegment + + the segment to Translate + Defined by the implementer. + + + + Translate a MetadataSegment + + the segment to Translate + Defined by the implementer. + + + + Determine the EntitySet of a NavigationPropertyLinkSegment + + The NavigationPropertyLinkSegment to look in. + The IEdmEntitySet of this NavigationPropertyLinkSegment + Throws if the input segment is null. + + + + Determine the EntitySet of a TypeSegment + + The TypeSegment to look in. + The IEdmEntitySet of this TypeSegment + Throws if the input segment is null. + + + + Determine the EntitySet of a NavigationPropertySegment + + The NavigationPropertySegment to look in. + The IEdmEntitySet of this NavigationPropertySegment + Throws if the input segment is null. + + + + Determine the EntitySet of an EntitySetSegment + + The EntitySetSegment to look in. + The IEdmEntitySet of this EntitySetSegment + Throws if the input segment is null. + + + + Determine the EntitySet of a KeySegment + + The KeySegment to look in. + The IEdmEntitySet of this KeySegment + Throws if the input segment is null. + + + + Determine the EntitySet of a PropertySegment + + The PropertySegment to look in. + null, since a property doesn't necessarily have an entity set + Throws if the input segment is null. + + + + Determine the EntitySet of an OperationSegment + + The OperationSegment to look in. + The IEdmEntitySet of this OperationSegment + Throws if the input segment is null. + + + + Determine the EntitySet of a CountSegment + + The CountSegment to look in. + null, since $count doesn't have an entitySet + Throws if the input segment is null. + + + + Determine the EntitySet of a OpenPropertySegment + + The OpenPropertySegment to look in. + null, since an OpenProperty doesn't have an entity set + Throws if the input segment is null. + + + + Determine the EntitySet of a ValueSegment + + The ValueSegment to look in. + null, since $value doesn't have an entity set + Throws if the input segment is null. + + + + Determine the EntitySet of a BatchSegment + + The BatchSegment to look in. + null, since $batch doesn't have an entity set + Throws if the input segment is null. + + + + Determine the EntitySet of a BatchReferenceSegment + + The BatchReferenceSegment to look in. + The IEdmEntitySet of this BatchReferenceSegment + Throws if the input segment is null. + + + + Determine the EntitySet of a MetadataSegment + + The MetadataSegment to look in. + null, since $batch doesn't have an entity set + Throws if the input segment is null. + + + + Build a semantic tree for Expand based on an Expand syntactic tree. + + + + + The configuration used for binding. + + + + + The entity set at the current level expand. + + + + + The entity type at the current level expand. + + + + + Constructs a new ExpandBinder. + + The configuration used for binding. + The entity type of the top level expand item. + The entity set of the top level expand item. + + + + Visit an ExpandToken + + the token to visit + a SelectExpand clause based on this ExpandToken + + + + Generate a SubExpand based on the current nav property and the curren token + + the current navigation property + the current token + a new SelectExpand clause bound to the current token and nav prop + + + + Decorate an expand tree using a select token. + + the already built sub expand + the current navigation property + the select token to use + A new SelectExpand clause decorated with the select token. + + + + Build a expand clause for a nested expand. + + A new SelectExpandClause. + + + + Generate an expand item based on an ExpandTermToken + + the expandTerm token to visit + the expand item for this expand term token. + + + + Build a new MetadataBinder to use for expand options. + + The entity set being expanded. + A new MetadataBinder ready to bind a Filter or Orderby clause. + + + + The model used for binding. + + + + + The top level entity type. + + + + + The top level entity set for this level. + + + + + The settings to use when binding. + + + + + The configuration used for binding. + + + + + Build an ExpandBinder based on global settings + + + + + Build an ExpandBinder based on global settings + + The entity type of the top level expand item. + The entity set of the top level expand item. + The configuration to use for binding. + An ExpandBinder strategy based on the global settings + + + + ExpandOption variant of an ExpandBinder, where the default selection item for a given level is based on the select at that level + instead of the top level select clause. If nothing is selected for a given expand in the ExpandOption syntax, then we by default + select all from that item, instead of selecting nothing (and therefore pruning the expand off of the tree). + + + + + Build the ExpandOption variant of an ExpandBinder + + The configuration used for binding. + The entity type of the top level expand item. + The entity set of the top level expand item. + + + + Generate a SubExpand based on the current nav property and the curren token + + the current navigation property + the current token + a new SelectExpand clause bound to the current token and nav prop + + + + Decorate an expand tree using a select token. + + the already built sub expand + the current navigation property + the select token to use + A new SelectExpand clause decorated with the select token. + + + + Object that knows how to parse a single term within a select expression. That is, a path to a property, + a wildcard, operation name, etc. + + + + + Object that knows how to parse a single term within a select expression. That is, a path to a property, + a wildcard, operation name, etc. + + + + + Interface for the SelectExpandTermParsing strategy + + + + + Parses a full $select expression. + + The lexical token representing the select. + + + + Parses a full $expand expression. + + The lexical token representing the select. + + + + Parses a single term in a comma seperated list of things to select. + + is this an inner or outer select term + A token representing thing to select. + + + + Parses a single term in a comma seperated list of things to expand. + + is this an inner or outer term. + A token representing thing to expand. + + + + Lexer used to parse an expression. + + + + + are we parsing select. + + + + + the maximum allowable recursive depth. + + + + + The current recursion depth. + + + + + Create a SelectExpandTermParser + + the clause to parse + the maximum recursive depth + + + + Parses a full $select expression. + + The lexical token representing the select. + + + + Parses a full $expand expression. + + The lexical token representing the select. + + + + Parses a single term in a comma seperated list of things to select. + + is this an inner or outer select term + A token representing thing to select. + + + + Parses a single term in a comma seperated list of things to expand. + + is this an inner or outer term. + A token representing thing to expand. + + + + Build the list of expand options + Depends on whether options are allowed or not. + + is this an inner expand term + the current level token, as a PathToken + An expand term token based on the path token. + + + + determine whether we're at the end of a select or expand term + + flag to indicate whether this is an outer or inner select. + true if we are not at the end of a select term. + + + + Parses a select or expand term into a query token + + parsed query token + + + + Uses the ExpressionLexer to visit the next ExpressionToken, and delegates parsing of segments, type segments, identifiers, + and the star token to other methods. + + Previously parsed QueryToken, or null if this is the first token. + A parsed QueryToken representing the next part of the expression. + + + + Parses a segment; a expression that is followed by a slash. + + The parent of the segment node. + The lexical token representing the segment. + + + + Marks the fact that a recursive method was entered, and checks that the depth is allowed. + + + + + Marks the fact that a recursive method is leaving. + + + + + The maximum recursive depth. + + + + + Build the ExpandOption strategy. + + the clause to parse + max recursive depth + + + + Build the list of expand options + Depends on whether options are allowed or not. + + is this an inner expand term + the current level token, as a PathToken + An expand term token based on the path token, and all available expand options. + + + + determine whether we're at the end of a select or expand term + + flag to indicate whether this is an outer or inner select. + true if we are not at the end of a select term. + + + + Read a query option from the lexer. + + the query option as a string. + + + + Translator from the old expand syntax tree to the new Expand Option syntax tree + + + + + Normalize an expand syntax tree into the new ExpandOption syntax. + + the tree to normalize + a new tree, in the new ExpandOption syntax + + + + Invert the all of the paths in an expandToken, such that they are now in the same order as they are present in the + base url + + the tree to invert paths on + a new tree with all of its paths inverted + + + + Collapse all redundant terms in an expand tree + + the tree to collapse + A new tree with all redundant terms collapsed. + + + + Expand all the PathTokens in a particular term into their own separate terms. + + the term to expand + a new ExpandTermToken with each PathToken at its own level. + + + + add a new expandTermToken into an exisiting token, adding any additional levels and trees along the way. + + the exisiting (already expanded) token + the new (already expanded) token + the combined token, or, if the two are mutually exclusive, the same tokens + + + + Combine the child nodes of twoExpandTermTokens into one list of tokens + + the existing token to to + the new token containing terms to add + a combined list of the all child nodes of the two tokens. + + + + Add child options to a new dictionary + + the token with child nodes to add to the dictionary + dictionary to add child nodes to + + + + Adds the expand token to the dictionary or combines it with an existing or combines it with another existing token with an equivalent path. + + The combined terms dictionary. + The expanded term to add or combine. + + + + A set of extensions to for parsing literals. + + + + + Returns whether the is a primitive literal type: + Binary, Boolean, DateTime, Decimal, Double, Guid, In64, Integer, Null, Single, or String. + Internal for test use only + + InternalKind of token. + Whether the is a literal type. + + + Reads the next token, checks that it is a literal token type, converts to to a Common Language Runtime value as appropriate, and returns the value. + The expression lexer. + The value represented by the next token. + + + + Parses null literals. + + The expression lexer. + The literal token produced by building the given literal. + + + + Parses typed literals. + + The expression lexer. + Expected type to be parsed. + The literal token produced by building the given literal. + + + + Parses a literal. + Precondition: lexer is at a literal token type: Boolean, DateTime, Decimal, Null, String, Int64, Integer, Double, Single, Guid, Binary. + + The expression lexer. + The literal query token or null if something else was found. + + + + Utilities needed by which are relatively simple and standalone. + + + + Suffix for single literals. + + + Suffix for single literals. + + + Whether the specified token identifier is a numeric literal. + Token to check. + true if it's a numeric literal; false otherwise. + + + + Checks if the is INF or NaN. + Internal for testing only. + + Input token. + true if match found, false otherwise. + + + + Checks whether equals to 'INF' + Internal for testing only + + Text to look in. + true if the substring is equal using an ordinal comparison; false otherwise. + + + + Checks if the is INFf/INFF or NaNf/NaNF. + Internal for testing only. + + Input token. + true if match found, false otherwise. + + + + Checks whether EQUALS to 'INFf' or 'INFF'. + Internal for testing only. + + Text to look in. + true if the substring is equal using an ordinal comparison; false otherwise. + + + + Class responsible for binding a syntactic filter expression into a bound tree of semantic nodes. + + + + + Method to use to visit the token tree and bind the tokens recursively. + + + + + State to use for binding. + + + + + Creates a FilterBinder. + + Method to use to visit the token tree and bind the tokens recursively. + State to use for binding. + + + + Binds the given filter token. + + The filter token to bind. + A FilterNode with the given path linked to it (if provided). + + + + Class that knows how to bind function call tokens. + + + + + Method to use for binding the parent node, if needed. + + + + + The names of functions that we don't bind to BuiltInFunctions + + + + + Constructs a FunctionCallBinder with the given method to be used binding the parent token if needed. + + Method to use for binding the parent token, if needed. + + + + Promotes types of arguments to match signature if possible. + + The signature to match the types to. + The types to promote. + + + + Checks that all arguments are SingleValueNodes + + The name of the function the arguments are from. + The arguments to validate. + Returns the types of the arguments provided. + + + + Finds the signature that best matches the arguments + + The name of the function + The types of the arguments + The signatures to match against + Returns the matching signature or throws + + + + Finds all signatures for the given function name. + + The function to get the signatures for. + The signatures which match the supplied function name. + + + + Binds the token to a SingleValueFunctionCallNode + + Token to bind + The current state of the binding algorithm + The resulting SingleValueFunctionCallNode + + + + Try to bind an end path token as a function call. Used for bound functions without parameters + that parse as end path tokens syntactically + + the end path token to bind + the parent node to this end path token. + the current state of the binding algorithm + a single value function call node representing the function call, if it exists + true if we found a function for this token, false otherwise. + + + + Try to bind an inner path token as a function call. Used for bound functions without parameters + that parse as inner path tokens syntactically + + the end path token to bind + the parent node to this end path token. + the current state of the binding algorithm + a single value function call node representing the function call, if it exists + true if we found a function for this token, false otherwise. + + + + Try to bind a as a function call. Used for container qualified functions without parameters. + + the dotted identifier token to bind + the semantically bound parent node for this dotted identifier + the current stat of the binding algorithm + a single value function call node representing the function call, if we found one. + true if we found a function for this token, false otherwise. + + + + Bind this function call token as a built in function + + the function call token to bidn + the current state of the binding algorithm + list of semantically bound arguments + A function call node bound to this function. + + + + Try to bind an identifier to a FunctionCallNode + + the identifier to bind + the semantically bound list of arguments. + a semantically bound parent node. + the current state of the binding algorithm + a single value function call node representing this funciton call, if we found one. + true if we found a function for this token. + + + + Determines whether this is a function that we don't bind to a BuiltInFunction + + name of the function + true if this is a function that we don't bind + + + + Build a SingleValueFunctionCallNode for a function that isn't bound to a BuiltInFunction + + original query token for this function + list of already bound query nodes for this function + The current state of the binding algorithm. + A single value function call node bound to this function. + + + + Validate the args list (adding the implicit range variable if necessary), and determine the correct return type for a cast function + + current binding state, used to get the implicit range variable if necessary + list of arguments, could be changed + the return type from this cast function + + + + Validate the arguments (adding the implicit range variable if necessary), and determine the correct return type + for an IsOf function + + the current state of the binding algorithm, used to get the implicit range variable if necessary + current list of args, can be changed + the correct return type for this function. + + + + Validate the arguments to either isof or cast + + the current state of the binding algorithm + flag to indicate which function we're validating + the list of arguments, which could be changed + the return type of the function. + + + + Try to get an IEdmTypeReference for a given type as a string, returns null if none exists + + the model for validation + the type name to find + an IEdmTypeReference for this type string. + + + + Implementation of IFunctionCallParser that allows functions calls and parses arguments with a provided method. + TODO This inmplementaiton is incomplete. + + + + + Interface for a class that can parse an identifier as a function and return a representitive QueryToken. + + + + + Parses an identifier that represents a function. + + the syntactically bound parent of this identifier. + QueryToken representing this function. + + + + Reference to the lexer. + + + + + Reference to the lexer. + + + + + Method used to parse arguments. + + + + + Create a new FunctionCallParser. + + Lexer positioned at a function identifier. + Method to use for parsing individual arguments in the function. + + + + Parses an identifier that represents a function. + + Token for the parent of the function being parsed. + QueryToken representing this function. + + + + Parses argument lists. + + The lexical tokens representing the arguments. + + + + Parses comma-separated arguments. + + + Arguments can either be of the form a=1,b=2,c=3 or 1,2,3. + They cannot be mixed between those two styles. + + The lexical tokens representing the arguments. + + + + Read the list of arguments as a set of positional values + + A list of FunctionParameterTokens representing each argument + + + + Try to read the list of arguments as a set of named values + + the parsed list of arguments + true if the arguments were successfully read. + + + + Reference to the lexer. + + + + + Class that knows how to parse an identifier using an ExpressionLexer that is appropriately positioned. + + + + + Reference to the lexer. + + + + + parameters from the expression parser + + + + + Object to handle the parsing of things that look like function calls. + + + + + Parse an Identifier into the right QueryToken + + parameters passed in to the UriQueryExpressionParser + Object to use to handle parsing function calls. + + + + Parses identifiers. + + the syntactically bound parent of this identifier. + The lexical token representing the expression. + + + + Parses member access. + + Instance being accessed. + The lexical token representing the expression. + + + + Parses * (all member) access at the beginning of a select expression. + + Instance being accessed. + The lexical token representing the expression. + + + Creates an exception for a parse error. + Message text. + A new Exception. + + + + Visitor interface for walking the Path Tree. + + Return type for the visitor methods on this visitor. + + + + Visit an SystemToken + + The SystemToken to visit + A user defined class + + + + Visit an NonSystemToken + + The NonSystemToken to visit + A user defined class + + + + Visitor interface for walking the Path Tree. + + + + + Visit an SystemToken + + The SystemToken to visit + + + + Visit an NonSystemToken + + The NonSystemToken to visit + + + + Visitor interface for walking the Syntactic Tree. + + Return type for the visitor methods on this visitor. + + + + Visit an AllToken + + The All token to visit + An AllNode bound to this token + + + + Visits an AnyToken + + The Any token to visit + An AnyNode that's bound to this token + + + + Visits a BinaryOperatorToken + + The Binary operator token to visit. + A BinaryOperatorNode thats bound to this token + + + + Visits a DottedIdentifierToken + + The DottedIdentifierToken to visit + Either a SingleEntityCastNode, or EntityCollectionCastNode bound to this DottedIdentifierToken + + + + Visits an ExpandToken + + The ExpandToken to visit + A QueryNode bound to this ExpandToken + + + + Visits an ExpandTermToken + + The ExpandTermToken to visit + A QueryNode bound to this ExpandTermToken + + + + Visits a FunctionCallToken + + The FunctionCallToken to visit + A SingleValueFunctionCallNode bound to this FunctionCallToken + + + + Visits a LambdaToken + + The LambdaToken to visit + A LambdaNode bound to this LambdaToken + + + + Visits a LiteralToken + + LiteralToken to visit + A ConstantNode bound to this LiteralToken + + + + Visits a InnerPathToken + + The InnerPathToken to bind + A SingleValueNode or SingleEntityNode bound to this InnerPathToken + + + + Visits an OrderByToken + + The OrderByToken to bind + An OrderByClause bound to this OrderByToken + + + + Visits a EndPathToken + + The EndPathToken to bind + A PropertyAccessNode bound to this EndPathToken + + + + Visits a CustomQueryOptionToken + + The CustomQueryOptionToken to bind + A CustomQueryOptionNode bound to this CustomQueryOptionToken + + + + Visits a RangeVariableToken + + The RangeVariableToken to bind + An Entity or NonEntity RangeVariableReferenceNode bound to this RangeVariableToken + + + + Visits a SelectToken + + The SelectToken to bind + A QueryNode bound to this SelectToken + + + + Visits a StarToken + + The StarToken to bind + A QueryNode bound to this StarToken + + + + Visits a UnaryOperatorToken + + The UnaryOperatorToken to bind + A UnaryOperatorNode bound to this UnaryOperatorToken + + + + Visits a FunctionParameterToken + + The FunctionParameterTokenb to bind + A FunctionParametertoken bound to this UnaryOperatorToken + + + + Class that knows how to bind key values. + + + + + Method to bind the value of a key. + TODO Make it of return type SingleValueQueryNode. + + + + + Constructs a KeyBinder object using the given function to bind key values. + + Method to call to bind a value in a key. + + + + Binds key values to a key lookup on a collection. + + Already bound collection node. + The named value tokens to bind. + The bound key lookup. + + + + Binds a key property value. + + The named value to bind. + The type of a single item in a collection to apply the key value to. + The bound key property value node. + + + Provides a class used to represent a key for a resource. + + Internally, every key instance has a collection of values. These values + can be named or positional, depending on how they were specified + if parsed from a URI. + + + + Empty key singleton. + + + Named values. + + + Positional values. + + + Whether or not the key was formatted as a segment. + + + Initializes a new empty instance. + + + Initializes a new instance. + Named values. + Positional values for this instance. + Whether or not the key was formatted as a segment. + + One of namedValues or positionalValues should be non-null, but not both. + + + + Attempts to parse key values from the specified text. + Text to parse (not null). + After invocation, the parsed key instance. + + true if the key instance was parsed; false if there was a + syntactic error. + + + The returned instance contains only string values. To get typed values, a call to + TryConvertValues is necessary. + + + + + Creates a key instance from the given raw segment text with a single positional value. + + The segment text. + A key instance with the given segment text as its only value. + + + Attempts to parse nullable values (only positional values, no name-value pairs) from the specified text. + Text to parse (not null). + After invocation, the parsed key instance. + + true if the given values were parsed; false if there was a + syntactic error. + + + The returned instance contains only string values. To get typed values, a call to + TryConvertValues is necessary. + + + + Tries to convert values to the keys of the specified type. + The key properties to use for the conversion. + The converted key-value pairs. + true if all values were converted; false otherwise. + + + + Try to convert a value into an EDM primitive type + + the type to convert to + the value to convert + The converted value, if conversion succeeded. + true if the conversion was successful. + + + Attempts to parse key values from the specified text. + Text to parse (not null). + Set to true if the parser should accept named values + so syntax like Name='value'. If this is false, the parsing will fail on such constructs. + Set to true if the parser should accept null values. + If set to false, the parser will fail on null values. + After invocation, the parsed key instance. + + true if the key instance was parsed; false if there was a + syntactic error. + + + The returned instance contains only string values. To get typed values, a call to + TryConvertValues is necessary. + + + + Creates a new instance if the specified value is null. + Type of variable. + Current value. + + + Whether the values have a name. + + + Checks whether this key has any values. + + + Returns a dictionary of named values when they AreValuesNamed is true. + + + Returns a list of values when they AreValuesNamed is false. + + + Number of values in the key. + + + + Class that knows how to bind a LambdaToken. + + + + + Method used to bind a parent token. + + + + + Constructs a LambdaBinder. + + Method used to bind a parent token. + + + + Binds a LambdaToken to metadata. + + Token to bind. + Object to hold the state of binding. + A metadata bound any or all node. + + + + Bind the parent of the LambdaToken + + the parent token + the bound parent node + + + + Bind the expression of the LambdaToken + + the expression token + the bound expression node + + + + Class that knows how to bind literal values. + + + + + Binds a literal value to a ConstantNode + + Literal token to bind. + Bound query node. + + + Use this class to parse literals from keys, etags, skiptokens, and filter/orderby expression constants. + + + + Default singleton instance of the literal parser. + + + + + Singleton instance of the literal parser for when keys-as-segments is turned on, which does not wrap the formatted strings in any quotes or type-markers. + + + + + Mapping between primitive CLR types and lightweight parser classes for that type. + + + + + Gets the literal parser for keys, based on whether the keys are formatted as segments. + + Whether or not the keys is formatted as a segment. + The literal parser to use. + + + Converts a string to a primitive value. + Type to convert string to. + String text to convert. + After invocation, converted value. + true if the value was converted; false otherwise. + + + + Gets the literal parser to use for ETags. + + + + + Default literal parser which has type-markers and single-quotes. Also supports arbitrary literals being re-encoded in binary form. + + + + Converts a string to a primitive value. + Type to convert string to. + String text to convert. + After invocation, converted value. + true if the value was converted; false otherwise. + + + + Tries to parse the literal by first removing required formatting for the expected type, then converting the resulting string. + + String text to convert. + Type to convert string to. + After invocation, converted value. + true if the value was converted; false otherwise. + + + + Simplified literal parser for keys-as-segments which does not expect type-markers, single-quotes, etc. Does not support re-encoding literals as binary. + + + + Converts a string to a primitive value. + Type to convert string to. + String text to convert. + After invocation, converted value. + true if the value was converted; false otherwise. + + + + If the string starts with '$', removes it. + Also asserts that the 2nd character is also '$', as otherwise the string would be treated as a system segment. + + The text. + The string value with a leading '$' removed, if the string started with one. + + + + Helper class for parsing a specific type of primitive literal. + + + + XML whitespace characters to trim around literals. + + + + The expected prefix for the literal. Null indicates no prefix is expected. + + + + + The expected suffix for the literal. Null indicates that no suffix is expected. + + + + + Whether or not the suffix is required. + + + + + The expected type for this parser. + + + + + Initializes a new instance of the class. + + The expected type for this parser. + The expected suffix for the literal. Null indicates that no suffix is expected. + Whether or not the suffix is required. + + + + Initializes a new instance of the class. + + The expected type for this parser. + The expected prefix for the literal. + + + + Initializes a new instance of the class. + + The expected type for this parser. + + + + Tries to convert the given text into this parser's expected type. Conversion only, formatting should already have been removed. + + The text to convert. + The target value. + Whether or not conversion was successful. + + + + Tries to remove formatting specific to this parser's expected type. + + The text to remove formatting from. + Whether or not the expected formatting was found and succesfully removed. + + + + Determines whether the values for the specified types should be + quoted in URI keys. + + Type to check. + + true if values of require quotes; false otherwise. + + + + + Check and strip the input for literal + + The suffix value + The string to check + A string that has been striped of the suffix + + + + Primitive parser which uses a delegate for conversion. + + The expected CLR type when parsing. + + + + The delegate to use for conversion. + + + + + Initializes a new instance of the class. + + The delegate to use for conversion. + The expected suffix for the literal. Null indicates that no suffix is expected. + Whether or not the suffix is required. + + + + Prevents a default instance of the class from being created. + + The delegate to use for conversion. + + + + Prevents a default instance of the class from being created. + + The delegate to use for conversion. + The expected prefix for the literal. + + + + Creates a primitive parser which wraps the given delegate and does not expect any extra markup in serialized literal. + + The delegate to use for conversion. + A new primitive parser. + + + + Creates a primitive parser which wraps the given delegate and expects serialized literals to start with one of the given prefixes. + + The delegate to use for conversion. + The expected prefix for the literal. + A new primitive parser. + + + + Creates a primitive parser which wraps the given delegate and expects serialized literals to end with the given suffix. + + The delegate to use for conversion. + The expected suffix for the literal. Null indicates that no suffix is expected. + A new primitive parser. + + + + Creates a primitive parser which wraps the given delegate and expects serialized literals to end with the given suffix. + + The delegate to use for conversion. + The expected suffix for the literal. Null indicates that no suffix is expected. + Whether or not the suffix is required. + A new primitive parser. + + + + Tries to convert the given text into this parser's expected type. Conversion only, formatting should already have been removed. + + The text to convert. + The target value. + + Whether or not conversion was successful. + + + + + Parser specific to the Edm.Decimal type. + + + + + Initializes a new instance of the class. + + + + + Special helper to convert a string to a decimal that will allow more than what XmlConvert.ToDecimal supports by default. + + The text to convert. + The converted decimal value. + + + + Parser specific to the Edm.Binary type. + + + + + Initializes a new instance of the class. + + + + + Tries to convert the given text into this parser's expected type. Conversion only, formatting should already have been removed. + + The text to convert. + The target value. + + Whether or not conversion was successful. + + + + + Tries to remove formatting specific to this parser's expected type. + + The text to remove formatting from. + + Whether or not the expected formatting was found and succesfully removed. + + + + Returns the 4 bits that correspond to the specified character. + Character in the 0-F range to be converted. + The 4 bits that correspond to the specified character. + Thrown when 'c' is not in the '0'-'9','a'-'f' range. + + + + Parser specific to the Edm.String type. + + + + + Initializes a new instance of the class. + + + + + Tries to convert the given text into this parser's expected type. Conversion only, formatting should already have been removed. + + The text to convert. + The target value. + + Whether or not conversion was successful. + + + + + Tries to remove formatting specific to this parser's expected type. + + The text to remove formatting from. + + Whether or not the expected formatting was found and succesfully removed. + + + + + Helper methods for metadata binding. + + + + + If the source node is not of the specified type, then we check if type promotion is possible and inject a convert node. + If the source node is the same type as the target type (or if the target type is null), we just return the source node as is. + + The source node to apply the convertion to. + The target primitive type. May be null - this method will do nothing in that case. + The converted query node, or the original source node unchanged. + + + + Retrieves type associated to a segment. + + The node to retrive the type from. + The type of the node, or item type for collections. + + + + Retrieves the type reference associated to a segment. + + The node to retrive the type reference from. + The Type reference of the node (item type reference for collections). + + + + Class to provide methods that wrap EdmLib calls that are normally not allows in ODataLib, but + are OK in the Uri Parser. These are OK to suppress because the Uri Parser + does not need to go through the behavior knob that the ODL reader/writer does. + This should only be used by the Uri Parser. + + + + + Wraps a call to IEdmModel.FindType. + + The model to search. + The qualified name of the type to find within the model. + The requested type, or null if no such type exists. + + + + Wraps call to FindTypeFromModel for a Collection type. + + the model to search + the name to find within the model + a type reference to the collection type, or null if no such type exists. + + + + Wraps a call to IEdmFunctionImport.ReturnType. + + The function import containing the return type. + Gets the return type of this function. + + + + Wraps a call to IEdmEntitySet.ElementType. + + The EntitySet to containing the element type. + The entity type contained in this entity set. + + + + Wraps a call to IEdmFunctionParameter.Type. + + The IEdmFunctionParameter containing the typ[e. + The type of this function parameter. + + + + Check whether the parent and child are properly related types + + the parent type + the child type + Throws if the two types are not related. + + + + Follow an ODataPath from an Expand to get the Final Nav Prop + + the path to follow + the navigation property at the end of that path. + Throws if the last segment in the path is not a nav prop. + + + + Follow an ODataPath from to get the most derived type + + the path to follow + the starting type before beginning to walk the path. + the most derived type in the path. + + + + Is this token a container + + the containerIdentifier of the container to find + which model to search + the container we found, if we found one + true if we find a container, false otherwise + + + + Returns true if this type is an EntityCollection + + The type to check + true if the type is an entity collection + + + + Checks whether all function imports have the same return type + + the list to check + true if the list of function imports all have the same return type + + + + Is this a valid binding type. i.e. is this an entity, entity colleciton, or complex type. + + the binding type + true if this binding type is valid + + + + NonOption variant of an ExpandBinder, where the default selection at each level is based on the top level select + clause. If that top level select is not populated, then we select all from this level, instead of selecting nothing. + + + + + Build the NonOption variant of an ExpandBinder + + The configuration used for binding. + The entity type of the top level expand item. + The entity set of the top level expand item. + + + + Generate a SubExpand based on the current nav property and the curren token + + the current navigation property + the current token + a new SelectExpand clause bound to the current token and nav prop + + + + Decorate an expand tree using a select token. + + the already built sub expand + the current navigation property + the select token to use + A new SelectExpand clause decorated with the select token. + + + + Object that knows how to parse a single term within a select expression. That is, apath to a property, + a wildcard, operation name, etc. + + + + + Build the NonOption strategy. + + the clause to parse + max recursive depth + + + + Build the list of expand options + Depends on whether options are allowed or not. + + is this an inner expand term + the current level token, as a PathToken + An expand term token based on the path token. + + + + determine whether we're at the end of a select or expand term + + flag to indicate whether this is an outer or inner select. + true if we are not at the end of a select term. + + + + Class responsible for binding a InnerPathToken into: + 1. SingleNavigationNode + 2. CollectionNavigationNode + 3. SinglePropertyAccessNode (complex) + 4. CollectionPropertyAccessNode (primitive | complex) + 5. KeyLookupNode + 6. SingleValueFunctionCallNode + 7. SingleEntityFunctionCallNode + + TODO The binder does support key lookup on collection navigation properties, however at this time + the synctactic parser does not set things up correctly to allow end-to-end scenarios to work. + + + + Bind method to use for binding a parent node, if needed. + + + + + Constructs a InnerPathTokenBinder. + + Bind method to use for binding a parent node, if needed. + + + + Ensures that the parent node is of entity type, throwing if it is not. + + Parent node to a navigation property. + The given parent node as a SingleEntityNode. + + + + Given a property name, if the associated type reference is strucutred, then this returns + the property of the structured type. Otherwise, it returns null. + + The parent type to be used to find binding options. + The string designated the property name to be bound. + The property associated with string and parent type. + + + + Builds an appropriate navigation query node (collection or single) for the given property and parent node. + + Navigation property. + Parent Node. + Named values (key values) that were included in the node we are binding, if any. + State of binding. + Object to perform binding on any key values that are present. + A new CollectionNavigationNode or SingleNavigationNode to capture the navigation propety access. + + + + Binds a . + This includes more than just navigations - it includes complex property access and primitive collections. + + The segment token to bind. + The state of binding. + The bound node. + + + + Determines the parent node. If the token has a parent, that token is bound. If not, then we + use the implicit parameter from the BindingState as the parent node. + + Token to determine the parent node for. + Current state of binding. + A SingleValueQueryNode that is the parent node of the . + + + + Factory class to build IParameterQueryNodes. + + + + + Creates a for an implicit parameter ($it) from an . + + that the range variable is iterating over. + A new . + + + + Creates a ParameterQueryNode for an implicit parameter ($it). + + Element type the parameter represents. + Entity Set. May be null and must be null for non entities. + A new IParameterNode. + + + + Creates a RangeVariableReferenceNode for a given range variable + + Name of the rangeVariable. + A new SingleValueNode (either an Entity or NonEntity RangeVariableReferenceNode. + + + + Creates a ParameterQueryNode for an explicit parameter. + + Name of the parameter. + CollectionNode that the parameter is iterating over. + A new RangeVariable. + + + + Creates an AnyNode or an AllNode from the given + + State of binding. + Parent node to the lambda. + Bound Lambda expression. + The new range variable being added by this lambda node. + Token kind. + A new LambdaNode bound to metadata. + + + + Handler interface for walking the path semantic tree. + + + + + Handle a TypeSegment + + the segment to Handle + + + + Handle a NavigationPropertySegment + + the segment to Handle + + + + Handle an EntitySetSegment + + the segment to Handle + + + + Handle a KeySegment + + the segment to Handle + + + + Handle a PropertySegment + + the segment to Handle + + + + Handle an OperationSegment + + the segment to Handle + + + + Handle an OpenPropertySegment + + the segment to Handle + + + + Handle a CountSegment + + the segment to Handle + + + + Handle a LinksSegment + + the segment to Handle + + + + Handle a ValueSegment + + the segment to Handle + + + + Handle a BatchSegment + + the segment to Handle + + + + Handle a BatchReferenceSegment + + the segment to Handle + + + + Handle a MetadataSegment + + the segment to Handle + + + + Node to represent a function call that returns a collection of entities. + + + + + Base class for all semantically bound nodes which represent a composable collection of values. + + + + + Get the resouce type of a single entity from the collection represented by this node. + + + + + Get the EntitySet that contains this collection. + + + + + the name of this function. + + + + + list of function imports that this node represents. + + + + + list of parameters provided to this function + + + + + the type a single entity returned by this function + + + + + the type of the collection returned by this function + + + + + the set containing the entities returned by this function. + + + + + The semantically bound parent of this EntityCollectionFunctionCallNode. + + + + + Creates an EntityCollecitonFunctionCallNode to represent a function call that returns a collection of entities. + + The name of this function. + the list of function imports that this node represents. + the list of parameters to this function + the type the entity collection returned by this function. The element type must be an entity type. + the set containing entities returned by this function + the semantically bound parent of this EntityCollectionFunctionCallNode. + Throws if the provided name is null. + Throws if the provided collection type reference is null. + Throws if the element type of the provided collection type reference is not an entity type. + Throws if the input function imports is null + + + + Accept a that walks a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + Throws if the input visitor is null. + + + + Gets the name of this function + + + + + Gets the list of function imports that this node represents. + + + + + Gets the list of parameters provided to this function. + + + + + Gets the individual item type returned by this function. + + + + + The type of the collection represented by this node. + + + + + Gets the individual entity type returned by this function. + + + + + Gets the entity set contaiing the entities returned by this function. + + + + + Gets the semantically bound parent of this function. + + + + + Gets the kind of this node. + + + + + Segment translator to determine whether a given is a collection. + + + + + Translate a NavigationPropertySegment + + the segment to Translate + UserDefinedValue + Throws if the input segment is null. + + + + Translate an EntitySetSegment + + the segment to Translate + UserDefinedValue + Throws if the input segment is null. + + + + Translate a KeySegment + + the segment to Translate + UserDefinedValue + Throws if the input segment is null. + + + + Translate a PropertySegment + + the segment to Translate + UserDefinedValue + Throws if the input segment is null. + + + + Translate an OpenPropertySegment + + the segment to Translate + UserDefinedValue + Throws if the input segment is null. + + + + Translate a CountSegment + + the segment to Translate + UserDefinedValue + Throws if the input segment is null. + + + + Translate a NavigationPropertyLinkSegment + + the segment to Translate + UserDefinedValue + Throws if the input segment is null. + + + + Translate a BatchSegment + + the segment to Translate + UserDefinedValue + Throws if the input segment is null. + + + + Translate a BatchReferenceSegment + + the segment to Translate + UserDefinedValue + Throws if the input segment is null. + + + + Translate a ValueSegment + + the segment to Translate + UserDefinedValue + Throws if the input segment is null. + + + + Translate a MetadataSegment + + the segment to Translate + UserDefinedValue + Throws if the input segment is null. + + + + A segment representing $links or $ref + + + + + The semantic representation of a segment in a path. + + + + Returns the identifier for this segment i.e. string part without the keys. + + + Indicates whether this segment targets a single result or not. + + + The entity set targetted by this segment. Can be null. + + + The type targetted by this segment. Can be null. + + + The kind of resource targeted by this segment. + + + + Creates a new Segment and copies values from another Segment. + + Segment to copy values from. + + + + Creates a new Segment. + + + + + Translate a using an implemntation of. + + Type that the translator will return after visiting this token. + An implementation of the translator interface. + An object whose type is determined by the type parameter of the translator. + + + + Handle a using an implementation of a . + + An implementation of the handler interface. + + + + Check if this segment is equal to another segment. + + the other segment to check + true if the segments are equal. + + + + Copies over all the values of the internal-only properties from one segment to another. + + Ther segment to copy from. + + + + Gets the of this . + + This property can be null. Not all segments have a Type, such as a . + + + Returns the identifier for this segment i.e. string part without the keys. + + + Whether the segment targets a single result or not. + + + The entity set targetted by this segment. Can be null. + + + The type targetted by this segment. Can be null. + + + The kind of resource targeted by this segment. + + + + The navigation property this link or ref acts on. + + + + + Build a segment to represnt $links or $ref on a Nav prop + + The navigaiton property this link or ref acts on + The set of entities linked to by this . This can be null. + Throws if the input navigationProperty is null. + + + + Translate a + + Type that the translator will return after visiting this token. + An implementation of the translator interface. + An object whose type is determined by the type parameter of the translator. + Throws if the input translator is null. + + + + Translate a to walk a tree of s. + + An implementation of the translator interface. + Throws if the input handler is null. + + + + Check if this segment is equal to another. + + The other segment to check. + True if the other segment is equal. + Throws if the input other is null. + + + + Gets the navigation property this link or ref acts on. + + + + + Gets the set of entities linked to by this . + + + + + Gets the of this . + + + + + A specific type of which can only contain instances of or . + + + + + A representation of the path portion of an OData URI which is made up of s. + + + + + The segments that make up this path. + + + + + Creates a new instance of containing the given segments. + + The segments that make up the path. + Throws if input segments is null. + + + + Creates a new instance of containing the given segments. + + The segments that make up the path. + Throws if input segments is null. + + + + Get the segments enumerator + + The segments enumerator + + + + get the segments enumerator + + The segments enumerator. + + + + Walk this path using a translator + + the return type of the translator + a user defined translation path + an enumerable containing user defined objects for each segment + + + + Walk this path using a handler + + the handler that will be applied to each segment + + + + Checks if this path is equal to another path. + + The other path to compare it to + True if the two paths are equal + Throws if the input other is null. + + + + Add a segment to this path. + + the segment to add + Throws if the input newSegment is null. + + + + Gets the first segment in the path. Returns null if the path is empty. + + + + + Get the last segment in the path. Returns null if the path is empty. + + + + + Get the number of segments in this path. + + + + + Create an ODataPath object to represent a path semantically + + The list of segments in the path. + Throws if this list of segments doesn't match the requirements for a $expand + + + + Create an ODataPath object based on a single segment + + A list of segments in the path. + Throws if this list of segments doesn't match the requirements for a $expand + + + + Gets the navigation property for this expand path. + + the navigation property for this expand path. + + + + Ensure that this expand path contains only valid segment types. + + Throws if this list of segments doesn't match the requirements for a $expand + + + + Extension methods for . These method provide convenince functions. + TODO: Implement this class and it's visitors. These are stubs. + + + The values that these methods compute are not cached. + + + + + Computes the of the resource identified by this . + + Path to compute the type for. + The of the resource, or null if the path does not identify a + resource with a type. + + + + Computes the of the resource identified by this . + + Path to compute the set for. + The of the resource, or null if the path does not identify a + resource that is part of a set. + + + + Computes whether or not the resource identified by this is a collection. + + Path to perform the computation on. + True if the resource if a feed or collection of primitive or complex types. False otherwise. + + + Translates from an IPathSegment into an ODataPath + + + + Binds a collection of to metadata, creating a semantic ODataPath object. + + Collection of path segments. + The configuration to use when binding the path. + A semantic object to describe the path. + + + + Main Public API to parse an ODataURI. + + + + + The parser's configuration. + + + + + Build an ODataUriParser + + Model to use for metadata binding. + Absolute URI of the service root. + Throws if input model is null. + Throws if the input serviceRoot is not an AbsoluteUri + + + + Parses a clause on the given , binding + the text into semantic nodes using the provided . + + String representation of the filter expression. + Model to use for metadata binding. + Type that the filter clause refers to. + A representing the metadata bound filter expression. + + + + Parses a clause on the given , binding + the text into semantic nodes using the provided . + + String representation of the filter expression. + Model to use for metadata binding. + Type that the filter clause refers to. + EntitySet that the elements beign filtered are from. + A representing the metadata bound filter expression. + + + + Parses a clause on the given , binding + the text into semantic nodes using the provided . + + String representation of the orderby expression. + Model to use for metadata binding. + Type that the orderby clause refers to. + A representing the metadata bound orderby expression. + + + + Parses a clause on the given , binding + the text into semantic nodes using the provided . + + String representation of the orderby expression. + Model to use for metadata binding. + Type that the orderby clause refers to. + EntitySet that the elements beign filtered are from. + A representing the metadata bound orderby expression. + + + + Parse a filter clause from an instantiated class. + + the filter clause to parse + Type that the select and expand clauses are projecting. + EntitySet that the elements being filtered are from. + A FilterClause representing the metadata bound filter expression. + + + + Parse an orderby clause from an instance of this class + + the orderby clause to parse + Type that the select and expand clauses are projecting. + EntitySet that the elements being filtered are from. + An OrderByClause representing the metadata bound orderby expression. + + + + Parses a into a semantic object. + + + This is designed to parse the Path of a URL. If it is used to parse paths that are contained + within other places, such as $filter expressions, then it may not enforce correct rules. + + The absolute URI which holds the path to parse. + An representing the metadata-bound path expression. + Throws if the serviceRoot member is null, or if the input path is not an absolute uri. + + + + ParseSelectAndExpand from an instantiated class + + the select to parse + the expand to parse + Type that the select and expand clauses are projecting. + EntitySet that the elements being filtered are from. This can be null, if so that null will propagate through the resulting SelectExpandClause. + A SelectExpandClause with the semantic representation of select and expand terms + + + + Parse a full Uri into its contingent parts with semantic meaning attached to each part. + See . + + The full uri to parse. + An representing the full uri. + + + + Parses an inline count option + + The inline count string from the query + An InlineCountKind representing that inline count option. + + + + Parses the full Uri. + + The full uri to parse + An ODataUri representing the full uri + + + + Parses a clause on the given , binding + the text into semantic nodes using the provided. + + String representation of the filter expression. + Type that the filter clause refers to. + EntitySet that the elements beign filtered are from. + A representing the metadata bound filter expression. + + + + Parses a clause on the given , binding + the text into semantic nodes using the provided model. + + String representation of the orderby expression. + Type that the orderby clause refers to. + EntitySet that the elements beign filtered are from. + A representing the metadata bound orderby expression. + + + + Parses the and clauses on the given , binding + the text into a metadata-bound list of properties to be selected using the provided model. + + String representation of the select expression from the URI. + String representation of the expand expression from the URI. + Type that the select and expand clauses are projecting. + EntitySet that the elements being filtered are from. + A representing the metadata bound orderby expression. + + + + Parses an inline count option + + The inline count string from the query + An InlineCountKind representing that inline count option. + Throws if the input inlineCount is not a valid $inlinecount value. + + + + The settings for this instance of . Refer to the documentation for the individual properties of for more information. + + + + + Gets the model for this ODataUriParser + + + + + Gets the absolute URI of the service root. + + + + + Gets or Sets the to use while parsing, specifically + whether to recognize keys as segments or not. + + Throws if the input value is null. + + + + Gets or Sets a callback that returns a BatchReferenceSegment (to be used for $0 in batch) + + + + + Gets or sets a callback that returns the raw string value for an aliased function parameter. + + + + + The exception that is thrown when path parsing detects an unrecognized or unresolvable token in a path (which servers should treat as a 404). + + + + + Exception type representing exceptions in the OData library. + + + + Creates a new instance of the class with default values. + + The Message property is initialized to a system-supplied message + that describes the error. This message takes into account the + current system culture. + + + + Creates a new instance of the class with an error message. + The plain text error message for this exception. + + + Creates a new instance of the class with an error message and an inner exception. + The plain text error message for this exception. + The inner exception that is the cause of this exception to be thrown. + + + Creates a new instance of the class from the specified and instances. + A containing the information required to serialize the new . + A containing the source of the serialized stream associated with the new . + + + + Initializes a new instance of the ODataUnrecognizedPathException class. + + + The Message property is initialized to a system-supplied message + that describes the error. This message takes into account the + current system culture. + + + + + Initializes a new instance of the ODataUnrecognizedPathException class. + + Plain text error message for this exception. + + + + Initializes a new instance of the DataServiceException class. + + Plain text error message for this exception. + Exception that caused this exception to be thrown. + + + Creates a new instance of the class from the specified SerializationInfo and StreamingContext instances. + A SerializationInfo containing the information required to serialize the new ODataUnrecognizedPathException. + A StreamingContext containing the source of the serialized stream associated with the new ODataUnrecognizedPathException. + + + + Component for controlling what convention are used for generating URLs. + + + + Singleton instance of the default conventions. + + + Singleton instance of the key-as-segment conventions. + + + The url convention to use. + + + + Prevents a default instance of the class from being created. + + The url convention to use. + + + + An instance of which uses default URL conventions. Specifically, this instance will produce keys that use parentheses like "Customers('ALFKI')". + + + + + An instance of which uses key-as-segment URL conventions. Specifically, this instance will produce keys that use segments like "Customers/ALFKI". + + + + + Gets the internal representation of the user-specified convention. + + + + + Class to handle the binding of orderby tokens. + + + + + Method to use to visit the token tree and bind the tokens recursively. + + + + + Creates an OrderByBinder + + Method to use to visit the token tree and bind the tokens recursively. + + + + Processes the order-by tokens of a entityCollection (if any). + + State to use for binding. + The order-by tokens to bind. + An OrderByClause representing the orderby statements expressed in the tokens. + + + + Processes the specified order-by token. + + State to use for binding. + The next OrderBy node, or null if there is no orderby after this. + The order-by token to bind. + Returns the combined entityCollection including the ordering. + + + + Set of helpers and extensions to make it easier to convert the semantic path parser + to using and the related classes. + + + + + Returns whether the given type is a structural type that is open. + + The type to check. + Whether the type is both structural and open. + + + + Returns whether or not the type is an entity or entity collection type. + + The type to check. + Whether or not the type is an entity or entity collection type. + + + + Returns whether or not the type is an entity or entity collection type. + + The type to check. + The entity type. If the given type was a collection, this will be the element type. + Whether or not the type is an entity or entity collection type. + + + + Gets the target entity set for the given function import. + + The function import. + The source entity set. + The model. + The target entity set of the function import or null if it could not be determined. + + + + Throws an exception if the given type is an open complex type. + + The type to check. + + + + Reverse a Path + + + + + Visitor interface for walking the Syntactic Tree. + + Generic type produced by the visitor. + + + + Visit an SystemToken + + The System token to visit + A user defined class + + + + Visit an NonSystemToken + + The System token to visit + A user defined class + + + + any children of the root, will always be null on first call + + + + + Build a PathReverser at the top level (with no child token) + + + + + Build a PathReverser based on a child token. + + the new child of this token + + + + Reverse a NonSystemToken + + the non system token to reverse + the reversed NonSystemToken + + + + Reverse a SystemToken + + the SystemToken to reverse + the reversed SystemToken + + + + Build the next level PathReverser + + the next level token + the next levels child token + the path token from the next level. + + + + Equality comparer for . + + + + + Determines whether the two paths are equivalent. + + The first path to compare. + The second path to compare. + Whether the two paths are equivalent. + + + + Returns a hash code for the given path. + + The path to hash. + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Converts the token to a string that is sufficiently unique to be hashed or compared. + + The path token to convert to a string. + A string representing the path. + + + + Visitor interface for walking the Syntactic Tree. + + + + + Visit an SystemToken + + The System token to visit + + + + Visit an NonSystemToken + + The System token to visit + + + + Class that knows how to bind ParameterQueryTokens. + + + + + Binds a parameter token. + + The parameter token to bind. + The state of metadata binding. + The bound query node. + + + + Class that knows how to bind an end path token, which could be several things. + + + + + Method to bind the value of a key. + TODO Make it of return type SingleValueQueryNode. + + + + + The function call binder to use to bind this end path to a function if necessary. + + + + + Constructs a EndPathBinder object using the given function to bind parent token. + + Method to bind the EndPathToken's parent, if there is one. + + + + This method generates a for properties of open type + + EndPathToken to bind into an open property node. + Parent node of this open property + Will return a when open types are supported + + + + Generates a bound query node representing an given an already semantically bound parent node. + + The semantically bound source node of this end path token + The that will be bound to this node. Must not be primitive collection + QueryNode bound to this property. + + + + Constructs parent node from binding state + + Current binding state + The parent node. + + + + Binds a an end path token into a PropertyAccessToken, OpenPropertyToken, or FunctionCallToken. + + The property access token to bind. + State of the binding algorithm. + A Query node representing this endpath token, bound to metadata. + + + + Determines the parent node. If the token has a parent, that token is bound. If not, then we + use the implicit parameter from the BindingState as the parent node. + + Token to determine the parent node for. + Current state of binding. + A SingleValueQueryNode that is the parent node of the . + + + + Provides values to describe the kind of thing targetted by a + client request. + + + + Nothing specific is being requested. + + + A top-level directory of service capabilities. + + + Entity Resource is requested - it can be a collection or a single value. + + + A single complex value is requested (eg: an Address). + + + A single value is requested (eg: a Picture property). + + + A single value is requested (eg: the raw stream of a Picture). + + + System metadata. + + + A data-service-defined operation that doesn't return anything. + + + The request is a batch request. + + + An open property is requested. + + + An open property value is requested. + + + A stream property value is requested. + + + A single collection of primitive or complex values is requested. + + + + Semantic parser for the path of the request URI. + + + + + regex pattern to match a contentID + + + + + The queue of segments remaining to be parsed. Should be populated and cleared out on each pass through the main path parsing loop. + + + + + The collection of segments that have been parsed so far. + + + + + The parser's current configuration. + + + + + Indicates that the next segment encountered must refer to something in 'metadata-space' and cannot be a key expression. + + + + + Initializes a new instance of . + + The parser's current configuration. + + + + Extracts the segment identifier and, if there are parenthesis in the segment, the expression in the parenthesis. + Will throw if identifier is not found or if the parenthesis expression is malformed. + + Internal only so it can be called from tests. Should not be used outside . + The segment text. + The identifier that was found. + The query portion that was found. Will be null after the call if no query portion was present. + + + Creates an array for the given . + Segments to process. + Segment information describing the given . + + + + Tries to find a single matching function import for the given identifier, parametes, and binding type. + + The identifier from the URI. + The parenthesis expression contianing parameters, if any. + The current binding type or null if there isn't one. + The configuration of the parser. + The parsed parameters from the parenthesis expression. + The single matching function import if one could be determined. + Whether or not a matching function import could be found. + + + Determines a matching target kind from the specified type. + ResourceType of element to get kind for. + An appropriate for the specified . + + + + Checks for single result, otherwise throws. + + indicates whether the current result is single result or not. + current segment identifier. + + + + Tries to get the next segment's text to parse. + + The segment text to parse. + Whether there was a next segment. + + + + Tries to get the next segment's text to parse. Should not be called except by the other overload which does not have the extra parameter. + + Whether the previous segment was an escape marker. + The segment text to parse. + Whether there was a next segment. + + + + Tries to handle the given text as a key if the URL conventions support it and it was not preceeded by an escape segment. + + The text which might be a key. + Whether or not the text was handled as a key. + + + + Throws if the given segment must be a leaf, as a later segment is being created. + + The previous segment which may need to be a leaf. + + + + Try to handle the segment as $count. + + The segment text to handle. + Whether the segment was $count. + + + + Tries to handle the segment as $links. If it is $links, then the rest of the path will be parsed/validated in this call. + + The text of the segment. + Whether the text was $links. + + + + Tries to bind a key from the parenthetical section of a segment. + + The section of the segment inside parentheses, or null if there was none. + + + + Try to handle the segment as $value. + + The segment text. + Whether the segment was $value. + + + + Creates a new segment for an open property. + + previous segment info. + name of the segment. + whether this segment has a query portion or not. + + + + Creates a named stream segment + + previous segment info. + stream property to create the segment for. + + + Creates the first for a request. + The text of the segment. + + + + Tries to parse the segment as a service operation + + The identifier for the segment. + The query portion + Whether or not the identifier referred to a service operation. + + + + Tries to parse a segment as a function or action. + + The previous segment before the operation to be invoked. + The name of the segment + The query portion + Whether or not the identifier referred to an action. + + + + Creates the next segment. + + The text for the next segment. + + + + Tries to bind the identifier as a property. + + The identifier to bind. + The property, if one was found. + Whether a property matching the identifier was found. + + + + Tries to create a type name segment if the given identifier refers to a known type. + + previous segment info. + The current raw segment identifier being interpreted. + Parenthesis expression of this segment. + Whether or not a type segment was created for the identifier. + + + + Creates a property segment + + previous segment info. + property to create the segment for. + query portion for this segment, if specified. + + + + Component for handling key expressions in URIs. + + + + Tries to create a key segment for the given filter if it is non empty. + Segment on which to compose. + Parenthesis expression of segment. + The key segment that was created if the key was non-empty. + Whether the key was non-empty. + + + + Tries to handle the current segment as a key property value. + + The segment text. + The previous segment. + The current url convention for the server. + The key segment that was created if the segment could be interpreted as a key. + Whether or not the segment was interpreted as a key. + + + + Determines whether the segment text is a system-reserved identifier like $'count'. + + The segment text. + + true if the segment text is a system-reserved identifier like $'count'; otherwise, false. + + + + + Parses the key properties based on the segment's target type, then creates a new segment for the key. + + The segment to apply the key to. + The key to apply. + The newly created key segment. + + + + Builds segments from tokens within $select. + + + + + Build a segment from a token. + + the token to bind + The model. + the entity type of the current scope based on type segments. + The segment created from the token. + + + + Build a wildcard selection item + + the token to bind to a wildcard + the model to search for this wildcard + the new wildcard selection item, if we found one + true if we successfully bound to a wildcard, false otherwise + + + + Tries to bind a given token as an Operation. + + Token to bind. + The model. + the current entity type to use as the binding type when looking for operations. + Bound segment if the token was bound to an operation successfully, or null. + True if the token was bound successfully, or false otherwise. + + + + Tries to bind a given token as an a declared structural or navigation property. + + Token to bind. + the entity type to search for this property + Bound segment if the token was bound to a declared property successfully, or null. + True if the token was bound successfully, or false otherwise. + + + + Build an ISelectExpandTermParser based on settings. + + + + + Build a new ISelectExpandTermParser, either with expand options or without, based on the global settings. + + the select or expand text to parse + pointer to the top level object + A new ISelectExpandTermParser + + + + Build a new ISelectExpandTermParser with default settings + + the clause to parse + A NonOptionSelectExpandTermParser + + + + Polish a combined select expand tree. + + + + + Prune off any unneccessary expands + + the clause to prune + a pruned tree. + + + + Visit a Select property and use it to decorate a SelectExpand Tree + + + + + The model used for binding. + + + + + the maximum recursive depth. + + + + + The expand tree to decorate. + + + + + The entity type for this level of the select + + + + + Build a property visitor to visit the select tree and decorate a SelectExpandClause + + The model used for binding. + The entity type that the $select is being applied to. + the maximum recursive depth. + The already built expand clause to decorate + + + + Visit a System Token + + the system token to visit + + + + Visit a NonSystemToken + + the non sytem token to visit + + + + process a nonsystemtoken as a path, following any type segments if necessary + + the token to process + + + + The expand tree that we're decorating + + + + + Translate a select tree into the right format to be used with an expand tree. + + + + + Normalize a SelectToken into something that can be used to trim an expand tree. + + The select token to normalize + Normalized SelectToken + + + + Class that represents a selection of all properties and functions on an entity. + + + + + Class that specifies what properties and functions have been specified to be selected for a given entity at the current level of the expand tree. + + + + + Singleton instance of . + + + + + Creates the singleton instance of this class. + + + + + A segment representing an alias to another url in a batch. + + + + + The of the resource that this placeholder represents. + + + + + The entity set from the alias. + + + + + The contentId that this alias referrs to. + + + + + Build a BatchReferenceSegment + + The contentId of this segment is referring to + The of the resource that this placeholder represents. + The resulting entity set + Throws if the input edmType of contentID is null. + Throws if the contentID is not in the right format. + + + + Translate this into something else. + + Type that the translator will return after translating this segment. + An implementation of the translator interface. + An object whose type is determined by the type parameter of the translator. + Throws if the input translator is null. + + + + Handle a using an implementation of the interface. + + An implementation of the Handler interface. + Throws if the input Handler is null. + + + + Check if this segment is equal to another segment. + + the other segment to check. + true if the other segment is equal. + + + + Gets the of the resource that this placeholder represents. + + + + + Gets the resulting entity set for this batch reference segment. + + + + + Gets the contentId this alias is referrring to + + + + + A segment representing $batch + + + + + Gets the singleton instance of the batch segment. + + + + + Build a segment to represent $batch. + + + + + Translate a into something else using an implementation of . + + Type that the translator will return after translating this segment. + An implementation of the translator interface. + An object whose type is determined by the type parameter of the translator. + Throws if the input translator is null. + + + + Handle a using an implementation of . + + An implementation of the Handler interface. + Throws if the input handler is null. + + + + Check if this segment is equal to another segment. + + The other segment to check. + True if the other segment is equivalent to this one. + Throws if the input other is null + + + + Gets the of this , which is always null. + + + + + Class to represent the selection of all the actions and functions in a specified container. + + + + + An item that has been selected by the query at the current level of the tree. + + + + + The whose actions and functions should be selected. + + + + + Creates an instance of this class with the specified . + + The whose actions and functions should be selected. + Throws if the input container is null. + + + + Gets the whose actions and functions should be selected. + + + + + A segment representing $count in a path + + + + + Return the singleton instance of Count + + + + + Build a segment representing $count + + + + + Translate a using an instance of . + + Type that the translator will return after visiting this token. + An implementation of the translator interface. + An object whose type is determined by the type parameter of the translator. + Throws if the input translator is null. + + + + Handle a using an instance of . + + An implementation of the handler interface. + Throws if the input handler is null. + + + + Check if this segment is equal to another segment. + + the other segment to check. + true if the other segment is equal. + throws if the input other is null. + + + + Gets the of this , which is always Edm.Int32. + + + + + Class that knows how to resolve an IEdmExpression to find its associated EntitySet. + This functionality is needed to determine what a EntitySets a FunctionImport applies to. + + + + + Resolves an IEdmExpression to an IEdmEntitySet. + + Expression to resolve. + The resolved EntitySet. + + + + A segment representing an EntitySet in a path. + + + + + The entity set represented by this segment. + + + + + Type of the entities in the set represented by this segment. + + + + + Build a segment representing an entity set + + The entity set represented by this segment. + Throws if the input entitySet is null. + + + + Translate an into another type using an instance of . + + Type that the translator will return after visiting this token. + An implementation of the translator interface. + An object whose type is determined by the type parameter of the translator. + Throws if the input translator is null. + + + + Handle an using the an instance of the . + + An implementation of the handler interface. + Throws if the input handler is null. + + + + Check if this segment is equal to another segment. + + the other segment to check. + true if the other segment is equal. + Throws if the input other is null. + + + + Gets the entity set represented by this segment. + + + + + Gets the of this . + This will always be an for the that this set contains. + + + + + This represents one level of expansion for a particular expansion tree. + + + + + The Path for this expand level. + This path includes zero or more type segments followed by exactly one Navigation Property. + + + + + The entity set for this expansion level. + + + + + The filter expand option for this expandItem. Can be null if not specified(and will always be null in NonOptionMode). + + + + + The orderby expand option for this expand item. Can be null if not specified(and will always be null in NonOptionMode). + + + + + the top expand option for this expand item. Can be null if not specified(and will always be null in NonOptionMode). + + + + + The skip option for this expand item. Can be null if not specified(and will always be null in NonOptionMode). + + + + + The inlinecount option for this expand item. Can be null if not specified(and will always be null in NonOptionMode). + + + + + The select that applies to this level, and any sub expand levels below this one. + + + + + Create an Expand item using a nav prop, its entity set and a SelectExpandClause + + the path to the navigation property for this expand item, including any type segments + the entity set for this ExpandItem + This level select and any sub expands for this expand item. + Throws if input pathToNavigationProperty is null. + + + + Create an expand item, using a navigationProperty, its entity set, and any expand options. + + the path to the navigation property for this expand item, including any type segments + the entity set for this expand level. + A filter clause for this expand (can be null) + An Orderby clause for this expand (can be null) + A top clause for this expand (can be null) + A skip clause for this expand (can be null) + An Inlinecount clause for this expand (can be null) + This level select and any sub expands for this expand item. + Throws if input pathToNavigationProperty is null. + + + + Gets the Path for this expand level. + This path includes zero or more type segments followed by exactly one Navigation Property. + + + + + Gets the EntitySet for this level. + + + + + The select and expand clause for this expanded navigation. + + + + + The filter clause for this expand item + + + + + Gets the orderby clause for this expand item. Can be null if not specified(and will always be null in NonOptionMode). + + + + + Gets the top clause for this expand item. Can be null if not specified(and will always be null in NonOptionMode). + + + + + Gets the skip clause for this expand item. Can be null if not specified(and will always be null in NonOptionMode). + + + + + Gets the inlinecount clause for this expand item. Can be null if not specified(and will always be null in NonOptionMode). + + + + + A list of all expanded items at the next level down. + + + + + The list of all expanded items at the next level down. + + + + + Constructor + + The list of all expanded items at the next level down. + + + + The list of all expanded items at the next level down. + + + + + A segment representing a key lookup in a path. + + + + + The set of key property names and the values to be used in searching for the given item. + + + + + The type of the item this key returns. + + + + + The entity set that this key is used to search. + + + + + Construct a Segment that represents a key lookup. + + The set of key property names and the values to be used in searching for the given item. + The type of the item this key returns. + The entity set that this key is used to search. + Throws if the input entity set is not related to the input type. + + + + Translate a using an instance of . + + Type that the translator will return after visiting this token. + An implementation of the translator interface. + An object whose type is determined by the type parameter of the translator. + Throws if the input translator is null. + + + + Handle a using an instance of . + + An implementation of the handler interface. + Throws if the input handler is null. + + + + Check if this segment is equal to another segment. + + the other segment to check. + true if the other segment is equal. + Throws if the input other is null. + + + + Gets the set of key property names and the values to be used in searching for the given item. + + + + + Gets the type of the item this key returns + + + + + Gets the entity set that this key is used to search. + + + + + A segment representing $metadata in a path. + + + + + Gets the singleton instance of MetadataSegment + + + + + Build a segment to represent $metadata + + + + + Translate a . + + Type that the translator will return after visiting this token. + An implementation of the translator interface. + An object whose type is determined by the type parameter of the translator. + Throws if the input translator is null. + + + + Translate a . + + An implementation of the translator interface. + Throws if the input handler is null. + + + + Check if this segment is equal to another. + + the other segment to check. + true if the other segment is equal. + Throws if the input other is null. + + + + Gets the of this , which is always null. + + + + + Class that represents a selecting none of the properties or functions at this level, but there are still relevant expansions in this subtree. + + + + + Get the singleton instance of . + + + + + Creates the singleton instance of this class. + + + + + A segment representing a navigation property + + + + + The navigation property this segment represents. + + + + + Build a segment representing a navigation property. + + The navigation property this segment represents. + The set of the entities targetted by this navigation property. This can be null. + Throws if the input navigationProperty is null. + + + + Translate a . + + Type that the translator will return after visiting this token. + An implementation of the translator interface. + An object whose type is determined by the type parameter of the translator. + Throws if the input translator is null. + + + + Translate a to walk a tree of s. + + An implementation of the translator interface. + Throws if the input handler is null. + + + + Checks if this segment is equal to another segment. + + the other segment to check. + true if the other segment is equal. + Throws if the input other is null. + + + + Gets the navigation property represented by this NavigationPropertySegment. + + + + + Gets the set of the entities targetted by this Navigation Property. + This can be null. + + + + + Gets the of this . + + + + + A specific type of which can only contain instances of , , + , , or . + + + + + Create an ODataSelectPath + + The list of segments that makes up this path. + Throws if the list of segments doesn't match the requirements for a path in $select + + + + Create an ODataPath object based on a single segment + + The list of segments that makes up this path. + Throws if the list of segments doesn't match the requirements for a path in $select + + + + Ensure that the segments given to us are valid select segments. + + Throws if the list of segments doesn't match the requirements for a path in $select + + + + A segment representing and open property + + + + + The name of this open property. + + + + + Build a segment to represent an open property. + + The name of this open property + + + + Translate a . + + Type that the translator will return after visiting this token. + An implementation of the translator interface. + An object whose type is determined by the type parameter of the translator. + Throws if the input translator is null. + + + + Handle a . + + An implementation of the handler interface. + Throws if the input handler is null. + + + + Check if this segment is equal to another segment. + + the other segment to check. + true if the other segment is equal. + Throws if the input other is null. + + + + Gets the name of this open property. + + + + + Gets the of this , which is always null. + The type of open properties is unknown at this time. + + + + + Represents a named parameter value for invoking an operation in an OData path. + + + + + Initializes a new instance of . + + The name of the parameter. Cannot be null or empty. + The value of the parameter. + + + + The name of the parameter. + + + + + The parameter value. + + + + + Class to represent the selection of a specific path. + + + + + The selected path. + + + + + Constructs a to indicate that a specific path is selected. + + The selected path. + Throws if the input selectedPath is null. + + + + Gets the selected path. + + + + + Class that represents a partial subset of items on a given type that have been selected at this level of the select expand tree. + + + + + The subset of items that has been selected at this level. + + + + + Creates a with the specified set of . + + The list of items on the that has been selected. + + + + The subset of items that has been selected at this level. + + + + + A segment representing a structural property + + + + + The structural property referred to by this segment + + + + + Build a segment based on a structural property + + The structural property that this segment represents. + Throws if the input property is null. + + + + Translate a using an instance of />. + + Type that the translator will return after visiting this token. + An implementation of the translator interface. + An object whose type is determined by the type parameter of the translator. + Throws if the input translator is null. + + + + Handle a using an instance of . + + An implementation of the handler interface. + Throws if the input handler is null. + + + + Check if this segment is equal to another segment. + + the other segment to check. + true if the other segment is equal. + Throws if the input other is null. + + + + Gets the structural property that this segment represents. + + + + + Gets the of this . + + + + + Class representing the combined semantic meaning of any select or expand clauses in the uri. + + + + + Mapping that contains the set of navigation properties for the associated entity that should be expanded, and respective details about the expansions. + + + + + Internal flag indicating that this clause was built using the legacy Selection and Expansion classes. In this case, we must + call ComputeFinalSelectedItems() before handing out the object publically. + + + + + The object that describes what properties and functions should be selected from the associated at this level. + + + + + The selected properties and operations. + + This list includes expanded navigations properties, which may have additional nested selections and expansions. + + + + Gets a flag indicating that everything at this level has been selected. + + + If true, then all structural properties, bound actions and functions, and all navigations in the SelectedItems list have been selected. + + + + + Constructs a from the given parameters. + + The selected properties and operations. This list should include any expanded navigation properties. + Flag indicating if all items have been selected at this level. + + + + Constructs a from the given parameters. + + The object that describes what properties and functions should be selected from the associated . + Mapping that contains the set of navigation properties for the associated entity that should be expanded, and respective details about the expansions. + + + + Add a selection item to the current selection. + + the new selection item to add + + + + Switch to an AllSelection at this level and recursively at all levels below this one. + This is non-reversable because once everything is selected, selecting a specific property or other item is redundant. + + + + + Initializes the selection for this clause as ExpansionsOnly if it is not already partial. + + + + + Computes the list of SelectItems that will be publically availible to consumers. + + + + + Gets the selected properties and operations. + + This list includes expanded navigations properties, which may have additional nested selections and expansions. + + + + Gets a flag indicating that everything at this level has been selected. + + + If true, then all structural properties, bound actions and functions, and all navigations in the SelectedItems list have been selected. + + + + + Gets the object that describes what properties and functions should be selected from the associated . + + TODO Note that this is a legacy internal concept. + At the last minute we changed the public API but chose not to change how the implementation work to manage risk. + We should clean this up and remove this property. + + + + + Mapping that contains the set of navigation properties for the associated entity that should be expanded, and respective details about the expansions. + + TODO Note that this is a legacy internal concept. + At the last minute we changed the public API but chose not to change how the implementation work to manage risk. + We should clean this up and remove this property. + + + + + Node representing a type segment that casts an entity collection node. + + + + + The entity collection node that we're casting. + + + + + The target type that we're casting our entity collection node to. + + + + + the type of the collection returned by this function + + + + + The EntitySet that our collection comes from. + + + + + Create a CollectionCastNode with the given source node and the given target type. + + Parent that is being cast. + Type to cast to. + Throws if the input source or entityType are null. + + + + Accept a that walk a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + Throws if the input visitor is null. + + + + Gets the entity collection node that we're casting. + + + + + Gets the type that we're casting all items in this collection to. + + + + + The type of the collection represented by this node. + + + + + Gets the entity type that we're casting all items in this collection to. + + + + + Gets the EntitySet that our collection comes from. + + + + + Gets the kind of this node. + + + + + Query node representing a collection navigation property. + + + + + The navigation property of the single entity this node represents. + + + + + The resouce type of a single entity item from the collection represented by this node. + + + + + The type of the collection represented by this node. + + + + + The parent node. + + + + + The EntitySet from which the collection of entities comes from. + + + + + Creates a CollectionNavigationNode. + + The navigation property that defines the collection node. + The parent of this collection navigation node. + The collection node. + Throws if the input source or navigation property is null. + Throws if the input navigation doesn't target a collection. + + + + Creates a CollectionNavigationNode. + + The navigation property that defines the collection node. + The source entity set. + The collection node. + Throws if the input navigation property is null. + Throws if the input navigation doesn't target a collection. + + + + Creates a CollectionNavigationNode. + + The navigation property that defines the collection node. + The collection node. + Throws if the input navigation property is null. + Throws if the input navigation doesn't target a collection. + + + + Accept a that walks a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + Throws if the input visitor is null. + + + + Gets the parent node of this Collection Navigation Node. + + + + + Gets the target multiplicity. + + + + + Gets the Navigation Property that defines this collection Node. + + The navigation property that defines this collection node. + + + + Gets a reference to the resource type a single entity in the collection. + + + + + The type of the collection represented by this node. + + + + + Gets the resouce type of a single entity from the collection. + + + + + Gets the entity set containing this collection. + + + + + Gets the kind of this node. + + + + + The result of parsing a $filter query option. + + + + + The filter expression - this should evaluate to a single boolean value. + + + + + The parameter for the expression which represents a single value from the collection. + + + + + Creates a . + + The filter expression - this should evaluate to a single boolean value. Cannot be null. + The parameter for the expression which represents a single value from the collection. Cannot be null. + Throws if the input expression or rangeVariable is null. + + + + Gets the filter expression - this should evaluate to a single boolean value. + + + + + Gets the parameter for the expression which represents a single value from the collection. + + + + + Gets the type of item returned by this clause. + + + + + Represents the result of parsing the $orderby query option. + + + + + The order-by expression. + + + + + The direction to order. + + + + + The rangeVariable for the expression which represents a single value from the collection we iterate over. + + + + + The next orderby to perform after performing this orderby, can be null in the case of only a single orderby expression. + + + + + Creates an . + + The next orderby to perform after performing this orderby, can be null in the case of only a single orderby expression. + The order-by expression. Cannot be null. + The direction to order. + The rangeVariable for the expression which represents a single value from the collection we iterate over. + Throws if the input expression or rangeVariable is null. + + + + Gets the next orderby to perform after performing this orderby, can be null in the case of only a single orderby expression. + + + + + Gets the order-by expression. + + + + + Gets the direction to order. + + + + + Gets the rangeVariable for the expression which represents a single value from the collection we iterate over. + + + + + Gets the type of a single item from the collection returned after ordering. + + + + + A RangeVariable inside an any or all expression that doesn't refer to an entity set + + + + + A RangeVariable, which represents an iterator variable either over a collection, either of entities or not. + Exists outside of the main SemanticAST, but hooked in via a RangeVariableReferenceNode (either Non-Entity or Entity). + + + + + Gets the name of the associated rangeVariable. + + + + + Gets the type of entity referenced by this rangeVariable + + + + + Gets the kind of this rangeVariable. + + + + + The name of the associated any/all parameter (null if none) + + + + + The Entity collection that this rangeVariable node iterates over + + + + + The Entity set of the collection this node iterates over. + + + + + The entity type of each item in the collection that this range variable iterates over. + + + + + Creates a . + + The name of the associated any/all parameter (null if none) + The entity type of each item in the collection that this range variable iterates over. + The Entity collection that this rangeVariable node iterates over + Throws if the input name or entityType is null. + + + + Creates a . + + The name of the associated any/all parameter (null if none) + The entity type of each item in the collection that this range variable iterates over. + The Entity set of the collection this node iterates over. + Throws if the input name or entityType is null. + + + + Gets the name of the associated any/all parameter (null if none) + + + + + Gets the Entity collection that this rangeVariable node iterates over + + + + + Gets the Entity set of the collection this node iterates over. + + + + + Gets the entity type of each item in the collection that this range variable iterates over. + + + + + Gets the entity type of each item in the collection that this range variable iterates over. + + + + + Gets the kind of this node. + + + + + Node to represent a range variable in an Any or All clause that referrs to an entity. + + + + + Base class for all semantic metadata bound nodes which represent a single composable entity value. + + + + + Base class for all semantic metadata bound nodes which represent a single composable value. + + + + + Gets the type of the single value this node represents. + + + + + Gets the kind of this node. + + + + + Gets the EntitySet containing this single entity. + + + + + Gets the type of this single entity. + + + + + The name of the associated range variable (null if none) + + + + + The entity type of the associated range variable. + + + + + The range variable that the node represents. + + + + + The entity set containing the collection that this range variable iterates over. + + + + + Creates an . + + The name of the associated range variable (null if none) + The actual range variable on the bind stack that this refers to + Throws if the input name or rangeVariable is null. + + + + Accept a that walks a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + Throws if the input visitor is null. + + + + Gets the name of the associated rangevariable (null if none) + + + + + Gets the entity type of the associated range variable. + + + + + Gets the entity type of the associated range variable. + + + + + Gets a reference to the range variable that this node represents. + + + + + Gets the entity set containing the collection that this range variable iterates over. + + + + + Gets the kind of this node. + + + + + A rangeVariable from an Any or All that doesn't refer to an entity set + + + + + The name of the associated rangeVariable + + + + + The collection that this rangeVariable node iterates over, can be null in the case of + single value nodes. + + + + + The type of the value the range variable represents + + + + + Creates a . + + The name of the associated range variable. + The type of the value the range variable represents. + The collection that this rangeVariable node iterates over, can be null in the case of single value nodes. + Throws if the input name is null. + Throws if the input type reference is an entity type. + + + + Gets the name of the associated rangevariable. + + + + + Gets the type of the value the range variable represents. + + + + + Gets the collection that this rangeVariable node iterates over, can be null in the case of single value nodes. + + + + + Gets the kind of this range variable. + + + + + A node that represents a rangeVariable that iterates over a non entity collection. + + + + + The name of the associated rangeVariable + + + + + The type item referred to by this rangeVariable. + + + + + Reference to a rangeVariable on the binding stack. + + + + + Creates a . + + The name of the associated rangeVariable + Reference to a rangeVariable on the binding stack. + Throws if input name or rangeVariable is null. + + + + Accept a that walks a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + Throws if the input visitor is null. + + + + Gets the name of the associated rangeVariable. + + + + + Gets the type item referred to by this rangeVariable. + + + + + Gets the reference to a rangeVariable on the binding stack. + + + + + Gets the kind of this node. + + + + + Enumeration of the different kinds of RangeVariables. + + + + + A range variable that referrs to entity types. + + + + + A range variable that referrs to non-entity types. + + + + + A segment representing a call to an action, function, or service operation. + + + + + Sentinel type marking that we could not determine the return type for this segment. + + + + + The list of possible FunctionImport overloads for this segment. + + + + + the list of parameters to this operation. + + + + + The containing the entities that this function returns. + This will be null if entities are not returned by this operation, or if there is any ambiguity. + + + + + The type of item returned by the operation(s), if known. + + + + + Build a segment representing a call to an operation - action, function, or service operation. + + A single function import that this segment will represent. + The containing the entities that this function returns. + Throws if the input operation is null. + + + + Build a segment representing a call to an operation - action, function, or service operation. + + The list of possible FunctionImport overloads for this segment. + The containing the entities that this function returns. + Throws if the input operations is null. + + + + Creates a segment representing a call to an operation - action, function or service operation. + + The list of possible FunctionImport overloads for this segment. + The list of parameters supplied to this segment. + The containing the entities that this function returns. + + + + Creates a segment representing a call to an operation - action, function or service operation. + + + + + Translate a . + + Type that the translator will return after visiting this token. + An implementation of the translator interface. + An object whose type is determined by the type parameter of the translator. + Throws if the input translator is null. + + + + Handle a . + + An implementation of the handle interface. + Throws if the input handler is null. + + + + Check if this segment is equal to another segment. + + the other segment to check. + true if the other segment is equal. + Throws if the input other is null. + + + + Ensures that the entity set and computed return type make sense. + + Throws if the return type computed from the function call is null, or if the return type is not in the same hierarchy as the entity set provided. + + + + Gets the list of possible FunctionImport overloads for this segment. + + + + + Gets the list of parameters for this segment. + + + + + Gets the of this . + + + This value will be null for void service operations. + If there are multiple candidate operations with varying return types, then this property will throw. + + Throws if the type is unknown. + + + + Gets the containing the entities that this function returns. + This will be null if entities are not returned by this operation, or if there is any ambiguity. + + + + + Node representing a function call which returns a single entity. + + + + + the name of this function + + + + + the list of funcitonImports represented by this node. + + + + + List of arguments provided to the function. + + + + + The return type of this function. + + + + + The EntitySet containing the single entity that this function returns. + + + + + The semantically bound parent of this function. + + + + + Create a SingleEntityFunctionCallNode + + The name of the function to call + List of arguments provided to the function. Can be null. + The return type of this function. + The EntitySet containing the single entity that this function returns. + Throws if the input name, returnedEntityTypeReference, or entitySet is null. + + + + Create a SingleEntityFunctionCallNode + + The name of the function to call + the list of function imports this node represents. + List of arguments provided to the function. Can be null. + The return type of this function. + The EntitySet containing the single entity that this function returns. + The semantically bound parent of this function. + Throws if the input name, returnedEntityTypeReference, or entitySet is null. + + + + Accept a that walks a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + Throws if the input visitor is null. + + + + Gets the name of the function to call + + + + + Gets the list of function imports that this node represents + + + + + Gets the list of arguments provided to the function. + + + + + Gets the return type of this function. + + + + + Gets the EntitySet containing the single entity that this function returns. + + + + + Gets the return type of this function. + + + + + Gets the semantically bound parent of this function. + + + + + Gets the kind of this node. + + + + + Node representing an access to a collection property value. + + + + + The value containing the property. + + + + + The EDM property which is to be accessed. + + Only non-entity, collection properties are supported by this node. + + + + The resouce type of a single item from the collection represented by this node. + + + + + The type of the collection represented by this node. + + + + + Constructs a new . + + The value containing the property. + The EDM property which is to be accessed. + Throws if the input source or property is null. + Throws if the input property is not a collection of structural properties + + + + Accept a to walk a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + Throws if the input visitor is null. + + + + Gets the value containing the property. + + + + + Gets the EDM property which is to be accessed. + + Only non-entity, collection properties are supported by this node. + + + + Gets the resouce type of a single item from the collection represented by this node. + + + + + The type of the collection represented by this node. + + + + + Gets the kind of this node. + + + + + Implementation of IEnumerable which is based on another IEnumerable + but only exposes readonly access to that collection. This class doesn't implement + any other public interfaces or public API unlike most other IEnumerable implementations + which also implement other public interfaces. + + The type of the items in the read-only enumerable. + + + + The IEnumerable to wrap. + + + + + Constructor. + + The enumerable to wrap. + + + + Returns the enumerator to iterate through the items. + + The enumerator object to use. + + + + Returns the (non-generic) enumerator to iterate through the items. + + The enumerator object to use. + + + + A segment representing a cast on the previous segment to another type. + + + + + The target type of this type segment. + + + + + The set containing the entities that we are casting. + + + + + Build a type segment using the given . + + The target type of this segment, which may be collection type. + The set containing the entities that we are casting. This can be null. + Throws if the input edmType is null. + Throws if the input edmType is not relaed to the type of elements in the input entitySet. + + + + Translate a into another type using an instance of . + + Type that the translator will return after visiting this token. + An implementation of the translator interface. + An object whose type is determined by the type parameter of the translator. + Throws if the input translator is null. + + + + Handle a using an instance of . + + An implementation of the handler interface. + Throws if the input handler is null. + + + + Check if this segment is equal to another segment. + + the other segment to check. + true if the other segment is equal. + Throws if the input other is null. + + + + Gets the of this . + + + + + Gets the set containing the entities that we are casting. + + + + + Singleton sentinal instance of that indicates that $select has not been processed yet. Should never be exposed to the user. + + + + + Singleton instance of . + + + + + Creates the singleton instance of this class. + + + + + Represents an aliased parameter in a function call that has not yet been resolved to a specific value. + + + + + Represents the value of a property. + + + + + Indicates whether the given value is a null value. + + true if the value is an ODataNullValue, false otherwise. + + + + Initializes a new instance of . + + The alias provided as the parameter value. + The EDM type of the parameter represented by this alias. + + + + The EDM type of the parameter represented by this alias. + + + + + The alias provided as the parameter value. + + + + + Helper methods for the URI Parser. + + + + + Throws if the type is not related to the type of the given set. + + Type to check. + Second type, which should be related to the first type. + The segment that is checking this. + + + + A segment representing $value + + + + + The of this . + + + + + Build a segment to represnt $value. + + The type of the segment before $value. This may be null, for cases such as open properties. + Throws if the input previousType is a colleciton type. + + + + Translate a into another object using an instance of . + + Type that the translator will return after visiting this token. + An implementation of the translator interface. + An object whose type is determined by the type parameter of the translator. + Throws if the input translator is null. + + + + Handle a using an instance of . + + An implementation of the translator interface. + Throws if the input handler is null. + + + + Check if this segment is equal to another segment. + + the other segment to check. + true if the other segment is equal. + + + + Gets the of this . + + + + + Class to represent a '*' selection item, indicating that all structural properties should be selected. + + + + + Use a Select syntactic tree to populate the correct values for Selection in an already parsed + Expand Semantic Tree. + + + + + Visitor object to walk the select tree + + + + + Constructs a new SelectBinder. + + The model used for binding. + The entity type that the $select is being applied to. + the maximum recursive depth. + The already built expand clause to decorate + + + + Visits the top level select token + + the select token to visit + A new SelectExpandClause decorated with the information from the selectToken + + + + Visitor interface for walking the Semantic Tree. + + Generic type produced by the visitor. + + + + Visit an AllNode + + the node to visit + Defined by the implementer + + + + Visit an AnyNode + + the node to visit + Defined by the implementer + + + + Visit a BinaryOperatorNode + + the node to visit + Defined by the implementer + + + + Visit a CollectionNavigationNode + + the node to visit + Defined by the implementer + + + + Visit a CollectionPropertyAccessNode + + the node to visit + Defined by the implementer + + + + Visit a ConstantNode + + the node to visit + Defined by the implementer + + + + Visit a ConvertNode + + the node to visit + Defined by the implementer + + + + Visit an EntityCollectionCastNode + + the node to visit + Defined by the implementer + + + + Visit an EntityRangeVariableReferenceNode + + the node to visit + Defined by the implementer + + + + Visit a NonEntityRangeVariableNode + + the node to visit + Defined by the implementer + + + + Visit a SingleEntityCastNode + + the node to visit + Defined by the implementer + + + + Visit a SingleNavigationNode + + the node to visit + Defined by the implementer + + + + Visit a SingleEntityFunctionCallNode + + the node to visit + Defined by the implementer + + + + Visit a SingleValueFunctionCallNode + + the node to visit + Defined by the implementer + + + + Visit a EntityCollectionFunctionCallNode + + the node to visit + Defined by the implementer + + + + Visit a CollectionFunctionCallNode + + the node to visit + Defined by the implementer + + + + Visit a SingleValueOpenPropertyAccessNode + + the node to visit + Defined by the implementer + + + + Visit a SingleValuePropertyAccessNode + + the node to visit + Defined by the implementer + + + + Visit a UnaryOperatorNode + + the node to visit + Defined by the implementer + + + + Visit a NamedFunctionParameterNode. + + The node to visit. + Defined by the implementer + + + + Lexical token representing an expand operation. + + + + + The nav prop path for this ExpandTerm + + + + + the filter option for this expand term + + + + + the order by option for this expand term + + + + + the top option for this expand term + + + + + the skip option for this expand term. + + + + + the inlineCount option for this expand term. + + + + + the select option for this expand term. + + + + + the expand option for this expand term. + + + + + Create an expand term token using only a property + + the path to the navigation property + + + + Create an expand term using only the property and its subexpand/select + + the path to the navigation property for this expand term + the sub select for this token + the sub expand for this token + + + + Create an expand term token + + the nav prop for this expand term + the filter option for this expand term + the orderby option for this expand term + the top option for this expand term + the skip option for this expand term + the inlineCountOption for this expand term + the select option for this expand term + the expand option for this expand term + + + + Implement the visitor for this Token + + The type to return + A tree visitor that will visit this node. + Determined by the return type of the visitor. + + + + the nav property for this expand term + + + + + The filter option for this expand term. + + + + + the orderby option for this expand term. + + + + + the top option for this expand term. + + + + + the skip option for this expand term. + + + + + the inline count option for this expand term. + + + + + the select option for this expand term. + + + + + the expand option for this expand term. + + + + + the kind of this expand term. + + + + + Lexical token representing an expand operation. + + + + + The properties according to which to expand in the results. + + + + + Create a ExpandToken given the property-accesses of the expand query. + + The properties according to which to expand the results. + + + + Accept a to walk a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + + + + The kind of the query token. + + + + + The properties according to which to expand in the results. + + + + + Lexical token representing a segment in a path. + + + + + + Lexical token representing a segment in a path. + + + + + + the next token in the path + + + + + build this segment token using the next token + + the next token in the path + + + + Is this token namespace or container qualified. + + true if this token is namespace or container qualified. + + + + Accept a to walk a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + + + + Accept a to walk a tree of s. + + An implementation of the visitor interface. + + + + internal setter for the next token. + + the next token to set. + + + + Get the NextToken in the path + + + + + The name of the property to access. + + + + + Any named values for this NonSystemToken + + + + + The identifier for this token. + + + + + Build a NonSystemToken + + the identifier of this token + a list of named values for this token + the next token in the path + + + + Is this token namespace or container qualified. + + true if this token is namespace or container qualified. + + + + Accept a to walk a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + + + + Accept a to walk a tree of s. + + An implementation of the visitor interface. + + + + Get the list of named values for this token. + + + + + Get the identifier for this token. + + + + + Lexical token representing a segment in a path. + + + + + + The NextToken in the path(can either be the parent or the child depending on whether the tree has + been normalized for expand or not. + TODO: need to revisit this and the rest of the syntactic parser to make it ready for public consumption. + + + + + The name of the property to access. + + + + + Lexical token representing a System token such as $count + + + + + + The identifier for this SystemToken + + + + + Build a new System Token + + the identifier for this token. + the next token in the path + + + + Is this token namespace or container qualified. + + always false, since this is a system token. + + + + Accept a to walk a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + + + + Accept a to walk a tree of s. + + An implementation of the visitor interface. + + + + Get the identifier for this token + + + + + Visitor interface for walking the Syntactic Tree. + + Generic type produced by the visitor. + + + + Visit an AllToken + + The All token to visit + An AllNode bound to this token + + + + Visits an AnyToken + + The Any token to visit + An AnyNode that's bound to this token + + + + Visits a BinaryOperatorToken + + The Binary operator token to visit. + A BinaryOperatorNode thats bound to this token + + + + Visits a DottedIdentifierToken + + The DottedIdentifierToken to visit + Either a SingleEntityCastNode, or EntityCollectionCastNode bound to this DottedIdentifierToken + + + + Visits an ExpandToken + + The ExpandToken to visit + A QueryNode bound to this ExpandToken + + + + Visits an ExpandTermToken + + The ExpandTermToken to visit + A QueryNode bound to this ExpandTermToken + + + + Visits a FunctionCallToken + + The FunctionCallToken to visit + A SingleValueFunctionCallNode bound to this FunctionCallToken + + + + Visits a LiteralToken + + The LiteralToken to visit + A ConstantNode bound to this LambdaToken + + + + Visits a LambdaToken + + The LambdaToken to visit + A LambdaNode bound to this LambdaToken + + + + Visits a InnerPathToken + + The InnerPathToken to bind + A SingleValueNode or SingleEntityNode bound to this InnerPathToken + + + + Visits an OrderByToken + + The OrderByToken to bind + An OrderByClause bound to this OrderByToken + + + + Visits an EndPathToken + + The EndPathToken to bind + A PropertyAccessClause bound to this EndPathToken + + + + Visits a CustomQueryOptionToken + + The CustomQueryOptionToken to bind + A CustomQueryOptionNode bound to this CustomQueryOptionToken + + + + Visits a RangeVariableToken + + The RangeVariableToken to bind + An Entity or NonEntity RangeVariableReferenceNode bound to this RangeVariableToken + + + + Visits a SelectToken + + The SelectToken to bind + A QueryNode bound to this SelectToken + + + + Visits a StarToken + + The StarToken to bind + A QueryNode bound to this StarToken + + + + Visits a UnaryOperatorToken + + The UnaryOperatorToken to bind + A UnaryOperatorNode bound to this UnaryOperatorToken + + + + Visits a FuntionParameterToken + + The FunctionParameterToken to bind + A user defined value + + + + Walk down a chain of type segments, checking that we find the correct type at each level. + + + + + Follow any type segments on the path, stopping at the first segment that isn't a type token. + + the first type segment + the model these types are contained in. + the maximum recursive depth + the top level entity type, will be overwritten with the last entity type in the chain + the first non type token in the path + A path with type segments added to it. + + + + An enumeration that lists the internal errors. + + + + Unreachable codepath in TypePromotionUtils.GetFunctionSignatures(BinaryOperatorKind), unrecognized kind of binary operator. + + + Unreachable codepath in TypePromotionUtils.GetFunctionSignatures(UnaryOperatorKind), unrecognized kind of unary operator. + + + Unreachable codepath in MetadataBinder.BindServiceOperation, unrecognized kind of service opertion. + + + Unreachable codepath in QueryExpressionTranslator.TranslateBinaryOperator, unrecognized kind of binary operator. + + + Unreachable codepath in UriPrimitiveTypeParser.HexCharToNibble + + + Unreachable codepath in UriQueryExpressionParser.ParseComparison + Was a new binary operator keyword without adding it to the switch in the ParseComparison? + + + Unreachable codepath in UriPrimitiveTypeParser.TryUriStringToPrimitive + Unsupported type was asked to be parsed. + + + Unreachable codepath in QueryNodeUtils.BinaryOperatorResultType, unrecognized kind of binary operator. + + + Unreachable codepath in QueryExpressionTranslator.TranslateUnaryOperator, unrecognized kind of unary operator. + + + Unreachable codepath in BinaryOperator.GetOperator, unrecognized kind of binary operator. + + + Unreachable codepath in ODataUriBuilder.WriteUnary, unrecognized kind of unary operator. + + + Unreachable codepath in ODataUriBuilderUtils.ToText(InlineCountKind), unrecognized kind of inline count. + + + + Query node representing an All query. + + + + + Node representing an Any/All query. + + + + + The collection of rangeVariables in scope for this Any or All. + + + + + The newest range variable added for by this Any or All. + + + + + Create a LambdaNode + + The collection of rangeVariables in scope for this Any or All. + + + + Create a LambdaNode + + The collection of rangeVariables in scope for this Any or All. + The newest range variable added for by this Any or All. + + + + Gets the collection of rangeVariables in scope for this Any or All. + + + + + Gets the newest range variable added for by this Any or All. + + + + + Gets or Sets the associated boolean expression + + + + + Gets or Sets the parent entity set or navigation property + + + + + Create an AllNode + + The name of the rangeVariables list. + + + + Create an AllNode + + The name of the rangeVariables list. + The new range variable being added by this all node + + + + Accept a that walks a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + Throws if the input visitor is null + + + + The resource type of the single value this node represents. + + + + + Gets the kind of this node. + + + + + Lexical token representing the All Query + + + + + Lexical token representing the Any/All Query + + + + + The parent token. + + + + + The parameter which denotes source type. + + + + + The expression component of Any. + + + + + Create a AnyAllQueryToken given the expression, parameter, and parent + + The associated expression. + The parameter denoting source type. + The parent token. Pass null if this property has no parent. + + + + Accept a to walk a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + + + + The parent token. + + + + + The expression. + + + + + The parameter. + + + + + Create a AllToken given the expression, parameter, and parent + + The associated expression. + The parameter denoting source type. + The parent token. Pass null if this property has no parent. + + + + Accept a to walk a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + + + + The kind of the query token. + + + + + Query node representing an Any query. + + + + + Create a AnyNode + + The name of the parameter list. + + + + Create a AnyNode + + The name of the parameter list. + The name of the new range variable being added by this AnyNode + + + + Accept a that walks a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + Throws if the input visitor is null. + + + + The resource type of the single value this node represents. + + + + + Gets the kind of this node. + + + + + Lexical token representing the Any Query + + + + + Create a AnyToken given the expression, parameter, and parent + + The associated expression. + The parameter denoting source type. + The parent token. Pass null if this property has no parent. + + + + Accept a to walk a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + + + + The kind of the query token. + + + + + In-memory annotation class to associate CLR instance types with + (non-primitive) EDM types. + + + + + true if reflection over the instance type is supported; otherwise false. + + + + + The instance type represented by this annotation. + + + + + In-memory annotation class to associate a result kind with a service operation. + + + + + The result kind of the service operation. + + + + + Annotation to hold information for a particular property. + + + + + true if reflection over the property is allowed; otherwise false. + + + + + Use this type to describe the kind of results returned by a service + operation. + + + + + A single direct value which cannot be further composed. + + + + + An enumeration of values which cannot be further composed. + + + + + A queryable object which returns multiple elements. + + + + + A queryable object which returns a single element. + + + + + No result return. + + + + + Lexical token representing a single nonroot segment in the query path. + + + + + The Identifier of the segment. + + + + + The named values in the key lookup for this segment. + If the segment has no key lookup, then this property is null. + If the segment has empty key lookup (), then this property is an empty collection. + + + + + The NextToken segment. + + + + + Create a new StartPathToken given the Identifier and NextToken and namedValues if any + + The Identifier of the segment, the identifier. + The NextToken segment, or null if this is the root segment. + The named values in the key lookup for this segment. + + + + Accept a to walk a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + + + + The kind of the query token. + + + + + The Identifier of the segment, the identifier. + + + + + The NextToken segment, or null if this is the root segment. + + + + + The named values in the key lookup for this segment. + If the segment has no key lookup, then this property is null. + If the segment has empty key lookup (), then this property is an empty collection. + + + + + Utility methods used with the OData Query library. + + + + + Checks whether reflection over the property is allowed or not. + + The property to check. + The model containing annotations. + true if reflection over the property is allowed; otherwise false. + + + + Sets whether reflection over the property is allowed or not. + + The property to check. + The model containing annotations. + true if reflection over the property is allowed; otherwise false. + + + + Gets the result kind of the . + + The to check. + The containing the annotation. + The result kind of the or null if no result kind annotation exists. + + + + Sets the result kind of the . + + The to check. + The containing the annotation. + The result kind to set. + + + + Resolves a name to an instance. + + The model to resolve the name against. + The name of the service operation to look up. + An instance with the specified ; if no such service operation exists the method throws. + + + + Resolves a name to an instance. + + The model to resolve the name against. + The name of the service operation to look up. + An instance with the specified or null if no such service operation exists. + + + + Returns the instance type for the specified or null if none exists. + + The type reference to get the instance type for. + The model containing annotations. + The instance type for the or null if no instance type exists. + All primitive type references are guaranteed to have an instance type. + + + + Returns the instance type for the specified or null if none exists. + + The type to get the instance type for. + The model containing annotations. + The instance type for the or null if no instance type exists. + + + + Sets the instance type for the specified ; if null is specified an existing instance type will be removed. + + The type to get the instance type for. + Model containing annotations. + The instance type for the or null to remove an existing instance type. + + + + Checks whether reflection over the instance type is allowed or not. + + The type reference to check. + Model containing annotations. + true if reflection over the instance type is allowed; otherwise false. + + + + Sets whether reflection over the instance type is allowed or not. + + The type reference to check. + The model containing annotations. + true if reflection over the instance type is allowed; otherwise false. + + + + Sets whether reflection over the instance type is allowed or not. + + The type to check. + Model containing annotations. + true if reflection over the instance type is allowed; otherwise false. + + + + Resolves a name to an instance. + + The model to resolve the name against. + The name of the entity set to look up. + An instance with the specified ; if no such entity set exists the method throws. + + + + Resolves a name to an instance. + + The model to resolve the name against. + The name of the entity set to look up. + An instance with the specified or null if no such entity set exists. + + + + Method that checks whether a function import is a service operation. + + The containing annotations. + The to check. + true if the represents a service operation; otherwise false. + + A is considered a service operation if it is annotated with an m:HttpMethod attribute. + + + + + Method that checks whether a function import is an action. + + The containing annotations. + The to check. + true if the represents an action; otherwise false. + + A is considered an action if it is side-effecting but not annotated with an m:HttpMethod attribute. + + + + + Class to wrap around BinaryOperatorKind that gives precedent meaning to it. + + + + Wrapper for Add operator kind. + + + Wrapper for And operator kind. + + + Wrapper for Divide operator kind. + + + Wrapper for Equal operator kind. + + + Wrapper for GreaterThanOrEqual operator kind. + + + Wrapper for GreaterThan operator kind. + + + Wrapper for LessThanOrEqual operator kind. + + + Wrapper for LessThan operator kind. + + + Wrapper for Modulo operator kind. + + + Wrapper for Multiply operator kind. + + + Wrapper for NotEqual operator kind. + + + Wrapper for Or operator kind. + + + Wrapper for Subtract operator kind. + + + + The text for this operator. + + + + + The precedence for this operator. + + + + + Whether it needs parentheses against other same operator. + + + + + Create a new BinaryOperator given its text, precedence, + and whether it needs parentheses against other same operator. + + The text for this operator. + The precedence for this operator in relative to other operators. + + Whether it needs parentheses + when nesting with other operators of same precedence. + + + + + Get the BinaryOperator wrapper for the given operatorKind. + + The kind to get wrapper for. + The binary operator for the specified . + + + + Whether it needs parentheses against other same operator. + + + + + The precedence for this operator. + + + + + The text for this operator. + + + + + Lexical token representing a binary operator. + + + + + The operator represented by this node. + + + + + The left operand. + + + + + The right operand. + + + + + Create a new BinaryOperatorToken given the operator, left and right query. + + The operator represented by this node. + The left operand. + The right operand. + + + + Accept a to walk a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + + + + The kind of the query token. + + + + + The operator represented by this node. + + + + + The left operand. + + + + + The right operand. + + + + + Enumeration of binary operators. + + + + + The logical or operator. + + + + + The logical and operator. + + + + + The eq operator. + + + + + The ne operator. + + + + + The gt operator. + + + + + The ge operator. + + + + + The lt operator. + + + + + The le operator. + + + + + The add operator. + + + + + The sub operator. + + + + + The mul operator. + + + + + The div operator. + + + + + The mod operator. + + + + + Class to handle writing an BinaryOperatorToken. + This class optimizes on reducing parentheses as base on operator precedence. + + + + + The parent ODataUriBuilder that invokes this binary operator builder. + + + + + Create a new BinaryOperatorToken for the given Uri builder to write BinaryOperatorToken. + + The parent builder of this builder. + + + + Write the given binary token as Uri part. + + To write as Uri part. + + + + Determine whether parentheses are needed around the left subtree base on the current operator. + + The current binary node's operator. + The left binary subtree. + True if need parenthese, false if not. + + + + Determine whether parentheses are needed around the right subtree base on the current operator. + + The current binary node's operator. + The right binary subtree. + True if need parentheses, false if not. + + + + Write the given binary token as Uri part. + + Whether parentheses are needed around the written expression. + To write as Uri part. + + + + Class containing definitions of all the built-in functions. + + + + + Dictionary of the name of the built-in function and all the signatures. + + + + + Returns a list of signatures for a function name. + + The name of the function to look for. + The list of signatures available for the function name. + true if the function was found, or false otherwise. + + + Builds a description of a list of function signatures. + Function name. + Function signatures. + A string with ';'-separated list of function signatures. + + + + Creates all of the spatial functions + + Dictionary of functions to add to. + + + + Builds the list of all built-in functions. + + Returns a dictionary of built in functions. + + + + Creates all string functions. + + Dictionary of functions to add to. + + + + Creates all date and time functions. + + Dictionary of functions to add to. + + + + Builds an array of signatures for date time functions. + + The array of signatures for a date time functions. + + + + Builds the set of signatures for timespan functions. + + The set of signatures for timespan functions. + + + + Creates all math functions. + + Dictionary of functions to add to. + + + + Builds an array of signatures for math functions. + + The array of signatures for math functions. + + + + Node representing a primitive constant value. + + + + + The primitive constant value. + + + + + Cache for the TypeReference after it has been calculated for the current state of the node. + + + + + Create a ConstantNode + + This node's primitive value. + The literal text for this node's value, formatted according to the OData URI literal formatting rules. + Throws if the input literalText is null. + + + + Create a ConstantNode + + This node's primitive value. + + + + Accept a to walk a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + Throws if the input visitor is null. + + + + Gets the primitive constant value. + + + + + Get or Set the literal text for this node's value, formatted according to the OData URI literal formatting rules. May be null if the text was not provided at construction time. + + + + + Gets the resouce type of the single value this node represents. + + + + + Gets the kind of the query node. + + + + + Node representing a conversion of primitive type to another type. + + + + + The source value to convert. + + + + + The target type that the source will be converted to. + + + + + Constructs a ConvertNode. + + The node to convert. + The type to convert the node to + Throws if the input source or typeReference is null. + + + + Accept a that walks a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + Throws if the input visitor is null. + + + + Get the source value to convert. + + + + + Get the type we're converting to. + + + + + Get the kind of this node. + + + + + Query node representing a binary operator. + + + + + The operator represented by this node. + + + + + The left operand. + + + + + The right operand. + + + + + Cache for the TypeReference after it has been calculated for the current state of the node. + This can be an expensive calculation so we want to avoid doing it repeatedly. + + + + + Create a BinaryOperatorNode + + The binary operator type. + The left operand. + The right operand. + Throws if the left or right inputs are null. + Throws if the two operands don't have the same type. + + + + Accept a that walks a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + throws if the input visitor is null. + + + + Gets the operator represented by this node. + + + + + Gets the left operand. + + + + + Gets the right operand. + + + + + Gets the resource type of the single value this node represents. + + + + + Gets the kind of this node. + + + + + Possible values of $inlinecount. + + + + + Do not include count in response. + + + + + Include the count of all entries in response. + + + + + Keyword enum values related to the URI query syntax + such as $metadata, $count, $value, etc. + + + + A segment name in a URI that indicates metadata is being requested. + + + A segment name in a URI that indicates a plain primitive value is being requested. + + + A segment name in a URI that indicates batch is being requested. + + + A segment name in a URI that indicates that this is an entity reference link operation. + + + A segment name in a URI that indicates that this is a count operation. + + + + Helper methods for with literals. + + + + + Parse the given text as a Geography literal. + + The text to parse. + The Geography object if succeeded, else a ParseErrorException is thrown. + + + + Parse the given text as a Geometry literal. + + The text to parse. + The Geometry object if succeeded, else a ParseErrorException is thrown. + + + + Convert to string the given Geography instance. + + Instance to convert. + Well-known text representation. + + + + Convert to string the given Geometry instance. + + Instance to convert. + Well-known text representation. + + + + The formatter to create/format text to and from spatial. + + + + + URI builder that constructes a from the parsed query tokens. + + + + + The query token to write to Uri. + + + + + The string builder to write the query token to. + + + + + Create a new Uri builder for the given token. + + The token to write out as Uri. + + + + Create a URI for the given queryDescriptor given the base service URI. + + The base service URI. + The query descriptor to create the result URI from. + An absolute URI that base on the baseUri and represent the queryDescriptor. + + + + Get the Uri string representation of the given CLR object literal. + + The object to return as literal. + Uri string represent if is a CLR literal. Throw exception if not. + + + + Write the descriptor token as URI part to this builder. + + To write as URI part. + + + + Append the given text to this builder. + + The text to append. + + + + Write the query token as URI part to this builder. + + To write as URI part. + + + + Write the Uri string representation of the given CLR object literal to the given builder. + + The to write the to. + The object to write as literal. + + + + Build the queryToken as Uri string part. + + The Uri part representing the queryToken. + + + + Write the binary token as URI part to this builder. + + To write as URI part. + + + + Write the function call token as URI part to this builder. + + To write as URI part. + + + + Writes a path to this builder. + + Array of segments. + + + + Write the literal token as URI part to this builder. + + To write as URI part. + + + + Write the orderby tokens as URI part to this builder. + + To write as URI part. + + + + Write the orderby token as URI part to this builder. + + To write as URI part. + + + + Write out a PathSegmentToken + + the pathSegmentToken to write. + + + + Write the property access token as URI part to this builder. + + To write as URI part. + + + + Write the navigation property token as URI part to this builder. + + To write as URI part. + + + + Write the given queryOption as Uri part. + + To write as URI part. + + + + Write ? or & depending on whether it is the start of the whole query or query part. + + True if start of whole query, false if not. + This is set to false after this method is called. + + + + Write the select token as URI part to this builder. + + To write as URI part. + + + + Write the expand token as URI part to this builder. + + To write as URI part. + + + + Write the star token as URI part to this builder. + + To write as URI part. + + + + Write the unary token as URI part to this builder. + + To write as URI part. + + + + Constants and utility methods for the OData URI builder. + + + + + The format for integer ToString output. + + + + + The format for float ToString output. + + + + + The format for byte ToString output. + + + + + The format for double ToString output. + + + + + The format for DateTime ToString output. + + + + + The format for DateTimeOffset ToString output. + + + + + The format for Decimal ToString output. + + + + + The format for Double ToString output. + + + + + Escape a string literal by replacing single ' with ''. + + Text to escape. + A string where all ' is replaced by ''. + + + + Returns the string representation of the inline count kind. + + The inline count kind to convert to string. + The string representation of the . + + + + Throw ODataException on the given QueryTokenKind as not supported for writing to Uri. + + QueryTokenKind that is not supported. + + + + Throw ODataException on the given CLR type as not supported for writing to Uri. + + CLR type that is not supported. + + + Use this class to perform late-bound operations on open properties. + This class was copied from the product. + + + MethodInfo for Add. + + + MethodInfo for AndAlso. + + + MethodInfo for Convert. + + + MethodInfo for Divide. + + + MethodInfo for Equal. + + + MethodInfo for GreaterThan. + + + MethodInfo for GreaterThanOrEqual. + + + MethodInfo for LessThan. + + + MethodInfo for LessThanOrEqual. + + + MethodInfo for Modulo. + + + MethodInfo for Multiply. + + + MethodInfo for Negate. + + + MethodInfo for Not. + + + MethodInfo for NotEqual. + + + MethodInfo for OrElse. + + + MethodInfo for Subtract. + + + MethodInfo for TypeIs. + + + MethodInfo for object OpenTypeMethods.GetValue(this object value, string propertyName). + + + Gets a named value from the specified object. + Object to get value from. + Name of property to get. + The requested value; null if not found. + + + Adds two values with no overflow checking. + Left value.Right value. + The added value. + + + Performs logical and of two expressions. + Left value.Right value. + The result of logical and. + + + Divides two values. + Left value.Right value. + The divided value. + + + Checks whether two values are equal. + Left value.Right value. + true if left equals right; false otherwise. + + + Checks whether the left value is greater than the right value. + Left value.Right value. + true if left is greater than right; false otherwise. + + + Checks whether the left value is greater than or equal to the right value. + Left value.Right value. + true if left is greater than or equal to right; false otherwise. + + + Checks whether the left value is less than the right value. + Left value.Right value. + true if left is less than right; false otherwise. + + + Checks whether the left value is less than or equal to the right value. + Left value.Right value. + true if left is less than or equal to right; false otherwise. + + + Calculates the remainder of dividing the left value by the right value. + Left value.Right value. + The remainder value. + + + Multiplies two values with no overflow checking. + Left value.Right value. + The multiplication value. + + + Checks whether two values are not equal. + Left value.Right value. + true if left is does not equal right; false otherwise. + + + Performs logical or of two expressions. + Left value.Right value. + The result of logical or. + + + Subtracts the right value from the left value. + Left value.Right value. + The subtraction value. + + + Negates (arithmetically) the specified value. + Value. + The negated value. + + + Negates (logically) the specified value. + Value. + The negated value. + + + Performs an type cast on the specified value. + Value. + Type reference to check for. + Casted value. + + + Performs an type check on the specified value. + Value. + Type reference to check for. + True if value is-a type; false otherwise. + + + + Concats the given 2 string. + + first string. + second string. + returns a new instance of the concatenated string. + + + + Checks with the parameters are of string type, if no, then they throw. + Otherwise returns true if the target string ends with the given sub string + + target string + sub string + Returns true if the target string ends with the given sub string, otherwise return false. + + + + Returns the index of the given substring in the target string. + + target string + sub string to match + returns the index of the given substring in the target string if present, otherwise returns null. + + + + Returns the length of the given string value. If the value is not of string type, then it throws. + + value whose length needs to be calculated. + length of the string value. + + + + Replaces the given substring with the new string in the target string. + + target string + substring to be replaced. + new string that replaces the sub string. + returns a new string with the substring replaced with new string. + + + + Checks whether the target string starts with the substring. + + target string. + substring + returns true if the target string starts with the given sub string, otherwise returns false. + + + + Returns the substring given the starting index + + target string + starting index for the substring. + the substring given the starting index. + + + + Returns the substring from the target string. + + target string. + starting index for the substring. + length of the substring. + Returns the substring given the starting index and length. + + + + Checks whether the given string is a substring of the target string. + + substring to check for. + target string. + returns true if the target string contains the substring, otherwise returns false. + + + + Returns a copy of the target string converted to lowercase. + + target string + a new string instance with everything in lowercase. + + + + Returns a copy of the target string converted to uppercase. + + target string + a new string instance with everything in uppercase. + + + + Removes all leading and trailing white-space characters from the target string. + + target string. + returns the trimed string. + + + + Returns the year value of the given datetime. + + datetime object. + returns the year value of the given datetime. + + + + Returns the month value of the given datetime. + + datetime object. + returns the month value of the given datetime. + + + + Returns the day value of the given datetime. + + datetime object. + returns the day value of the given datetime. + + + + Returns the hour value of the given datetime. + + datetime object. + returns the hour value of the given datetime. + + + + Returns the minute value of the given datetime. + + datetime object. + returns the minute value of the given datetime. + + + + Returns the second value of the given datetime. + + datetime object. + returns the second value of the given datetime. + + + + Returns the ceiling of the given value + + decimal or double object. + returns the ceiling value for the given double or decimal value. + + + + returns the floor of the given value. + + decimal or double object. + returns the floor value for the given double or decimal value. + + + + Rounds the given value. + + decimal or double object. + returns the round value for the given double or decimal value. + + + Creates an expression that adds two values with no overflow checking. + Left value.Right value. + The added value. + + + Creates a call expression that represents a conditional AND operation that evaluates the second operand only if it has to. + Left value.Right value. + The conditional expression; null if the expressions aren't of the right type. + + + Creates an expression that divides two values. + Left value.Right value. + The divided value. + + + Creates an expression that checks whether two values are equal. + Left value.Right value. + true if left equals right; false otherwise. + + + Creates an expression that checks whether the left value is greater than the right value. + Left value.Right value. + true if left is greater than right; false otherwise. + + + Creates an expression that checks whether the left value is greater than or equal to the right value. + Left value.Right value. + true if left is greater than or equal to right; false otherwise. + + + Creates an expression that checks whether the left value is less than the right value. + Left value.Right value. + true if left is less than right; false otherwise. + + + Creates an expression that checks whether the left value is less than or equal to the right value. + Left value.Right value. + true if left is less than or equal to right; false otherwise. + + + Creates an expression that calculates the remainder of dividing the left value by the right value. + Left value.Right value. + The remainder value. + + + Creates an expression that multiplies two values with no overflow checking. + Left value.Right value. + The multiplication value. + + + Creates a call expression that represents a conditional OR operation that evaluates the second operand only if it has to. + Left value.Right value. + The conditional expression; null if the expressions aren't of the right type. + + + Creates an expression that checks whether two values are not equal. + Left value.Right value. + true if left is does not equal right; false otherwise. + + + Creates an expression that subtracts the right value from the left value. + Left value.Right value. + The subtraction value. + + + Creates an expression that negates (arithmetically) the specified value. + Value expression. + The negated value. + + + Creates an expression that negates (logically) the specified value. + Value expression. + The negated value. + + + + Returns the specified with a + type assignable to System.Object. + + Expression to convert. + + The specified with a type assignable + to System.Object. + + + + + Lexical token representing the parameter for an Any/All query. + + + + + The name of the Any/All parameter. + + + + + Create a new RangeVariableToken + + The name of the visitor for the Any/All query. + + + + Accept a to walk a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + + + + The kind of the query token. + + + + + The name of the parameter. + + + + + Lexical token representing a query option. + + + + + The name of the query option. + + + + + The value of the query option. + + + + + Create a new CustomQueryOptionToken given name and value. + + The name of the query option. + The value of the query option. + + + + Accept a to walk a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + + + + The kind of the query token. + + + + + The name of the query option. + + + + + The value of the query option. + + + + + Helper methods for working with query tokens. + + + + + Try to parse the given string as a InlineCountKind. + + The string to be parsed. + A InlineCountKind value if successful. Null if not. + + + + Try to parse the given segment name as a KeywordKind. + + The segment name. + A KeywordKind value if successful. Null if not. + + + + Get the Uri name equivalent of the given KeywordKind. + + The KeywordKind to get name for. + A $ keyword that represent the given keyword. + + + + Lexical token representing a select operation. + + + + + The properties according to which to select the results. + + + + + Create a SelectToken given the property-accesses of the select query. + + The properties according to which to select the results. + + + + Accept a to walk a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + + + + The kind of the query token. + + + + + The properties according to which to select the results. + + + + + Node representing a function call which returns a single value. + + + + + the name of this function. + + + + + The list of function imports + + + + + List of arguments to this function call. + + + + + The type of value returned by this function. + + + + + The semantically bound parent of this function + + + + + Create a SingleValueFunctionCallNode + + The name of the function to call + List of arguments to this function call. + The type of value returned by this function. + Throws if the input name is null. + + + + Create a SingleValueFunctionCallNode + + The name of the function to call + the list of functions to call + the list of arguments to this function + the type of the value returned by this function. + The semantically bound parent of this function. + Throws if the input functionImports is null. + + + + Accept a that walks a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + Throws if the input visitor is null. + + + + Gets the name of the function to call. + + + + + Gets the list of function imports. + + + + + Gets the list of arguments to this function call. + + + + + Gets The type of value returned by this function. + + + + + Gets the semantically bound parent of this function. + + + + + Gets the kind of this node. + + + + + Class representing a function signature using EDM types. + + + + The argument types for this function signature. + + + + Constructor taking all the argument types. + + The argument types for this function signature. + + + + The argument types for this function signature. + + + + + Class representing a function signature using EDM types. + + + + + The return type of this function signature. + + + + + Constructor taking all the argument types. + + The return type of this function signature. + The argument types for this function signature. + + + + The return type of this function signature. + + + + + Lexical token representing an all-properties access. + + + + + The NextToken token to access the property on. + If this is null, then the property access has no NextToken. That usually means to access the property + on the implicit parameter for the expression, the result on which the expression is being applied. + + + + + Create a new StarToken given the NextToken (if any). + + The NextToken token to access the property on. Pass no if this property has no NextToken. + + + + Accept a to walk a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + + + + The kind of the query token. + + + + + The NextToken token to access the property on. + If this is null, then the property access has no NextToken. That usually means to access the property + on the implicit parameter for the expression, the result on which the expression is being applied. + + + + + the name of this token(inherited from PathToken), which in this case is always "*" + + + + + Helper methods for promoting argument types of operators and function calls. + + + Note that the lists of signatures are for matching primitive types to functions. + Equality (eq and ne) operators are a bit special since they are also defined for + entity and complex types. + + + + Function signatures for logical operators (and, or). + + + Function signatures for the 'not' operator. + + + Function signatures for arithmetic operators (add, sub, mul, div, mod). + + + Function signatures for relational operators (eq, ne, lt, le, gt, ge). + + + Function signatures for the 'negate' operator. + + + Checks that the operands (possibly promoted) are valid for the specified operation. + The operator kind to promote the operand types for. + Type reference of left operand. + Type reference of right operand. + True if a valid function signature was found that matches the given types after any necessary promotions are made. + False if there is no binary operators + + + Checks that the operands (possibly promoted) are valid for the specified operation. + The operator kind to promote the operand types for. + Type of the operand. + True if the type could be promoted; otherwise false. + + + Finds the best fitting function for the specified arguments. + Functions to consider. + Types of the arguments for the function. + The best fitting function; null if none found or ambiguous. + + + Finds the exact fitting function for the specified arguments. + Functions to consider. + Types of the arguments for the function. + The exact fitting function; null if no exact match was found. + + + Checks whether the source type is compatible with the target type. + Source type. + Target type. + true if source can be used in place of target; false otherwise. + + + + Gets the correct set of function signatures for type promotion for a given binary operator. + + The operator kind to get the signatures for. + The set of signatures for the specified . + + + + Gets the correct set of function signatures for type promotion for a given binary operator. + + The operator kind to get the signatures for. + The set of signatures for the specified . + + + Finds the best methods for the specified arguments given a candidate method enumeration. + The candidate function signatures. + The argument type references to match. + The number of "best match" methods. + + + Checks whether the specified method is applicable given the argument expressions. + The candidate function signature to check. + The argument types to match. + An applicable function signature if all argument types can be promoted; 'null' otherwise. + + + Promotes the specified expression to the given type if necessary. + The actual argument type. + The required type to promote to. + True if the could be promoted; otherwise false. + + + Finds the best applicable methods from the specified array that match the arguments. + The candidate function signatures. + The argument types to match. + Best applicable methods. + + + + Checks whether the type list has better argument matching against the + than the type list. + + Actual arguments types. + First type list to check. + Second type list to check. + + True if has better parameter matching than ; otherwise false. + + + + Checks which conversion is better. + Source type. + First candidate type to convert to. + Second candidate type to convert to. + + Return 1 if s -> t1 is a better conversion than s -> t2 + Return -1 if s -> t2 is a better conversion than s -> t1 + Return 0 if neither conversion is better + + + + + Tries to handle the special eq and ne operators, which have a broader definition than the other binary operators. + We try a few special cases and return true if we used one of them. Otherwise we return false, and + allow the regular function matching code to handle the primitive cases. + + Left type. + Right type. + True if this function was able to handle the promotion of these types, false otherwise. + + + Checks whether the specified type is a signed integral type. + Type reference to check. + true if is a signed integral type; false otherwise. + + + Checks whether the specified type is an unsigned integral type. + Type to check. + true if is an unsigned integral type; false otherwise. + + + Checks if the specified type is a decimal or nullable decimal type. + Type to check. + true if is either decimal or nullable decimal type; false otherwise. + + + Checks if the specified type is either double or single or the nullable variants. + Type to check. + true if is double, single or nullable double or single; false otherwise. + + + Gets a flag for the numeric kind of type. + Type to get numeric kind for. + The of the argument. + + + Numeric type kinds. + + + A type that is not numeric. + + + A type that is a char, single, double or decimal. + + + A type that is a signed integral. + + + A type that is an unsigned integral. + + + + Extension methods to make it easier to work with PropertyInfo objects on a type. + + + + + Gets the property info for the EDM property on the specified type. + + The type to get the property on. + Property instance to get the property info for. + Model containing annotations. + Returns the PropertyInfo object for the specified property. + The method searches this type as well as all its base types for the property. + + + + Annotation stored on a type to hold PropertyInfo objects for its properties. + + + + + Cache of property info objects already created for properties on the type the annotation is on. + + + + + Gets the property info annotation for the specified type or creates a new one if it doesn't exist. + + The type to get the annotation for. + The model containing annotations. + The property info annotation. + + + + Gets the property info for the EDM property declared on this type. + + The structured type to get the property on. + Property instance to get the property info for. + The model containing annotations. + Returns the PropertyInfo object for the specified EDM property. + + + + Node representing an access to a property value. + + + + + The value containing this property. + + + + + The EDM property which is to be accessed. + + Only non-entity, non-collection properties are supported by this node. + + + + Constructs a . + + The value containing this property. + The EDM property which is to be accessed. + Throws if input source or property is null. + Throws if input property is not structural, or is a collection. + + + + Accept a that walks a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + Throws if the input visitor is null. + + + + Gets the value containing this property. + + + + + Gets the EDM property which is to be accessed. + + Only non-entity, non-collection properties are supported by this node. + + + + Gets the type of the single value this node represents. + + + + + Gets the kind of this node. + + + + + Node representing a type segment that casts a single entity parent node. + + + + + The entity that we're casting to a different type. + + + + + The target type that the source is cast to. + + + + + The EntitySet containing the source entity. + + + + + Created a SingleEntityCastNode with the given source node and the given type to cast to. + + Source that is being cast. + Type to cast to. + Throws if the input entityType is null. + + + + Accept a that walks a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + + + + Gets the entity that we're casting to a different type. + + + + + Gets the target type that the source is cast to. + + + + + Gets the target type that the source is cast to. + + + + + Gets the EntitySet containing the source entity.. + + + + + Gets the kind of this query node. + + + + + Lexical token representing a type segment. + + + + + The Identifier of the type segment. + + + + + The parent segment. + + + + + Create a TypeSegmentQueryToken given the Identifier and the parent (if any) + + The Identifier of the type segment, including the namespace. + The parent segment. + + + + Accept a to walk a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + + + + The kind of the query token. + + + + + The full name of the type. + + + + + The parent. + + + + + Node representing a unary operator. + + + + + The operand of the unary operator. + + + + + The operator represented by this node. + + + + + Cache for the TypeReference after it has been calculated for the current state of the node. + This can be an expensive calculation so we want to avoid doing it repeatedly. + + + + + Creates a UnaryOperatorNode + + the kind of operator this node represents + the operand that this operator modifies + Throws if the input operand is null. + + + + Accept a that walks a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + Throws if the input visitor is null. + + + + Gets the operator represented by this node. + + + + + Gets the operand of the unary operator. + + + + + Gets the type of the single value this node represents. + + + + + Gets the kind of this query node. + + + + + Helper methods for working with query nodes. + + + + + Checks whether a query node is a collection query node representing a collection of entities. + + The to check. + The converted or null if is not an entity collection node. + + + + Checks whether a query node is a collection query node representing a collection. + + The to check. + The converted or null if is not a collection node. + + + + Compute the result type of a binary operator based on the type of its operands and the operator kind. + + The type reference of the operators. + The kind of operator. + The result type reference of the binary operator. + + + Use this class to parse an expression in the OData URI format. + + Literals (non-normative "handy" reference - see spec for correct expression): + Null null + Boolean true | false + Int32 (digit+) + Int64 (digit+)(L|l) + Decimal (digit+ ['.' digit+])(M|m) + Float (digit+ ['.' digit+][e|E [+|-] digit+)(f|F) + Double (digit+ ['.' digit+][e|E [+|-] digit+) + String "'" .* "'" + DateTime datetime"'"dddd-dd-dd[T|' ']dd:mm[ss[.fffffff]]"'" + DateTimeOffset datetimeoffset"'"dddd-dd-dd[T|' ']dd:mm[ss[.fffffff]]-dd:mm"'" + Time time"'"dd:mm[ss[.fffffff]]"'" + Binary (binary|X)'digit*' + GUID guid'digit*' + + + + + For an identifier, EMD supports chars that match the regex [\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Lm}\p{Nl}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\p{Cf}] + IsLetterOrDigit covers Ll, Lu, Lt, Lo, Lm, Nd, this set covers the rest + + + + Text being parsed. + + + Length of text being parsed. + + + flag to indicate whether to delimit on a semicolon. + + + Whether the lexer is being used to parse function parameters. If true, will allow/recognize parameter aliases and typed nulls. + + + Position on text being parsed. + + + Character being processed. + + + Token being processed. + + + Lexer ignores whitespace + + + Initializes a new . + Expression to parse. + If true, this constructor will call NextToken() to move to the first token. + If true, the lexer will tokenize based on semicolons as well. + + + Initializes a new . + Expression to parse. + If true, this constructor will call NextToken() to move to the first token. + If true, the lexer will tokenize based on semicolons as well. + Whether the lexer is being used to parse function parameters. If true, will allow/recognize parameter aliases and typed nulls. + + + + Determines if the next token can be processed without error without advancing the token. + + The next ExpressionToken. This value is undefined if error is defined. + Exception generated from trying to process the next token. + True if the next token can be processed, false otherwise. + + + Reads the next token, skipping whitespace as necessary, advancing the Lexer. + The next token. + Throws on error. + + + + Starting from an identifier, reads a sequence of dots and + identifiers, and returns the text for it, with whitespace + stripped. + + do we allow a star in this identifier + The dotted identifier starting at the current identifier. + + + Returns the next token without advancing the lexer. + The next token. + + + + Check whether the current identifier is a function. If so, expand the token text to the function signature + + True if the current identifier is a function call + + + Validates the current token is of the specified kind. + Expected token kind. + + + Creates an exception for a parse error. + Message text. + A new Exception. + + + Reads the next token, skipping whitespace as necessary. + Error that occurred while trying to process the next token. + The next token, which may be 'bad' if an error occurs. + + + + Expand the token selection if the next token matches the input token + + the list of token id to match + true if matched + + + Handles lexemes that are formed by an identifier followed by a quoted string. + This method modified the token field as necessary. + + + Advanced to the next character. + + + Parses a token that starts with a digit. + The kind of token recognized. + + + + Parses white spaces + + + + + Parses a complex value + + the starting delimiter + the ending delimiter. + + + + Advance the pointer to the next occurance of the given value, swallowing all characters in between. + + the ending delimiter. + + + Parses an identifier by advancing the current character. + + + Sets the text position. + New text position. + + + Validates the current character is a digit. + + + Token being processed. + + + Text being parsed. + + + Position on text being parsed. + + + + Is the current char a valid starting char for an identifier. + Valid starting chars for identifier include all that are supported by EDM ([\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Lm}\p{Nl}]) and '_'. + + + + + Is the current char a valid non-starting char for an identifier. + Valid non-starting chars for identifier include all that are supported + by EDM [\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Lm}\p{Nl}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\p{Cf}]. + This list includes '_', which is ConnectorPunctuation (Pc) + + + + This class implements IEqualityComparer for UnicodeCategory + + Using this class rather than EqualityComparer<T>.Default + saves from JIT'ing it in each AppDomain. + + + + + Checks whether two unicode categories are equal + + first unicode category + second unicode category + true if they are equal, false otherwise + + + + Gets a hash code for the specified unicode category + + the input value + The hash code for the given input unicode category, the underlying int + + + Use this class to represent a lexical expression token. + + + Token representing gt keyword + + + Token representing eq keyword + + + Token representing lt keyword + + + InternalKind of token. + + + Token text. + + + Position of token. + + + Provides a string representation of this token. + String representation of this token. + + + Gets the current identifier text. + The current identifier text. + + + Checks that this token has the specified identifier. + Identifier to check. + true if this is an identifier with the specified text. + + + Checks whether this token is a comparison operator. + + + Checks whether this token is an equality operator. + + + Checks whether this token is a valid token for a key value. + + + Checks whether this token is a valid token for a function parameter. + + + Enumeration values for token kinds. + + + Unknown. + + + End of text. + + + '=' - equality character. + + + Identifier. + + + NullLiteral. + + + BooleanLiteral. + + + StringLiteral. + + + IntegerLiteral. + + + Int64 literal. + + + Single literal. + + + DateTime literal. + + + DateTimeOffset literal. + + + Time literal. + + + Decimal literal. + + + Double literal. + + + GUID literal. + + + Binary literal. + + + Geography literal. + + + Geometry literal. + + + Exclamation. + + + OpenParen. + + + CloseParen. + + + Comma. + + + Colon. + + + Minus. + + + Slash. + + + Question. + + + Dot. + + + Star. + + + SemiColon + + + ParameterAlias + + + A Brace BracketedExpression is an expression within brackets or braces. It contains a JSON object or array. + + + + Lexical token representing a function call. + + + + + The name of the function to call. + + + + + The arguments for the function. + + + + + the source token for this function call + + + + + Create a new FunctionCallToken using the given function name and argument values. + + The name of the function to call. + The argument values for the function. + + + + Create a new FunctionCallToken using the given function name and parameter tokens. + + The name of the function to call. + The arguments for the function. + The syntactically bound parent of this function + + + + Accept a to walk a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + + + + The kind of the query token. + + + + + The name of the function to call. + + + + + The arguments for the function. + + + + + The syntactically bound parent of this function. + + + + + Node representing a key lookup on a collection. + + + + + The collection that this key is referring to. + + + + + The EntitySet containing the collection this key referrs to. + + + + + The resouce type of the single value the key referrs to. + + + + + List of the properties and their values that we use to look up our return value. + + + + + Constructs a KeyLookupNode. + + The collection that this key is referring to. + List of the properties and their values that we use to look up our return value. + Throws if the input source is null. + + + + Gets the collection that this key is referring to. + + + + + Gets the list of the properties and their values that we use to look up our return value. + + + + + Gets the resouce type of the single value that the key referrs to. + + + + + Gets the resouce type of the single value that the key referrs to. + + + + + Gets the EntitySet that contains the collection this key referrs to. + + + + + Gets the kind for this node. + + + + + Class representing a single key property value in a key lookup. + + + + + Gets or sets the key property. + + + + + Gets or sets the value of the key property. + + + + + Class representing a single named value (name and value pair). + + + + + The name of the value. Or null if the name was not used for this value. + + + + + The value - a literal. + + + + + Create a new NamedValue lookup given name and value. + + The name of the value. Or null if the name was not used for this value. + The value - a literal. + + + + The name of the value. Or null if the name was not used for this value. + + + + + The value - a literal. + + + + + Lexical token representing a literal value. + + + + + The original text value of the literal. + + This is used only internally to simulate correct compat behavior with WCF DS. + We should only use this during type promotion when applying metadata. + + + + The value of the literal. This is a parsed primitive value. + + + + + Create a new LiteralToken given value and originalText + + The value of the literal. This is a parsed primitive value. + + + + Create a new LiteralToken given value and originalText + + The value of the literal. This is a parsed primitive value. + The original text value of the literal. + This is used only internally to simulate correct compat behavior with WCF DS. + We should only use this during type promotion when applying metadata. + + + + Accept a to walk a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + + + + The kind of the query token. + + + + + The value of the literal. This is a parsed primitive value. + + + + + The original text value of the literal. + + This is used only internally to simulate correct compat behavior with WCF DS. + We should only use this during type promotion when applying metadata. + + + + Binder which applies metadata to a lexical QueryToken tree and produces a bound semantic QueryNode tree. + + + + + Encapsulates the state of the metadate binding. + + + + + Constructs a MetadataBinder with the given . + This constructor gets used if you are not calling the top level entry point ParseQuery. + This is an at-your-own-risk constructor, since you must provide valid initial state. + + The initialState to use for binding. + + + + Processes the skip operator (if any) and returns the combined query. + + The skip amount or null if none was specified. + the skip clause + + + + Processes the top operator (if any) and returns the combined query. + + The top amount or null if none was specified. + the top clause + + + + Process the remaining query options (represent the set of custom query options after + service operation parameters and system query options have been removed). + + the current state of the binding algorithm. + pointer to a binder method. + The list of instances after binding. + + + + Visits a in the lexical tree and binds it to metadata producing a semantic . + + The query token on the input. + The bound query node output. + + + + Bind a function parameter token + + The token to bind. + A semantically bound FunctionCallNode + + + + Binds a InnerPathToken. + + Token to bind. + Either a SingleNavigationNode, CollectionNavigationNode, SinglePropertyAccessNode (complex), + or CollectionPropertyAccessNode (primitive or complex) that is the metadata-bound version of the given token. + + + + Binds a parameter token. + + The parameter token to bind. + The bound query node. + + + + Binds a literal token. + + The literal token to bind. + The bound literal token. + + + + Binds a binary operator token. + + The binary operator token to bind. + The bound binary operator token. + + + + Binds a unary operator token. + + The unary operator token to bind. + The bound unary operator token. + + + + Binds a type startPath token. + + The type startPath token to bind. + The bound type startPath token. + + + + Binds a LambdaToken. + + The LambdaToken to bind. + A bound Any or All node. + + + + Binds a property access token. + + The property access token to bind. + The bound property access token. + + + + Binds a function call token. + + The function call token to bind. + The bound function call token. + + + + Encapsulates the state of the metadate binding. + + + + + Delegate for a function that visits a QueryToken and translates it into a bound QueryNode. + TODO Eventually replace this with a real interface for a visitor. + + QueryToken to visit. + Metadata bound QueryNode. + + + + Enumeration of order by directions. + + + + + Ascending order. + + + + + Descending order. + + + + + Lexical token representing an order by operation. + + + + + The direction of the ordering. + + + + + The expression according to which to order the results. + + + + + Create a new OrderByToken given the expression and direction + + The expression according to which to order the results. + The direction of the ordering. + + + + Accept a to walk a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + + + + The kind of the query token. + + + + + The direction of the ordering. + + + + + The expression according to which to order the results. + + + + + Lexical token representing the last segment in a path. + + + + + The Identifier of the property to access. + + + + + The NextToken token to access the property on. + If this is null, then the property access has no NextToken. That usually means to access the property + on the implicit parameter for the expression, the result on which the expression is being applied. + + + + + Create a EndPathToken given the Identifier and the NextToken (if any) + + The Identifier of the property to access. + The NextToken token to access the property on. + + + + Accept a to walk a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + + + + The kind of the query token. + + + + + The NextToken token to access the property on. + If this is null, then the property access has no NextToken. That usually means to access the property + on the implicit parameter for the expression, the result on which the expression is being applied. + + + + + The Identifier of the property to access. + + + + + The root node of a query. Holds the query itself plus additional metadata about the query. + + + + + The top level path for this Uri. + + + + + Any custom query options for this Uri. + + + + + Any select or expand options in this uri. Can be null. + + + + + Any filter option in this uri. Can be null. + + + + + Any order by option in this uri. Can be null. + + + + + Any skip option in this uri. Can be null. + + + + + Any top option in this uri. Can be null. + + + + + Any inline count option in this uri. Can be null. + + + + + Create a new ODataUri. This contains the semantic meaning of the + entire uri. + + The top level path for this uri. + Any custom query options for this uri. Can be null. + Any $select or $expand option for this uri. Can be null. + Any $filter option for this uri. Can be null. + Any $orderby option for this uri. Can be null + Any $skip option for this uri. Can be null. + Any $top option for this uri. Can be null. + Any $inlinecount option for this uri. Can be null. + + + + Gets the top level path for this uri. + + + + + Gets any custom query options for this uri. + + + + + Gets any $select or $expand option for this uri. + + + + + Gets any $filter option for this uri. + + + + + Gets any $orderby option for this uri. + + + + + Gets any $skip option for this uri. + + + + + Gets any $top option for this uri. + + + + + Get any $inlinecount option for this uri. + + + + + Lexical token representing the entire query. + + + + + The default setting for the max depth. + + + + + The path for the query. + + + + + The filter for the query. If the property is null, there's no filter for this query. + + + + + Enumeration of order by tokens. The order by operations must be applied in the order in which + they are listed in this enumeration. + + + + + The select for the query. If the property is null, there's no select for this query. + + + + + The expand for the query. If the property is null, there's no expand for this query. + + + + + The number of entities to skip in the result. + + + + + The (maximum) number of entities to include in the result. + + + + + The format for the query. + + + + + Type of inlinecount in the response of the query. + + + + + The query options for the query; these include non-system query options starting with '$', + service operation arguments and custom query options. + + + + + Create a new SyntacticTree given its parts as arguments. + + The path for the query. Must not be null. + The filter for the query. If the property is null, there's no filter for this query. + Enumeration of order by tokens. + The select for the query. If the property is null, there's no select for this query. + The expansions for the query. If the property is null, there are no expandsion for this query. + The number of entities to skip in the result. + The (maximum) number of entities to include in the result. + Type of inlinecount in the response of the query. + The format for the query. + The query options for the query. + + + + Parses the and returns a new instance of + describing the query specified by the uri. + + The absolute URI which holds the query to parse. This must be a path relative to the . + The base URI of the service. + A new instance of which represents the query specified in the . + + + + Parses the and returns a new instance of + describing the query specified by the uri. + + The absolute URI which holds the query to parse. This must be a path relative to the . + The base URI of the service. + The maximum depth of any single query part. Security setting to guard against DoS attacks causing stack overflows and such. + A new instance of which represents the query specified in the . + + + + The path for the query. + + + + + The filter for the query. If the property is null, there's no filter for this query. + + + + + Enumeration of order by tokens. The order by operations must be applied in the order in which + they are listed in this enumeration. + + + + + The select for the query. If the property is null, there's no select for this query. + + + + + The expand for the query. If the property is null, there's no expand for this query. + + + + + The number of entities to skip in the result. + + + + + The (maximum) number of entities to include in the result. + + + + + The format for the query. + + + + + Type of inlinecount in the response of the query. + + + + + The query options for the query; these include non-system query options starting with '$', + service operation arguments and custom query options. + + + + + Public enumeration of kinds of query nodes. A subset of InternalQueryNodeKind + + + + + No query node kind... the default value. + + + + + A constant value. + + + + + A node that represents conversion from one type to another. + + + + + Non-entity node referencing a range variable. + + + + + Node used to represent a binary operator. + + + + + Node used to represent a unary operator. + + + + + Node describing access to a property which is a single (non-collection) non-entity value. + + + + + Node describing access to a property which is a non-entity collection value. + + + + + Function call returning a single value. + + + + + Any query. + + + + + Node for a navigation property with target multiplicity Many. + + + + + Node for a navigation property with target multiplicity ZeroOrOne or One. + + + + + Single-value property access that refers to an open property. + + + + + Cast on a single thing. + + + + + All query. + + + + + Cast on a collection of entities. + + + + + Placeholder node referencing a rangeVariable on the binding stack that references an entity. + + + + + Node the represents a function call that returns a single entity. + + + + + Node that represents a function call that returns a collection. + + + + + Node that represents a funciton call that returns a collection of entities. + + + + + Node that represents a named function parameter. + + + + + Internal enumeration of kinds of query nodes. A superset of QueryNodeKind + + + + + none... default value. + + + + + The constant value. + + + + + A node that signifies the promotion of a primitive type. + + + + + Non-entity node referencing a range variable. + + + + + Parameter node used to represent a binary operator. + + + + + Parameter node used to represent a unary operator. + + + + + Node describing access to a property which is a single (non-collection) non-entity value. + + + + + Node describing access to a property which is a non-entity collection value. + + + + + Function call returning a single value. + + + + + Any query. + + + + + Node for a navigation property with target multiplicity Many. + + + + + Node for a navigation property with target multiplicity ZeroOrOne or One. + + + + + Single-value property access that refers to an open property. + + + + + Cast on a single thing. + + + + + All query. + + + + + Cast on a collection. + + + + + Entity node referencing a range variable. + + + + + SingleEntityFunctionCall node. + + + + + Node that represents a function call that returns a collection. + + + + + Node that represents a funciton call that returns a collection of entities. + + + + + Node that represents a named function parameter. + + + + + The entity set node. + + + + + The key lookup on a collection. + + + + + Helper methods for working with query options. + + + + + Returns a query option value by its name and removes the query option from the collection. + + The collection of query options. + The name of the query option to get. + The value of the query option or null if no such query option exists. + + + + Node representing an entity set. + TODO This should be deleted but it is used in many, many tests. + + + + + The entity set this node represents. + + + + + The resouce type of a single entity in the entity set. + + + + + the type of the collection returned by this function + + + + + Creates an + + The entity set this node represents + Throws if the input entitySet is null. + + + + Gets the resouce type of a single entity in the entity set. + + + + + The type of the collection represented by this node. + + + + + Gets the resouce type of a single entity in the entity set. + + + + + Gets the entity set this node represents. + + + + + Gets the kind for this node. + + + + + Parser which consumes the URI format of primitive types and converts it to primitive types. + + + + Whitespace characters to trim around literals. + + + Determines whether the specified character is a valid hexadecimal digit. + Character to check. + true if is a valid hex digit; false otherwise. + + + Converts a string to a primitive value. + String text to convert. + Type to convert string to. + After invocation, converted value. + true if the value was converted; false otherwise. + Copy of the WebConvert.TryKeyStringToPrimitive + + + + Try to parse a string value into a non-negative integer. + + The string value to parse. + The non-negative integer value parsed from the . + True if could successfully be parsed into a non-negative integer; otherwise returns false. + + + + Check and strip the input for literal + + The suffix value + The string to check + A string that has been striped of the suffix + Copy of WebConvert.TryRemoveLiteralSuffix. + + + + Tries to remove a literal from the specified . + + Prefix to remove; one-letter prefixes are case-sensitive, others insensitive. + Text to attempt to remove prefix from. + true if the prefix was found and removed; false otherwise. + Copy of WebConvert.TryRemoveLiteralPrefix. + + + + Removes quotes from the single-quotes text. + + Text to remove quotes from. + Whether quotes were successfully removed. + Copy of WebConvert.TryRemoveQuotes. + + + + Converts a string to a byte[] value. + + String text to convert. + After invocation, converted value. + true if the value was converted; false otherwise. + Copy of WebConvert.TryKeyStringToByteArray. + + + + Converts a string to a GUID value. + + String text to convert. + After invocation, converted value. + true if the value was converted; false otherwise. + Copy of WebConvert.TryKeyStringToGuid. + + + + Converts a string to a DateTime value. + + String text to convert. + After invocation, converted value. + true if the value was converted; false otherwise. + Copy of WebConvert.TryKeyStringToDateTime. + + + + Converts a string to a DateTimeOffset value. + + String text to convert. + After invocation, converted value. + true if the value was converted; false otherwise. + Copy of WebConvert.TryKeyStringToDateTimeOffset. + + + + Converts a string to a Time value. + + String text to convert. + After invocation, converted value. + true if the value was converted; false otherwise. + Copy of WebConvert.TryKeyStringToTime. + + + + Try to parse the given text to a Geography object. + + Text to parse. + Geography to return. + True if succeeds, false if not. + + + + Try to parse the given text to a Geometry object. + + Text to parse. + Geometry to return. + True if succeeds, false if not. + + + + Check and strip the input for literal + + The suffix value + The string to check + A string that has been striped of the suffix + Copy of WebConvert.TryRemoveLiteralSuffix. + + + + Tries to remove a literal from the specified . + + Prefix to remove; one-letter prefixes are case-sensitive, others insensitive. + Text to attempt to remove prefix from. + true if the prefix was found and removed; false otherwise. + Copy of WebConvert.TryRemoveLiteralPrefix. + + + + Checks whether the specified text is a correctly formatted quoted value. + + Text to check. + true if the text is correctly formatted, false otherwise. + Copy of WebConvert.IsKeyValueQuoted. + + + + Removes quotes from the single-quotes text. + + Text to remove quotes from. + The specified with single quotes removed. + Copy of WebConvert.RemoveQuotes. + + + + Returns the 4 bits that correspond to the specified character. + + Character in the 0-F range to be converted. + The 4 bits that correspond to the specified character. + Thrown when 'c' is not in the '0'-'9','a'-'f' range. + This is a copy of WebConvert.HexCharToNibble. + + + + Enumeration of kinds of query tokens. + + + + + The binary operator. + + + + + The unary operator. + + + + + The literal value. + + + + + The function call. + + + + + The property access. + + + + + The order by operation. + + + + + A query option. + + + + + The Select query. + + + + + The *. + + + + + The Expand query. + + + + + Type segment. + + + + + Any query. + + + + + Non root segment. + + + + + type segment. + + + + + Parameter token. + + + + + All query. + + + + + ExpandTerm Token + + + + + FunctionParameterToken + + + + + FunctionParameterAlias + + + + + RawFunctionParameterValue + + + + + Lexical token representing a unary operator. + + + + + The operator represented by this node. + + + + + The operand. + + + + + Create a new UnaryOperatorToken given the operator and operand + + The operator represented by this node. + The operand. + + + + Accept a to walk a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + + + + The kind of the query token. + + + + + The operator represented by this node. + + + + + The operand. + + + + + Enumeration of binary operators. + + + + + The unary - operator. + + + + + The not operator. + + + + + Constant values related to the URI query syntax. + + + + A segment name in a URI that indicates metadata is being requested. + + + A segment name in a URI that indicates a plain primitive value is being requested. + + + A segment name in a URI that indicates batch is being requested. + + + A segment name in a URI that indicates that this is an entity reference link operation. + + + A segment name in a URI that indicates that this is a count operation. + + + A filter query option name. + + + An order by query option name. + + + A select query option name. + + + An expand query option name. + + + A skip query option name. + + + A valid value to denote all-properties access. + + + A top query option name. + + + A inline-count query option name. + + + A format query option name. + + + + Parser which consumes the query expression ($filter, $orderby) and produces the lexical object model. + + + + + The maximum number of recursion nesting allowed. + + + + + Set of parsed parameters + + + + + The current recursion depth. + + + + + The lexer being used for the parsing. + + + + + Constructor. + + The maximum depth of each part of the query - a recursion limit. + + + + Parses a literal. + + The lexer to use. + The literal query token or null if something else was found. + + + + Parses the $filter expression. + + The $filter expression string to parse. + The lexical token representing the filter. + + + + Parses the $orderby expression. + + The $orderby expression string to parse. + The enumeraion of lexical tokens representing order by tokens. + + + + Creates a new for the given filter or orderby expression. + + The expression. + The lexer for the expression, which will have already moved to the first token. + + + Creates an exception for a parse error. + Message text. + A new Exception. + + + + Parses typed literals. + + The lexer to use. + Expected type to be parsed. + The EDM type name of the expected type to be parsed. + The literal token produced by building the given literal. + + + + Parses null literals. + + The lexer to use. + The literal token produced by building the given literal. + + + + Parses the expression. + + The lexical token representing the expression. + + + + Parses the or operator. + + The lexical token representing the expression. + + + + Parses the and operator. + + The lexical token representing the expression. + + + + Parses the eq, ne, lt, gt, le, ge operators. + + The lexical token representing the expression. + + + + Parses the add, sub operators. + + The lexical token representing the expression. + + + + Parses the mul, div, mod operators. + + The lexical token representing the expression. + + + + Parses the -, not unary operators. + + The lexical token representing the expression. + + + + Parses the primary expressions. + + The lexical token representing the expression. + + + + Handles the start of primary expressions. + + The lexical token representing the expression. + + + + Parses parenthesized expressions. + + The lexical token representing the expression. + + + + Parses the Any portion of the query + + The parent of the Any node. + The lexical token representing the Any query. + + + + Parses the All portion of the query + + The parent of the All node. + The lexical token representing the All query. + + + + Parses the Any/All portion of the query + + The parent of the Any/All node. + Denotes whether an Any or All is to be parsed. + The lexical token representing the Any/All query. + + + + Parses a segment. + + The parent of the segment node. + The lexical token representing the segment. + + + + Checks that the current token has the specified identifier. + + Identifier to check. + true if the current token is an identifier with the specified text. + + + + Marks the fact that a recursive method was entered, and checks that the depth is allowed. + + + + + Marks the fact that a recursive method is leaving. + + + + + Delegate for a function that parses an expression and translates it into a QueryToken. + + A QueryToken + + + + Parser which consumes the URI path and produces the lexical object model. + + + + + The maximum number of segments allowed. + + + + + Constructor. + + The maximum number of segments for each part of the query. + + + + Parses the and returns a list of strings for each segment. + + The relative URI which holds the query to parse. + a list of strings for each segment in the uri. + + + + Returns list of segments in the specified path (eg: /abc/pqr -> abc, pqr). + + The absolute URI of the request. + The service base URI for the request. + List of unescaped segments. + + + + Class that knows how to bind unary operators. + + + + + Method to use for binding the parent node, if needed. + + + + + Constructs a UnaryOperatorBinder with the given method to be used binding the parent token if needed. + + Method to use for binding the parent token, if needed. + + + + Binds a unary operator token. + + The unary operator token to bind. + The bound unary operator token. + + + + Get the promoted type reference of the operand + + the operand + the operator kind + the type reference of the operand + + + + Retrieve SingleValueNode operand from given token. + + The token + the SingleValueNode operand + + + + Node representing a single navigation property. + + + + + The entity set that this NavigationProperty targets. + + + + + The previous node in the path. + + + + + The navigation property this node represents. + + + + + The type of entity that this NavigationProperty targets. + + + + + Constructs a SingleNavigationNode. + + The navigation property this node represents. + The previous node in the path. + Throws if the input navigationProperty or source is null. + Throws if the input navigationProperty targets more than one entity. + + + + Constructs a SingleNavigationNode. + + The navigation property this node represents. + The entity set that this of the previous segment. + Throws if the input navigationProperty or source is null. + Throws if the input navigationProperty targets more than one entity. + + + + Accept a that walks a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + Throws if the input visitor is null. + + + + Gets the previous node in the path. + + + + + Gets the navigation property this node represents. + + + + + Gets the target multiplicity. + + + + + Gets the type of entity that this NavigationProperty targets. + + + + + Gets the type of entity that this NavigationProperty targets. + + + + + Gets the entity set that this NavigationProperty targets. + + + + + Gets the kind of this query node. + + + + + Uri utility methods. + + + + + Determines whether the Uri instance is a + base of the specified Uri instance. + + + The check is host agnostic. For example, "http://host1.com/Service.svc" is a valid base Uri of "https://host2.org/Service.svc/Bla" + but is not a valid base for "http://host1.com/OtherService.svc/Bla". + + The candidate base URI. + The specified Uri instance to test. + true if the baseUri Uri instance is a base of uri; otherwise false. + + + + Parses query options from a specified URI into a dictionary. + + The uri to get the query options from. + The parsed query options. + This method returns with all the query options. + Note that it is valid to include multiple query options with the same name. + + + + is this selection item a structural or navigation property selection item. + + the selection item to check + true if this selection item is a structural property selection item. + + + Creates a URI suitable for host-agnostic comparison purposes. + URI to compare. + URI suitable for comparison. + + + + Check whether the Uri is the base of the Uri. + + The candidate base Uri. + The Uri to check. + True if the is the base of the Uri. + + + + Class responsible for determining the type name that should be written on the wire for entries and values in the ATOM and Verbose JSON formats. + + + + + Class to validate and resolve the type name to be serialized. + + + + + Validates a type name to ensure that it's not an empty string and resolves it against the provided . + + The model to use. + The type name to validate. + The expected type kind for the given type name. + The type with the given name and kind if a user model was available, otherwise null. + + + + Resolves and validates the Edm type for the given . + + The model to use. + The type inferred from the model or null if the model is not a user model. + The value in question to resolve the type for. + true if the type name belongs to an open property, false otherwise. + A type for the or null if no metadata is available. + + + + Gets the type name from the given . + + The value to get the type name from. This can be an ODataPrimitiveValue, an ODataComplexValue, an ODataCollectionValue or a Clr primitive object. + The type name for the given . + + + + Resolve a type name against the provided . If not payload type name is specified, + derive the type from the model type (if available). + + The model to use. + The type inferred from the model or null if the model is not a user model. + The type name to be resolved. + The expected type kind of the resolved type. + True if the type name belongs to an open property. + A type for the or null if no type name is specified and no metadata is available. + + + + Validates that the (optional) is the same as the (optional) . + + The (optional) type from the metadata definition (the expected type). + The (optional) type from the value (the actual type). + The type as derived from the and/or . + + + + Determines the type name for the given entry to write to the payload. + + The ODataEntry whose type name is to be written + Type name to write to the payload, or null if no type name should be written. + + + + Determines the type name for the given value to write to the payload. + + The value whose type name is to be written. This can be an ODataPrimitiveValue, an ODataComplexValue, an ODataCollectionValue or a Clr primitive object. + The type resolved from the value. + The serialization type name annotation. + true if the type name belongs to an open property, false otherwise. + Returns the item type name of the collection type if is a collection value and its type name can be determined. + Type name to write to the payload, or null if no type should be written. + + + Atom metadata description for a categories element (app:categories). + + + Gets or sets a value that indicates whether the list of categories is fixed or an open set. + true if the list of categories is fixed; false if the list of categories is an open set. + + + Gets or sets the URI indicating the scheme of the categories without a scheme. + The URI indicating the scheme of the categories without a scheme. + + + Gets or sets the URI of the category document. + The URI of the category document. + + If this property is not null, the properties and must be both null + and the must be either null or empty collection. + + + + Gets or sets the atom category elements inside this categories element. + The atom category elements inside this categories element. + + + + Class responsible for storing and manipulating instance annotation data in ATOM payloads. + + + + + Backing field of the Target property. + + + + + Backing field of the Term property. + + + + + Backing field of the Value property. + + + + + Constructor. + + The target of the annotation. + The term whose value is being expressed through this annotation. + The annotation's value. + + + + Creates a new instance of this class by consuming xml from the given reader. + Creates an Atom-specific instance annotation from the format-independent representation of an annotation. + + The format-independent represetnation of an instance annotation. + The value of the target attribute on the m:annotation element, or null if the attribute should be omitted. + The created AtomInstanceAnnotation. + + + + Creates a new instance of this class by consuming xml from the given input context. + + The input context to use to create the annotation. + The property and value deserializer to use when reading values in the annotation element content. + The populated with the information from the 'm:annotation' XML element, as long as the value is a string. Returns null otherwise. + + Pre-Condition: XmlNodeType.Element - The annotation element to read. + Post-Condition: XmlNodeType.Any - The node after the end of the annotation element, or the same element as in the pre-condition if the annotation was skipped. + + + + + Retrieves the name of the attribute used in attribute value notation to indicate the given primitive type kind. + + The primitive type kind to look up. + The name of the corresponding attribute. + + + + Retrieves the Edm type represented by the given attribute name when using attribute value notation. + + The name of the attribute (must be one of "string", "int", "bool", "decimal", "float") + A nullable reference to the type represented by the attribute name, or null if the given name is not a valid attribute value notation name. + + + + Reads the current element's content as an ODataValue. + + The property and value deserializer to use to read values in ATOM. + The expected type of the annotation, may be null if the term is not defined in the model. + The deserialized value. + + Pre-Condition: XmlNodeType.Element - The XML element containing the value to read (also the attributes will be read from it) + Post-Condition: XmlNodeType.EndElement - The end tag of the element. + XmlNodeType.Element - The empty element node. + + + + + Reads an annotation's value from the annotation value notation specified on the current element. + + The expected type reference of the vocabulary term from the metadata. + The type reference indicated by the name of the attribute used in attribute value notation. + For example, if the attribute was called "string", this will be a reference to the string type. + The name of the attribute used by attribute avalue notation. + The value of the attribute used by attribute value notation. + The value of the "m:type" attribute on the annotation element. + true if the annotation element is empty, false otherwise. + The edm model instance. + The message reader settings instance. + The payload version to read. + The primitive value represented on this element via attribute value notation. + + + + The target of this annotation, as specified in the m:annotation/@target attribute. + + + + + The term of this annotation's value, as specified in the m:annotation/@term attribute. + + + + + The value of this annotation. + + + + + True if the annotation is targeting the xml element in which the annotation was found; false if the annotation is targeting a different element. + + + + + Xml writer which wraps another writer and fixes prefixes so that the root element is not prefix-qualified (same for everything else with the same prefix). + + + + + The wrapped writer. + + + + + The root prefix, once the first element of the document has been written. + + + + + Initializes a new instance of . + + The writer to wrap. + + + + Copies everything from the object to the writer. The position of the remains unchanged. + + The to copy from. + true to copy the default attributes; otherwise, false. + is null. + + + + When overridden in a derived class, copies everything from the reader to the writer and moves the reader to the start of the next sibling. + + The to read from. + true to copy the default attributes from the XmlReader; otherwise, false. + is null. + contains invalid characters. + + + + When overridden in a derived class, writes out all the attributes found at the current position in the . + + The XmlReader from which to copy the attributes. + true to copy the default attributes from the XmlReader; otherwise, false. + is null. + The reader is not positioned on an element, attribute or XmlDeclaration node. + + + + When overridden in a derived class, returns the closest prefix defined in the current namespace scope for the namespace URI. + + + The matching prefix or null if no matching namespace URI is found in the current scope. + + The namespace URI whose prefix you want to find. + is either null or String.Empty. + + + + When overridden in a derived class, flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. + + + + + When overridden in a derived class, writes out the specified name, ensuring it is a valid NmToken according to the W3C XML 1.0 recommendation (http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name). + + The name to write. + is not a valid NmToken; or is either null or String.Empty. + + + + When overridden in a derived class, closes this stream and the underlying stream. + + A call is made to write more output after Close has been called or the result of this call is an invalid XML document. + + + + When overridden in a derived class, encodes the specified binary bytes as BinHex and writes out the resulting text. + + Byte array to encode. The position in the buffer indicating the start of the bytes to write. The number of bytes to write. is null. The writer is closed or in error state. or is less than zero. -or-The buffer length minus is less than . + + + + When overridden in a derived class, writes raw markup manually from a string. + + String containing the text to write. + is either null or String.Empty. + + + + When overridden in a derived class, encodes the specified binary bytes as Base64 and writes out the resulting text. + + Byte array to encode. The position in the buffer indicating the start of the bytes to write. + The number of bytes to write. is null. + or is less than zero. -or-The buffer length minus is less than . + + + + When overridden in a derived class, writes raw markup manually from a character buffer. + + Character array containing the text to write. The position within the buffer indicating the start of the text to write. + The number of characters to write. is null. + or is less than zero. -or-The buffer length minus is less than . + + + + When overridden in a derived class, writes text one buffer at a time. + + Character array containing the text to write. The position in the buffer indicating the start of the text to write. + The number of characters to write. + is null. + or is less than zero. -or-The buffer length minus is less than ; the call results in surrogate pair characters being split or an invalid surrogate pair being written. + The parameter value is not valid. + + + + When overridden in a derived class, generates and writes the surrogate character entity for the surrogate character pair. + + The low surrogate. This must be a value between 0xDC00 and 0xDFFF. + The high surrogate. This must be a value between 0xD800 and 0xDBFF. + An invalid surrogate character pair was passed. + + + + When overridden in a derived class, writes the given text content. + + The text to write. The text string contains an invalid surrogate pair. + + + + When overridden in a derived class, writes the start of an attribute with the specified prefix, local name, and namespace URI. + + The namespace prefix of the attribute. The local name of the attribute. + The namespace URI for the attribute. + There is a character in the buffer that is a valid XML character but is not valid for the output encoding. For example, if the output encoding is ASCII, you should only use characters from the range of 0 to 127 for element and attribute names. The invalid character might be in the argument of this method or in an argument of previous methods that were writing to the buffer. Such characters are escaped by character entity references when possible (for example, in text nodes or attribute values). However, the character entity reference is not allowed in element and attribute names, comments, processing instructions, or CDATA sections. + + + + When overridden in a derived class, closes the previous call. + + + + + When overridden in a derived class, writes out a <![CDATA[...]]> block containing the specified text. + + The text to place inside the CDATA block. + The text would result in a non-well formed XML document. + + + + When overridden in a derived class, writes out a comment <!--...--> containing the specified text. + + Text to place inside the comment. + The text would result in a non-well formed XML document. + + + + When overridden in a derived class, writes out a processing instruction with a space between the name and text as follows: <?name text?>. + + The name of the processing instruction. + The text to include in the processing instruction. + The text would result in a non-well formed XML document. is either null or String.Empty.This method is being used to create an XML declaration after has already been called. + + + + When overridden in a derived class, writes out an entity reference as &name;. + + The name of the entity reference. + is either null or String.Empty. + + + + When overridden in a derived class, forces the generation of a character entity for the specified Unicode character value. + + The Unicode character for which to generate a character entity. + The character is in the surrogate pair character range, 0xd800 - 0xdfff. + + + + When overridden in a derived class, writes out the given white space. + + The string of white space characters. + The string contains non-white space characters. + + + + When overridden in a derived class, writes the XML declaration with the version "1.0". + + This is not the first write method called after the constructor. + + + + When overridden in a derived class, writes the XML declaration with the version "1.0" and the standalone attribute. + + If true, it writes "standalone=yes"; if false, it writes "standalone=no". + This is not the first write method called after the constructor. + + + + When overridden in a derived class, closes any open elements or attributes and puts the writer back in the Start state. + + The XML document is invalid. + + + + When overridden in a derived class, writes the DOCTYPE declaration with the specified name and optional attributes. + + The name of the DOCTYPE. This must be non-empty. + If non-null it also writes public override "pubid" "sysid" where and are replaced with the value of the given arguments. + If is null and is non-null it writes SYSTEM "sysid" where is replaced with the value of this argument. + If non-null it writes [subset] where subset is replaced with the value of this argument. + This method was called outside the prolog (after the root element). + The value for would result in invalid XML. + + + + When overridden in a derived class, writes the specified start tag and associates it with the given namespace and prefix. + + The namespace prefix of the element. The local name of the element. + The namespace URI to associate with the element. + The writer is closed. + There is a character in the buffer that is a valid XML character but is not valid for the output encoding. For example, if the output encoding is ASCII, you should only use characters from the range of 0 to 127 for element and attribute names. The invalid character might be in the argument of this method or in an argument of previous methods that were writing to the buffer. Such characters are escaped by character entity references when possible (for example, in text nodes or attribute values). However, the character entity reference is not allowed in element and attribute names, comments, processing instructions, or CDATA sections. + + + + When overridden in a derived class, closes one element and pops the corresponding namespace scope. + + This results in an invalid XML document. + + + + When overridden in a derived class, closes one element and pops the corresponding namespace scope. + + + + + When overridden in a derived class, gets the current xml:lang scope. + + + The current xml:lang scope. + + + + + When overridden in a derived class, gets the state of the writer. + + + One of the values. + + + + + When overridden in a derived class, gets an representing the current xml:space scope. + + + An XmlSpace representing the current xml:space scope. + + + + + Gets the object used to create this instance. + + + The object used to create this writer instance. + + + + + Responsible for reading the annotation element in ATOM. + + + + + The input context to use when parsing the annotation element. + + + + Atomized string representation of the URI used for the OData metadata namespace. + + + Atomized name of the decimal attribute of an annotation element. + + + The property and value deserializer used to read values in ATOM. + + + + Creates a new ATOM annotation parser. + + The input context this annotation reader should use to read annotation elements. + The property and value deserializer to use to read the value of an annotation element. + + + + Attempts to read the current element as an annotation element. + + If this method returned true, this is the instance annotation information from the parsed element. + true if the element was an annotation element, false if it wasn't. + + Pre-Condition: XmlNodeType.Element - The element to read. + Post-Condition: XmlNodeType.EndElement - The end tag of the element (if the element was a non-empty annotation element). + XmlNodeType.Element - The same element as the pre-condition if this method returned false, or an empty annotation element. + + + + + OData ATOM deserializer for detecting the payload kind of an ATOM payload. + + + + + OData ATOM deserializer for properties and value types. + + + + + Base class for all OData ATOM deserializers. + + + + + Base class for all OData deserializers. + + + + The input context to use for reading. + + + + Constructor. + + The input context to read from. + + + + Creates a new instance of a duplicate property names checker. + + The newly created instance of duplicate property names checker. + + + + true if the WCF DS client compatibility format behavior should be used; otherwise false. + + + + + true if the WCF DS server compatibility format behavior should be used; otherwise false. + + + + + true if the default format behavior should be used; otherwise false. + + + + + The message reader settings. + + + + + The OData version of the input. + + + + + true if the input is a response payload; false if it's a request payload. + + + + + The model to use. + + + + The ATOM input context to use for reading. + + + + Constructor. + + The ATOM input context to read from. + + + + Reads the start of the payload. Wraps the call to XmlReaderExtensions.ReadPayloadStart(). + + + + + Reads till the end of the payload. Wraps the call to XmlReaderExtensions.ReadPayloadEnd(). + + + + + Given a URI from the payload, this method will try to make it absolute, or fail otherwise. + + The URI string from the payload to process. + The (optional) Xml base URI as specified in the payload. + An absolute URI to report. + + + + Given a string representation of a URI from the payload, this method will return an absolute or relative URI. + + The URI string from the payload to process. + The (optional) Xml base URI as specified in the payload. + If true, then this method will try to make the URI absolute, or fail otherwise. + An absolute or relative URI to report based on the value of the parameter. + + + + Asserts that the XML reader is positioned on one of the specified node types. + + The node types which should appear at this point. + + + + Asserts that the XML reader is positioned on one of the specified node types. + + True if an empty element node should be added to the list. + The node types which should appear at this point. + + + + The XML reader to read the input from. + + + + + The ATOM input context to use for reading. + + + + The empty namespace used for attributes in no namespace. + + + OData attribute which indicates the null value for the element. + + + Element name for the items in a Collection. + + + XML element name to mark type attribute in Atom. + + + The Edm.String type from the core model. + + + The current recursion depth of values read by this deserializer, measured by the number of complex and collection values read so far. + + + + Constructor. + + The ATOM input context to read from. + + + + This method creates and reads the property from the input and + returns an representing the read property. + + The producing the property to be read. + The expected type of the property to read. + An representing the read property. + + + + Reads the primitive, complex or collection value. + + The expected type reference of the value. + The duplicate property names checker to use (cached), or null if new one should be created. + The collection validator instance if no expected item type has been specified; otherwise null. + true to validate a null value (i.e., throw if a null value is being written for a non-nullable property); otherwise false. + Whether any EPM mappings exist. + The value read (null, primitive CLR value, ODataComplexValue or ODataCollectionValue). + + Pre-Condition: XmlNodeType.Element - The XML element containing the value to read (also the attributes will be read from it) + Post-Condition: XmlNodeType.EndElement - The end tag of the element. + XmlNodeType.Element - The empty element node. + + + + + Determines the kind of value to read based on the payload shape. + + The kind of type of the value to read. + + Pre-Condition: XmlNodeType.Element - The XML element containing the value to get the kind for. + Post-Condition: XmlNodeType.Element - The XML element containing the value to get the kind for. + + + + + Reads the 'type' and 'isNull' attributes of a value. + + The value of the 'type' attribute or null if no 'type' attribute exists. + The value of the 'isNull' attribute or null if no 'isNull' attribute exists. + + Pre-Condition: XmlNodeType.Element - The element to read attributes from. + Post-Condition: XmlNodeType.Element - The element to read attributes from. + + + + + Reads the content of a properties in an element (complex value, m:properties, ...) + + The type which should declare the properties to be read. Optional. + The list of properties to add properties to. + The duplicate property names checker to use. + Whether any EPM mappings exist. + + Pre-Condition: XmlNodeType.Element - The element to read properties from. + Post-Condition: XmlNodeType.Element - The element to read properties from if it is an empty element. + XmlNodeType.EndElement - The end element of the element to read properties from. + + + + + Reads the primitive, complex or collection value. + + The expected type reference of the value. + The duplicate property names checker to use (cached), or null if new one should be created. + The collection validator instance if no expected item type has been specified; otherwise null. + true to validate a null value (i.e., throw if a null value is being written for a non-nullable property); otherwise false. + Whether any EPM mappings exist. + The name of the property whose value is being read, if applicable (used for error reporting). + The value read (null, primitive CLR value, ODataComplexValue or ODataCollectionValue). + + Pre-Condition: XmlNodeType.Element - The XML element containing the value to read (also the attributes will be read from it) + Post-Condition: XmlNodeType.EndElement - The end tag of the element. + XmlNodeType.Element - The empty element node. + + + + + Read a null value from the payload. + + The expected type reference (for validation purposes). + true to validate the value against the . + The name of the property whose value is being read, if applicable (used for error reporting). + The null value. + + + + Reads the content of a properties in an element (complex value, m:properties, ...) + + The type which should declare the properties to be read. Optional. + The list of properties to add properties to. + The duplicate property names checker to use. + Whether any EPM mappings exist. + + Pre-Condition: XmlNodeType.Element - The element to read properties from. + Post-Condition: XmlNodeType.Element - The element to read properties from if it is an empty element. + XmlNodeType.EndElement - The end element of the element to read properties from. + + + + + Reads a property. + + The expected property name to be read from the payload (or null if no expected property name was specified). + The expected type reference of the property value. + Behavior to use when reading null value for the property. + Whether any EPM mappings exist. + The ODataProperty representing the property in question; if null is returned from this method it means that the property is to be ignored. + + Pre-Condition: XmlNodeType.Element - The XML element representing the property to read. + Note that the method does NOT check for the property name neither it resolves the property against metadata. + Post-Condition: Any - The node after the property. + + + + + Read a primitive value from the reader. + + The type of the value to read. + The value read from the payload and converted as appropriate to the target type. + + Pre-Condition: XmlNodeType.Element - the element to read the value for. + XmlNodeType.Attribute - an attribute on the element to read the value for. + Post-Condition: XmlNodeType.Element - the element was empty. + XmlNodeType.EndElement - the element had some value. + + Note that this method will not read null values, those should be handled by the caller already. + + + + + Read a complex value from the reader. + + The type reference of the value to read (or null if no type is available). + The name of the type specified in the payload. + The serialization type name for the complex value (possibly null). + The duplicate property names checker to use (cached), or null if new one should be created. + Whether any EPM mappings exist. + The value read from the payload. + + Pre-Condition: XmlNodeType.Element - the element to read the value for. + XmlNodeType.Attribute - an attribute on the element to read the value for. + Post-Condition: XmlNodeType.EndElement - the element has been read. + + Note that this method will not read null values, those should be handled by the caller already. + + + + + Read a collection from the reader. + + The type of the collection to read (or null if no type is available). + The name of the collection type specified in the payload. + The serialization type name for the collection value (possibly null). + The value read from the payload. + + Pre-Condition: XmlNodeType.Element - the element to read the value for. + XmlNodeType.Attribute - an attribute on the element to read the value for. + Post-Condition: XmlNodeType.Element - the element was empty. + XmlNodeType.EndElement - the element had some value. + + Note that this method will not read null values, those should be handled by the caller already. + + + + + Increases the recursion depth of values by 1. This will throw if the recursion depth exceeds the current limit. + + + + + Decreases the recursion depth of values by 1. + + + + + Asserts that the current recursion depth of values is zero. This should be true on all calls into this class from outside of this class. + + + + + Constructor. + + The ATOM input context to read from. + + + + Detects the payload kind(s) of the payload. + + Additional information available for the payload kind detection. + An enumerable of zero or more payload kinds depending on what payload kinds were detected. + This method decides the payload kind based on the fully-qualified element name of the top-level Xml element + in the payload for entry, feed, entity reference link, error and service document payload kinds. It performs more checks + for properties and collection payloads as follows: + * If an m:type attribute is found => property + * If an m:null attribute is found => property + Otherwise the shape of the payload decides: + * If we only find d:element child nodes => collection or property + * If we find no child nodes => primitive property + * If we find anything else => complex property + + + + + Detects whether the current element represents a property payload, a collection payload or neither. + + An enumerable of zero, one or two payload kinds depending on whether a property, collection, both or neither were detected. + + + + OData ATOM serializer for collections. + + + + + OData ATOM serializer for properties and values. + + + + + Base class for all OData ATOM serializers. + + + + + Base class for all OData serializers. + + + + + The output context to write to. + + + + + Constructor. + + The output context to write to. + + + + Creates a new instance of a duplicate property names checker. + + The newly created instance of duplicate property names checker. + + + + Validates association link before writing. + + The association link to validate. + The entity type of the entry the association link belongs to. + + + + true if the WCF DS client compatibility format behavior should be used; otherwise false. + + + + + true if the WCF DS server compatibility format behavior should be used; otherwise false. + + + + + true if the default format behavior should be used; otherwise false. + + + + + The message writer settings. + + + + + The URL resolver. + + + + + The OData version of the output. + + + + + true if the output is a response payload; false if it's a request payload. + + + + + The model to use. + + + + + The ATOM output context to write to. + + + + + Constructor. + + The output context to write to. + + + + Converts the given Uri to a string. + If the provided baseUri is not null and is a base Uri of the Uri + the method returns the string form of the relative Uri. + + The Uri to convert. + The string form of the Uri. If the Uri is absolute it returns the + string form of the . If the Uri is not absolute + it returns the original string of the Uri. + + + + Converts the given Uri to a string. + If the provided baseUri is not null and is a base Uri of the Uri + the method returns the string form of the relative Uri. + + The Uri to convert. + If set to true then this method will fail if the uri specified by is relative + and no base uri is specified. + The string form of the Uri. If the Uri is absolute it returns the + string form of the . If the Uri is not absolute + it returns the original string of the Uri. + + + + Start writing an ATOM payload. + + + + + Finish writing an ATOM payload. + + This method MUST NOT be called after writing an in-stream error + as it would fail on unclosed elements (or try to close them). + + + + Writes a top-level error payload. + + The error instance to write. + A flag indicating whether error details should be written (in debug mode only) or not. + + + + Write the namespaces for OData (prefix 'd') and OData metadata (prefix 'm') + + An enumeration value to indicate what default namespace attributes to write. + + + + Writes the count. + + Count value. + True if the namespace declaration for the metadata namespace should be included; otherwise false. + + + + Write the base Uri of the document (if specified) and the namespaces for OData (prefix 'd') and OData metadata (prefix 'm') + + + + + Writes an Xml element with the specified primitive value as content. + + The prefix for the element's namespace. + The local name of the element. + The namespace of the element. + The value to be used as element content. + + + + Writes an Xml element with empty content. + + The prefix for the element's namespace. + The local name of the element. + The namespace of the element. + + + + Returns the which is to be used to write the content of the message. + + + + + The ODataAtomOutputContext used by the serializer. + + + + + Flags to describe a set of default namespaces. + + + + No namespaces. + + + OData namespace. + + + OData metadata namespace. + + + ATOM namespace + + + GeoRss namespace. + + + GML namespace. + + + All default namespaces. + + + + The current recursion depth of values written by this serializer. + + + + + Constructor. + + The output context to write to. + + + + Writes a single property in ATOM format. + + The property to write out. + + + + Writes a collection of instance annotations in ATOM format. + + Instance annotation collection to write. + The tracker to track which instance annotations have been written. + + + + Writes a single instance annotation in ATOM format. + + The instance annotation to write. + + + + Write the given collection of properties. + + The of the entry (or null if not metadata is available). + Collection of cached properties for the entry. + true if we are writing a top level collection instead of an entry. + Action which is called before the properties are written, if there are any property. + Action which is called after the properties are written, if there are any property. + The checker instance for duplicate property names. + Cache of values used in EPM so that we avoid multiple enumerations of properties/items. (can be null) + The EPM source path segment which points to the property which sub-properites we're writing. (can be null) + Set of projected properties, or null if all properties should be written. + true if anything was written, false otherwise. + + + + Writes a primitive value. + + The value to write. + The collection validator instance. + The expected type of the primitive value. + The optional type name annotation provided by the user on the OM for this primitive value. The annotation value will override whatever type name is being written. + + + + Writes out the value of a complex property. + + The complex value to write. + The metadata type for the complex value. + true if the type name belongs to an open property. + true if we are writing a collection instead of an entry. + Action called before the complex value is written, if it's actually written. + Action called after the copmlex value is written, if it's actually written. + The checker instance for duplicate property names. + The collection validator instance to validate the type names and type kinds of collection items; null if no validation is needed. + Cache of values used in EPM so that we avoid multiple enumerations of properties/items. (can be null) + The EPM source path segment which points to the property we're writing. (can be null) + Set of projected properties, or null if all properties should be written. + true if anything was written, false otherwise. + + + + Asserts that the current recursion depth of values is zero. This should be true on all calls into this class from outside of this class. + + + + + Write the items of a collection in ATOM format. + + The collection value to write. + The type reference of the collection value (or null if not metadata is available). + true if the type name belongs to an open property. + true if we are writing a top-level collection instead of an entry. + + + + Writes the value of a primitive instance annotation. + + The primitive value to write. + The expected type of the annotation from the metadata. + + + + Writes a single property in ATOM format. + + The property to write out. + The owning type for the or null if no metadata is available. + true if writing a top-level property payload; otherwise false. + true if we are writing a top-level collection instead of an entry. + Action which is called before the property is written, if it's going to be written. + Cache of values used in EPM so that we avoid multiple enumerations of properties/items. (can be null) + The EPM source path segment which points to the property which sub-property we're writing. (can be null) + The checker instance for duplicate property names. + Set of projected properties, or null if all properties should be written. + true if the property was actually written, false otherwise. + + + + Writes a property with a complex value in ATOM format. + + The complex value to write. + The name of the property being written. + true if writing a top-level property payload; otherwise false. + true if we are writing a top-level collection instead of an entry. + Action called before the complex value is written, if it's actually written. + Cache of values used in EPM so that we avoid multiple enumerations of properties/items. (can be null) + The type information for the property being written. + true if the type name belongs to an open property. + The EPM source path segment which points to the property we're writing. (can be null) + Set of projected properties, or null if all properties should be written. + true if anything was written, false otherwise. + + + + Writes a property with a collection value in ATOM format. + + The collection value to write. + The name of the property being written. + true if writing a top-level property payload; otherwise false. + true if writing a top-level collection payload instead of an entry. + Action which is called before the property is written, if it's going to be written. + The type reference of the collection value (or null if no metadata is available). + true if this property is undeclared and the owning type is open. + + + + Determines if the property with the specified value should be written into content or not. + + The owning type of the property to be checked. + The set of projected properties for the + The name of the property to be checked. + The property value to write. + The EPM source path segment for the property being written. + true if the property should be written into content, or false otherwise + + + + Writes a null property value in Atom format. + + The property type or null if we don't have any. + The name of the property to write out. + true if writing a top-level property payload; otherwise false. + true if we are writing a collection instead of an entry. + Action which is called before the property is written, if it's going to be written. + + + + Writes the property start element. + + Action called before anything else is written (if it's not null). + The name of the property to write. + true if we are writing a collection instead of an entry. + true if writing a top-level property payload; otherwise false. + + + + Writes the property end element. + + + + + Writes the instance annotation start element. + + The the instance annotation to write. + + + + Writes the instance annotation end element. + + + + + Writes the m:type attribute for a property given the name of the type. + + The type name to write. + + + + Write the m:null attribute with a value of 'true' + + + + + Increases the recursion depth of values by 1. This will throw if the recursion depth exceeds the current limit. + + + + + Decreases the recursion depth of values by 1. + + + + + Constructor. + + The output context to write to. + + + + OData ATOM serializer for entity reference links. + + + + + Constructor. + + The output context to write to. + + + + Writes a single Uri in response to a $links query. + + The entity reference link to write out. + + + + Writes a set of links (Uris) in response to a $links query; includes optional count and next-page-link information. + + The entity reference links to write. + + + + Writes a single Uri in response to a $links query. + + The entity reference link to write out. + + A flag indicating whether the link is written as top-level element or not; + this controls whether to include namespace declarations etc. + + + + + OData ATOM serializer for entries and feeds. + + + + + The serializer for writing ATOM metadata for entries. + + + + + The serializer for writing ATOM metadata for feeds. + + + + + Constructor. + + The output context to write to. + + + + Writes the start element for the m:properties element on the entry. + + + + + Writes the end element for the m:properties element on the entry. + + + + + Writes the type name category element for the entry. + + The type name to write. + The entry metadata if available. + + + + Write the ATOM metadata for an entry + + The entry metadata to write. + The ATOM metadata for the entry which came from EPM. + Value for the atom:updated element. + + + + Writes the entry atom:id element. + + The value of the ODataEntry.Id property to write. + + + + Writes the read link element for an entry. + + The read link URL. + The ATOM entry metatadata for the current entry. + + + + Writes the edit link element for an entry. + + The edit link URL. + The ATOM entry metatadata for the current entry. + + + + Writes the edit-media link for an entry. + + The media resource representing the MR of the entry to write. + + + + Write the metadata for an OData association link; makes sure any duplicate of the link's values duplicated in metadata are equal. + + The association link for which to write the metadata. + The instance the association link is defined on. + The checker instance for duplicate property names. + Set of projected properties, or null if all properties should be written. + + + + Writes the navigation link's start element and atom metadata. + + The navigation link to write. + Url to use for the navigation link. If this is specified the Url property on the + will be ignored. If this parameter is null, the Url from the navigation link is used. + + + + Write the given feed metadata in atom format + + The feed for which to write the meadata or null if it is the metadata of an atom:source element. + Value for the atom:updated element. + Set to true if the author element was written, false otherwise. + + + + Writes the default empty author for a feed. + + + + + Writes the next page link for a feed. + + The feed to write the next page link for. + + + + Writes the delta link for a feed. + + The feed to write the delta link for. + + + + Writes a feed link. + + The feed that contains the link. + Relation attribute of the link. + href attribute of the link. + Function to get the AtomLinkMetadata for the feed link. + + + + Writes a stream property to the ATOM payload + + The stream property to create the payload for. + The instance for which the stream property defined on. + The checker instance for duplicate property names. + Set of projected properties, or null if all properties should be written. + + + + Writes an operation (an action or a function). + + The association link to write. + + + + Writes the self or edit link. + + Uri object for the link. + The atom link metadata for the link to specify title, type, hreflang and length of the link. + Relationship value. Either "edit" or "self". + + + + OData ATOM serializer for ATOM metadata in an entry + + + + + Base class for all OData ATOM Metadata serializers. + + + + + Constructor. + + The output context to write to. + + + + Writes an Xml element with the specified primitive value as content. + + The prefix for the element's namespace. + The local name of the element. + The namespace of the element. + The value to be used as element content. + + + + Writes the 'atom:category' element given category metadata. + + The category information to write. + + + + Writes the 'atom:category' element with the specified attributes. + + The prefix to use for the 'category' element. + The value for the 'term' attribute (required). + The value for the 'scheme' attribute (optional). + The value for the 'label' attribute (optional). + + + + Write an empty author element that has the required name element + + + + + Writes the specified start/end tags and the specified person metadata as content + + The person metadata to write. + + + + Write the metadata of a link in ATOM format + + The link metadata to write. + The (optional) ETag for a link. + + + + Write the metadata of a link in ATOM format + + The link metadata to write. + The (optional) ETag for a link. + + + + Write the metadata attributes of a link in ATOM format + + The value for the 'rel' attribute. + The value for the 'href' attribute. + The value for the 'hreflang' attribute. + The value for the 'title' attribute. + The value for the 'type' attribute. + The value for the 'length' attribute. + + + + Feed ATOM metadata serializer for serializing the atom:source element in an entry. + This is created on-demand only when needed, but then it's cached. + + + + + Constructor. + + The output context to write to. + + + + Write the ATOM metadata for an entry + + The entry metadata to write. + The ATOM metadata for the entry which came from EPM. + Value for the atom:updated element. + + + + Feed ATOM metadata serializer for serializing the atom:source element in an entry. + This is created on-demand only when needed, but then it's cached. + + + + + OData ATOM serializer for ATOM metadata in a feed + + + + + Constructor. + + The output context to write to. + + + + Write the given feed metadata in atom format + + The metadata to write. + The feed for which to write the meadata or null if it is the metadata of an atom:source element. + Value for the atom:updated element. + Set to true if the author element was written, false otherwise. + + + + The ATOM OData format. + + + + + Representation of an OData format. + + + + The ATOM format instance. + + + The verbose JSON format instance. + + + The JSON Light format instance. + + + The RAW format instance. + + + The batch format instance. + + + The metadata format instance. + + + + Detects the payload kinds supported by this format for the specified message payload. + + The response message with the payload stream. + Additional information available for the payload kind detection. + The set of s that are supported with the specified payload. + + + + Detects the payload kinds supported by this format for the specified message payload. + + The request message with the payload stream. + Additional information available for the payload kind detection. + The set of s that are supported with the specified payload. + + + + Creates an instance of the input context for this format. + + The to read. + The message to use. + The content type of the message to read. + The encoding to use. + Configuration settings of the OData reader. + The OData protocol version to be used for reading the payload. + true if reading a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs read from the payload. + Format specific state stored during payload kind detection + using the . + The newly created input context. + + + + Creates an instance of the output context for this format. + + The message to use. + The specific media type being written. + The encoding to use. + Configuration settings of the OData writer. + true if writing a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs written to the payload. + The newly created output context. + + + + Asynchronously detects the payload kinds supported by this format for the specified message payload. + + The response message with the payload stream. + Additional information available for the payload kind detection. + A task that when completed returns the set of s + that are supported with the specified payload. + + + + Asynchronously detects the payload kinds supported by this format for the specified message payload. + + The request message with the payload stream. + Additional information available for the payload kind detection. + A task that when completed returns the set of s + that are supported with the specified payload. + + + + Asynchronously creates an instance of the input context for this format. + + The to read. + The message to use. + The content type of the message to read. + The encoding to use. + Configuration settings of the OData reader. + The OData protocol version to be used for reading the payload. + true if reading a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs read from the payload. + Format specific state stored during payload kind detection + using the . + Task which when completed returned the newly created input context. + + + + Creates an instance of the output context for this format. + + The message to use. + The specific media type being written. + The encoding to use. + Configuration settings of the OData writer. + true if writing a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs written to the payload. + Task which represents the pending create operation. + + + Specifies the ATOM format; we also use this for all Xml based formats (if ATOM can't be used). + The ATOM format. + + + Gets the verbose JSON format. + The verbose JSON format. + + + Specifies the JSON format. + The JSON format. + + + Specifies the RAW format; used for raw values. + The RAW format. + + + Gets the batch format instance. + The batch format instance. + + + Gets the metadata format instance. + The metadata format instance. + + + + The text representation - the name of the format. + + The name of the format. + + + + Detects the payload kinds supported by this format for the specified message payload. + + The response message with the payload stream. + Additional information available for the payload kind detection. + The set of s that are supported with the specified payload. + + + + Detects the payload kinds supported by this format for the specified message payload. + + The request message with the payload stream. + Additional information available for the payload kind detection. + The set of s that are supported with the specified payload. + + + + Creates an instance of the input context for this format. + + The to read. + The message to use. + The content type of the message to read. + The encoding to use. + Configuration settings of the OData reader. + The OData protocol version to be used for reading the payload. + true if reading a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs read from the payload. + Format specific state stored during payload kind detection + using the . + The newly created input context. + + + + Creates an instance of the output context for this format. + + The message to use. + The specific media type being written. + The encoding to use. + Configuration settings of the OData writer. + true if writing a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs written to the payload. + The newly created output context. + + + + Asynchronously detects the payload kinds supported by this format for the specified message payload. + + The response message with the payload stream. + Additional information available for the payload kind detection. + A task that when completed returns the set of s + that are supported with the specified payload. + + + + Asynchronously detects the payload kinds supported by this format for the specified message payload. + + The request message with the payload stream. + Additional information available for the payload kind detection. + A task that when completed returns the set of s + that are supported with the specified payload. + + + + Asynchronously creates an instance of the input context for this format. + + The to read. + The message to use. + The content type of the message to read. + The encoding to use. + Configuration settings of the OData reader. + The OData protocol version to be used for reading the payload. + true if reading a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs read from the payload. + Format specific state stored during payload kind detection + using the . + Task which when completed returned the newly created input context. + + + + Creates an instance of the output context for this format. + + The message to use. + The specific media type being written. + The encoding to use. + Configuration settings of the OData writer. + true if writing a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs written to the payload. + Task which represents the pending create operation. + + + + Detects the payload kind(s) from the message stream. + + The message stream to read from for payload kind detection. + true if reading a response message; otherwise false. + true if the input should be read synchronously; false if it should be read asynchronously. + Additional information available for the payload kind detection. + An enumerable of zero or more payload kinds depending on what payload kinds were detected. + + + + ATOM format output context. + + + + + Base class for all output contexts, defines the interface + to be implemented by the specific formats. + + + + The format for this output context. + + + The message writer settings to be used for writing. + + + Set to true if this context is writing a response payload. + + + true if the input should be written synchronously; false if it should be written asynchronously. + + + The model to use. + + + The optional URL resolver to perform custom URL resolution for URLs written to the payload. + + + The type resolver to use. + + + + Constructor. + + The format for this output context. + Configuration settings of the OData writer. + true if writing a response message; otherwise false. + true if the output should be written synchronously; false if it should be written asynchronously. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs written to the payload. + + + + IDisposable.Dispose() implementation to cleanup unmanaged resources of the context. + + + + + Writes an into the message payload. + + The error to write. + + A flag indicating whether debug information (e.g., the inner error from the ) should + be included in the payload. This should only be used in debug scenarios. + + + This method is called if the ODataMessageWriter.WriteError is called once some other + write operation has already started. + The method should write the in-stream error representation for the specific format into the current payload. + Before the method is called no flush is performed on the output context or any active writer. + It is the responsibility of this method to flush the output before the method returns. + + + + + Writes an into the message payload. + + The error to write. + + A flag indicating whether debug information (e.g., the inner error from the ) should + be included in the payload. This should only be used in debug scenarios. + + Task which represents the pending write operation. + + This method is called if the ODataMessageWriter.WriteError is called once some other + write operation has already started. + The method should write the in-stream error representation for the specific format into the current payload. + Before the method is called no flush is performed on the output context or any active writer. + It is the responsibility of this method to make sure that all the data up to this point are written before + the in-stream error is written. + It is the responsibility of this method to flush the output before the task finishes. + + + + + Creates an to write a feed. + + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + The created writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Asynchronously creates an to write a feed. + + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + A running task for the created writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Creates an to write an entry. + + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + The created writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Asynchronously creates an to write an entry. + + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + A running task for the created writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Creates an to write a collection of primitive or complex values (as result of a service operation invocation). + + The item type of the collection being written or null if no metadata is available. + The created collection writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Asynchronously creates an to write a collection of primitive or complex values (as result of a service operation invocation). + + The item type of the collection being written or null if no metadata is available. + A running task for the created collection writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Creates an to write a batch of requests or responses. + + The boundary string for the batch structure itself. + The created batch writer. + We don't plan to make this public! + + The write must flush the output when it's finished (inside the last Write call). + Since we don't want to support batch format extensibility (at least not yet) this method should remain internal. + + + + + Asynchronously creates an to write a batch of requests or responses. + + The boundary string for the batch structure itself. + A running task for the created batch writer. + We don't plan to make this public! + + The write must flush the output when it's finished (inside the last Write call). + Since we don't want to support batch format extensibility (at least not yet) this method should remain internal. + + + + + Creates an to write a parameter payload. + + The function import whose parameters will be written. + The created parameter writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Asynchronously creates an to write a parameter payload. + + The function import whose parameters will be written. + A running task for the created parameter writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Writes a service document with the specified + as message payload. + + The default workspace to write in the service document. + It is the responsibility of this method to flush the output before the method returns. + + + + Asynchronously writes a service document with the specified + as message payload. + + The default workspace to write in the service document. + A task representing the asynchronous operation of writing the service document. + It is the responsibility of this method to flush the output before the task finishes. + + + + Writes an as message payload. + + The property to write. + It is the responsibility of this method to flush the output before the method returns. + + + + Asynchronously writes an as message payload. + + The property to write + A task representing the asynchronous operation of writing the property. + It is the responsibility of this method to flush the output before the task finishes. + + + + Writes an as the message payload. + + The error to write. + + A flag indicating whether debug information (e.g., the inner error from the ) should + be included in the payload. This should only be used in debug scenarios. + + It is the responsibility of this method to flush the output before the method returns. + + + + Asynchronously writes an as the message payload. + + The error to write. + + A flag indicating whether debug information (e.g., the inner error from the ) should + be included in the payload. This should only be used in debug scenarios. + + A task representing the asynchronous operation of writing the error. + It is the responsibility of this method to flush the output before the task finishes. + + + + Writes the result of a $links query as the message payload. + + The entity reference links to write as message payload. + The entity set of the navigation property. + The navigation property for which the entity reference links are being written, or null if none is available. + It is the responsibility of this method to flush the output before the method returns. + + + + Asynchronously writes the result of a $links query as the message payload. + + The entity reference links to write as message payload. + The entity set of the navigation property. + The navigation property for which the entity reference links are being written, or null if none is available. + A task representing the asynchronous writing of the entity reference links. + It is the responsibility of this method to flush the output before the task finishes. + + + + Writes a singleton result of a $links query as the message payload. + + The entity reference link to write as message payload. + The entity set of the navigation property. + The navigation property for which the entity reference link is being written, or null if none is available. + It is the responsibility of this method to flush the output before the method returns. + + + + Asynchronously writes a singleton result of a $links query as the message payload. + + The link result to write as message payload. + The entity set of the navigation property. + The navigation property for which the entity reference link is being written, or null if none is available. + A running task representing the writing of the link. + It is the responsibility of this method to flush the output before the task finishes. + + + + Writes a single value as the message body. + + The value to write. + It is the responsibility of this method to flush the output before the method returns. + + + + Asynchronously writes a single value as the message body. + + The value to write. + A running task representing the writing of the value. + It is the responsibility of this method to flush the output before the task finishes. + + + + Writes the metadata document as the message body. + + It is the responsibility of this method to flush the output before the method returns. + + + + Asserts that the input context was created for synchronous operation. + + + + + Asserts that the input context was created for asynchronous operation. + + + + + Perform the actual cleanup work. + + If 'true' this method is called from user code; if 'false' it is called by the runtime. + + + + Creates an exception which reports that the specified payload kind if not support by this format. + + The payload kind which is not supported. + An exception to throw. + + + + The message writer settings to be used for writing. + + + + + The version of the OData protocol to use. + + + + + Set to true if a response is being written. + + + + + true if the output should be written synchronously; false if it should be written asynchronously. + + + + + The model to use or null if no metadata is available. + + + + + The optional URL resolver to perform custom URL resolution for URLs written to the payload. + + + + + The type resolver to use. + + + + + true if the WCF DS client compatibility format behavior should be used; otherwise false. + + + + + true if the WCF DS server compatibility format behavior should be used; otherwise false. + + + + + true if the default format behavior should be used; otherwise false. + + + + + true if the WCF DS server compatibility API behavior should be used; otherwise false. + + + + + The oracle to use to determine the type name to write for entries and values. + + + + The message output stream. + + + The asynchronous output stream if we're writing asynchronously. + + + The XML writer created for the root of the payload. + + This field is also used to determine if the output context has been disposed already. + In case of customized writers are used, this is always the root writer, never changed. + + + + The XML writer to write to. + In case of customized writers are used, this is the current writer to write to. + + + A stack used to track XML customization writers. + + At the beginning the root writer is pushed to the stack. + Each non-null entry has an item on this stack. + If the XML customization was used for a given entry the writer returned by the customization will be pushed to the stack for it. + This is only used from ODataAtomWriter, other writers don't use this. + + + + An in-stream error listener to notify when in-stream error is to be written. Or null if we don't need to notify anybody. + + + + Constructor. + + The format for this output context. + The message stream to write the payload to. + The encoding to use for the payload. + Configuration settings of the OData writer. + true if writing a response message; otherwise false. + true if the output should be written synchronously; false if it should be written asynchronously. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs written to the payload. + + + + Check if the object has been disposed; called from all public API methods. Throws an ObjectDisposedException if the object + has already been disposed. + + + + + Synchronously flush the writer. + + + + + Asynchronously flush the writer. + + Task which represents the pending flush operation. + The method should not throw directly if the flush operation itself fails, it should instead return a faulted task. + + + + Writes an into the message payload. + + The error to write. + + A flag indicating whether debug information (e.g., the inner error from the ) should + be included in the payload. This should only be used in debug scenarios. + + + This method is called if the ODataMessageWriter.WriteError is called once some other + write operation has already started. + The method should write the in-stream error representation for the specific format into the current payload. + Before the method is called no flush is performed on the output context or any active writer. + It is the responsibility of this method to flush the output before the method returns. + + + + + Writes an into the message payload. + + The error to write. + + A flag indicating whether debug information (e.g., the inner error from the ) should + be included in the payload. This should only be used in debug scenarios. + + Task which represents the pending write operation. + + This method is called if the ODataMessageWriter.WriteError is called once some other + write operation has already started. + The method should write the in-stream error representation for the specific format into the current payload. + Before the method is called no flush is performed on the output context or any active writer. + It is the responsibility of this method to make sure that all the data up to this point are written before + the in-stream error is written. + It is the responsibility of this method to flush the output before the task finishes. + + + + + Creates an to write a feed. + + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + The created writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Asynchronously creates an to write a feed. + + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + A running task for the created writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Creates an to write an entry. + + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + The created writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Asynchronously creates an to write an entry. + + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + A running task for the created writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Creates an to write a collection of primitive or complex values (as result of a service operation invocation). + + The item type of the collection being written or null if no metadata is available. + The created collection writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Asynchronously creates an to write a collection of primitive or complex values (as result of a service operation invocation). + + The item type of the collection being written or null if no metadata is available. + A running task for the created collection writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Writes a service document with the specified + as message payload. + + The default workspace to write in the service document. + It is the responsibility of this method to flush the output before the method returns. + + + + Asynchronously writes a service document with the specified + as message payload. + + The default workspace to write in the service document. + A task representing the asynchronous operation of writing the service document. + It is the responsibility of this method to flush the output before the task finishes. + + + + Writes an as message payload. + + The property to write. + It is the responsibility of this method to flush the output before the method returns. + + + + Asynchronously writes an as message payload. + + The property to write + A task representing the asynchronous operation of writing the property. + It is the responsibility of this method to flush the output before the task finishes. + + + + Writes an as the message payload. + + The error to write. + + A flag indicating whether debug information (e.g., the inner error from the ) should + be included in the payload. This should only be used in debug scenarios. + + It is the responsibility of this method to flush the output before the method returns. + + + + Asynchronously writes an as the message payload. + + The error to write. + + A flag indicating whether debug information (e.g., the inner error from the ) should + be included in the payload. This should only be used in debug scenarios. + + A task representing the asynchronous operation of writing the error. + It is the responsibility of this method to flush the output before the task finishes. + + + + Writes the result of a $links query as the message payload. + + The entity reference links to write as message payload. + The entity set of the navigation property + The navigation property for which the entity reference links are being written, or null if none is available. + It is the responsibility of this method to flush the output before the method returns. + + + + Asynchronously writes the result of a $links query as the message payload. + + The entity reference links to write as message payload. + The entity set of the navigation property + The navigation property for which the entity reference links are being written, or null if none is available. + A task representing the asynchronous writing of the entity reference links. + It is the responsibility of this method to flush the output before the task finishes. + + + + Writes a singleton result of a $links query as the message payload. + + The entity reference link to write as message payload. + The entity set of the navigation property + The navigation property for which the entity reference link is being written, or null if none is available. + It is the responsibility of this method to flush the output before the method returns. + + + + Asynchronously writes a singleton result of a $links query as the message payload. + + The link result to write as message payload. + The entity set of the navigation property + The navigation property for which the entity reference link is being written, or null if none is available. + A running task representing the writing of the link. + It is the responsibility of this method to flush the output before the task finishes. + + + + Initializes the ability to use customization writers. + + + This needs to be called before any of the writer customization functionality is used. + + + + + Pushes a writer on the top of the customization stack. + + The writer to push. + + + + Pops a writer from the top of the customization stack. + + The popped writer, the one which was on the top of the stack before the operation. + + + + Perform the actual cleanup work. + + If 'true' this method is called from user code; if 'false' it is called by the runtime. + + + + Writes an in-stream error. + + The error to write. + + A flag indicating whether debug information (e.g., the inner error from the ) should + be included in the payload. This should only be used in debug scenarios. + + + + + Creates an to write a feed. + + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + The created writer. + + + + Creates an to write an entry. + + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + The created writer. + + + + Creates an to write a collection of primitive or complex values (as result of a service operation invocation). + + The item type of the collection being written or null if no metadata is available. + The created collection writer. + + + + Writes an as message payload. + + The property to write. + + + + Writes a service document with the specified + as message payload. + + The default workspace to write in the service document. + + + + Writes an as the message payload. + + The error to write. + + A flag indicating whether debug information (e.g., the inner error from the ) should + be included in the payload. This should only be used in debug scenarios. + + + + + Writes the result of a $links query as the message payload. + + The entity reference links to write as message payload. + + + + Writes a singleton result of a $links query as the message payload. + + The entity reference link to write as message payload. + + + + Returns the which is to be used to write the content of the message. + + + + + Returns the oracle to use when determining the type name to write for entries and values. + + + + + Instance of this class describes a navigation link when it's found in the payload. + + + + The navigation link. + + + The navigation property for the link, is it's available. + + + + Constructor. + + The navigation link. + The navigation property for the link, if it's available. + + + The navigation link. + + + The navigation property for the link, if it's available. + + + + Helper class to verify that all items of a collection are of the same kind and type. + + This class is only used if no expected item type is specified for the collection; + otherwise all items are already validated against the expected item type. + + + true if the item type was derived from the collection value; otherwise false. + + + The item type name extracted from the first non-null item. + + + + The primitive type denoted by the item type name or null if the type name is not a valid primitive type name. + + + + The item type kind from the first non-null item. + + + + Constructor. + + The item type name extracted from the collection type name. + + + + Validates a collection item that was read to make sure it is valid (i.e., has the correct + type name and type kind) with respect to the other items in the collection. + + The type name of the item from the payload. + The type kind of the item from the payload. + + + + Computes the expected type kind of an item from the type name read from the payload. + + The type name to compute the type kind from. + The primitive type for the specified type name or null if the type name is not a valid primitve type. + The of the type with the specified . + + + + Validate that the expected and actual type names and type kinds are compatible. + + The actual type name. + The actual type kind. + + + + If specified on a collection, returns the item type name that all items are expected to be compatible with; otherwise null. + + + + + If specified on a collection, returns the item type kind that all items are expected to be compatible with; otherwise EdmTypeKind.None. + + + + + Read-only stream which initially buffers all read data in order to replay it later. + Once no more buffered data exists it reads from the underlying stream directly. + + + + The list of buffered chunks of bytes as requested by callers. + + + + The stream being wrapped. + + + + The read position in the current buffer. + + + + true if the reader is not in buffering mode; otherwise false. + + + + + The current node in the buffer list to read from. + + + + + Constructor + + The underlying stream to wrap. Note that only read operations will be invoked on this stream. + + + + Not supported since the stream only allows reading. + + + + + Reads data from the buffer or the underlying stream. + + The buffer to read the data to. + The offset in the buffer to write to. + The number of bytes to read. + The number of bytes actually read. + + + + Seeks the stream. This operation is not supported by this stream. + + The offset to seek to. + The origin of the seek operation. + The new position in the stream. + + + + Sets the length of the stream. This operation is not supported by this stream. + + The length in bytes to set. + + + + Writes to the stream. This operation is not supported by this stream. + + The buffer to get data from. + The offset in the buffer to start from. + The number of bytes to write. + + + + Stops the buffering mode and turns the reader into normal read mode where first + the buffered data is re-read before the reads are performed on the underlying stream. + + + + + Stop buffering. + + + + + Disposes the object. + + True if called from Dispose; false if called from the finalizer. + + + + Moves the reader to the next buffer and drops already consumed + data if not in buffering mode. + + + + + Determines if the stream can read - this one can. + + + + + Determines if the stream can seek - this one cannot + + + + + Determines if the stream can write - this one cannot + + + + + Returns the length of the stream, which this implementation doesn't support. + + + + + Gets or sets the position in the stream, this stream doesn't support seeking, so position is also unsupported. + + + + + true if the stream is in buffering mode; otherwise false. + + + + + Interface used for substitutability of the metadata-centric responsibilities of an entry. + Metadata may come from a user-provided model or from the SetSerializationInfo() method on a feed or entry. The latter is considered the "no-model" case since only strings + are provided, and there is no interconnectedness. The goal of this interface is to provide a way to query the metadata information available on an entry without + needing to know where the metadata originated from. + + + + + The entry instance. + + + + + The context object to answer basic questions regarding the type of the entry. + + + + + The actual entity type of the entry, i.e. ODataEntry.TypeName. + + + + + The key property name and value pairs of the entry. + + + + + The ETag property name and value pairs of the entry. + + + + + The selected navigation properties. + + + + + The selected stream properties. + + + + + The selected always bindable operations. + + + + + Implementation of the metadata builder which only returns values which were explicitly set (never computing or modifying them). + + + + + Extensibility point for customizing how OData entity metadata (edit-links, IDs, ETags, etc) is built. + + + + + Gets the edit link of the entity. + + + The absolute URI of the edit link for the entity. + Or null if it is not possible to determine the edit link. + + + + + Gets the read link of the entity. + + + The absolute URI of the read link for the entity. + Or null if it is not possible to determine the read link. + + + + + Gets the ID of the entity. + + + The ID for the entity. + Or null if it is not possible to determine the ID. + + + + + Gets the ETag of the entity. + + + The ETag for the entity. + Or null if it is not possible to determine the ETag. + + + + + Gets the default media resource of the entity. + + + The the default media resource of the entity. + Or null if the entity is not an MLE. + + + + + Gets the entity properties. + + Non-computed properties from the entity. + The the computed and non-computed entity properties. + + + + Gets the list of computed and non-computed actions for the entity. + + The list of computed and non-computed actions for the entity. + + + + Gets the list of computed and non-computed functions for the entity. + + The list of computed and non-computed functions for the entity. + + + + Marks the given navigation link as processed. + + The navigation link we've already processed. + + + + Returns the next unprocessed navigation link or null if there's no more navigation links to process. + + Returns the next unprocessed navigation link or null if there's no more navigation links to process. + + + + Gets the edit link of a stream value. + + The name of the stream property the edit link is computed for; + or null for the default media resource. + + The absolute URI of the edit link for the specified stream property or the default media resource. + Or null if it is not possible to determine the stream edit link. + + + + + Gets the read link of a stream value. + + The name of the stream property the read link is computed for; + or null for the default media resource. + + The absolute URI of the read link for the specified stream property or the default media resource. + Or null if it is not possible to determine the stream read link. + + + + + Gets the navigation link URI for the specified navigation property. + + The name of the navigation property to get the navigation link URI for. + The value of the link URI as seen on the wire or provided explicitly by the user or previously returned by the metadata builder, which may be null. + true if the value of the was seen on the wire or provided explicitly by the user or previously returned by + the metadata builder, false otherwise. This flag allows the metadata builder to determine whether a null navigation link url is an uninitialized value or a value that was set explicitly. + + The navigation link URI for the navigation property. + null if its not possible to determine the navigation link for the specified navigation property. + + + + + Gets the association link URI for the specified navigation property. + + The name of the navigation property to get the association link URI for. + The value of the link URI as seen on the wire or provided explicitly by the user or previously returned by the metadata builder, which may be null. + true if the value of the was seen on the wire or provided explicitly by the user or previously returned by + the metadata builder, false otherwise. This flag allows the metadata builder to determine whether a null association link url is an uninitialized value or a value that was set explicitly. + + The association link URI for the navigation property. + null if its not possible to determine the association link for the specified navigation property. + + + + + Get the operation target URI for the specified . + + The fully qualified name of the operation for which to get the target URI. + The binding parameter type name to include in the target, or null/empty if there is none. + + The target URI for the operation. + null if it is not possible to determine the target URI for the specified operation. + + + + + Get the operation title for the specified . + + The fully qualified name of the operation for which to get the target URI. + + The title for the operation. + null if it is not possible to determine the title for the specified operation. + + + + + Gets an instance of the metadata builder which never returns anything other than nulls. + + + + + Implementation of the metadata builder which only returns nulls. + + + + + Singleton instance of the null metadata builder. + + + + + Prevents a default instance of the class from being created. + + + + + Gets the edit link of the entity. + + + The absolute URI of the edit link for the entity. + Or null if it is not possible to determine the edit link. + + + + + Gets the read link of the entity. + + + The absolute URI of the read link for the entity. + Or null if it is not possible to determine the read link. + + + + + Gets the ID of the entity. + + + The ID for the entity. + Or null if it is not possible to determine the ID. + + + + + Gets the ETag of the entity. + + + The ETag for the entity. + Or null if it is not possible to determine the ETag. + + + + + The entry whose payload metadata is being queried. + + + + + Creates a new no-op metadata builder. + + The entry whose payload metadata is being queried. + + + + Gets the edit link of the entity. + + + The absolute URI of the edit link for the entity. + + + + + Gets the read link of the entity. + + + The absolute URI of the read link for the entity. + + + + + Gets the ID of the entity. + + + The ID for the entity. + + + + + Gets the ETag of the entity. + + + The ETag for the entity. + + + + + Gets the default media resource of the entity. + + + The the default media resource of the entity. + Or null if the entity is not an MLE. + + + + + Gets the entity properties. + + Non-computed properties from the entity. + The the computed and non-computed entity properties. + + + + Gets the list of computed and non-computed actions for the entity. + + The list of computed and non-computed actions for the entity. + + + + Gets the list of computed and non-computed functions for the entity. + + The list of computed and non-computed functions for the entity. + + + + Gets the navigation link URI for the specified navigation property. + + The name of the navigation property to get the navigation link URI for. + The value of the link URI as seen on the wire or provided explicitly by the user or previously returned by the metadata builder, which may be null. + true if the value of the was seen on the wire or provided explicitly by the user or previously returned by + the metadata builder, false otherwise. This flag allows the metadata builder to determine whether a null navigation link url is an uninitialized value or a value that was set explicitly. + + The navigation link URI for the navigation property. + null if its not possible to determine the navigation link for the specified navigation property. + + + + + Gets the association link URI for the specified navigation property. + + The name of the navigation property to get the association link URI for. + The value of the link URI as seen on the wire or provided explicitly by the user or previously returned by the metadata builder, which may be null. + true if the value of the was seen on the wire or provided explicitly by the user or previously returned by + the metadata builder, false otherwise. This flag allows the metadata builder to determine whether a null association link url is an uninitialized value or a value that was set explicitly. + + The association link URI for the navigation property. + null if its not possible to determine the association link for the specified navigation property. + + + + + Default implementation of + + + + + Empty array of properties. + + + + + The entry instance. + + + + + The context object to answer basic questions regarding the type of the entry. + + + + + The key property name and value pairs of the entry. + + + + + The ETag property name and value pairs of the entry. + + + + + The selected navigation properties. + + + + + The selected stream properties. + + + + + The selected always bindable operations. + + + + + Constructs an instance of . + + The entry instance. + The context object to answer basic questions regarding the type of the entry. + + + + Creates an instance of . + + The entry instance. + The context object to answer basic questions regarding the type of the entry. + The serialization info of the entry for writing without model. + The entity type of the entry. + The metadata context to use. + The selected properties. + A new instance of . + + + + Gets the the CLR value for a primitive property. + + The entry to get the property value. + Name of the property. + The name of the entity type to get the property value. + true if the property is a key property, false otherwise. + The clr value of the property. + + + + Gets the CLR value for a primitive property. + + The name of the entity type to get the property value. + The ODataProperty to get the value from. + true if the property is a key property, false otherwise. + The clr value of the property. + + + + Validates that the entry has key properties. + + Key properties of the entry. + The entity type name of the entry. + + + + The entry instance. + + + + + The context object to answer basic questions regarding the type of the entry. + + + + + The actual entity type of the entry, i.e. ODataEntry.TypeName. + + + + + The key property name and value pairs of the entry. + + + + + The ETag property name and value pairs of the entry. + + + + + The selected navigation properties. + + + + + The selected stream properties. + + + + + The selected always bindable operations. + + + + + Implementation of based on serialization info. + + + + + Empty array of navigation properties. + + + + + Empty dictionary of stream properties. + + + + + Empty array of operations. + + + + + The serialization info of the entry for writing without model. + + + + + Constructs an instance of . + + The entry instance. + The context object to answer basic questions regarding the type of the entry. + The serialization info of the entry for writing without model. + + + + Gets the property name value pairs filtered by serialization property kind. + + The entry to get the properties from. + The serialization info property kind. + The entity type name of the entry. + The property name value pairs filtered by serialization property kind. + + + + The key property name and value pairs of the entry. + + + + + The ETag property name and value pairs of the entry. + + + + + The actual entity type of the entry, i.e. ODataEntry.TypeName. + + + + + The selected navigation properties. + + + + + The selected stream properties. + + + + + The selected always bindable operations. + + + + + Implementation of based on the given model. + + + + + The entity type of the entry. + + + + + The metadata context to use. + + + + + The selected properties. + + + + + Constructs an instance of . + + The entry instance. + The context object to answer basic questions regarding the type of the entry. + The entity type of the entry. + The metadata context to use. + The selected properties. + + + + The key property name and value pairs of the entry. + + + + + The ETag property name and value pairs of the entry. + + + + + The actual entity type name of the entry. + + + + + The selected navigation properties. + + + + + The selected stream properties. + + + + + The selected always bindable operations. + + + + + Interface used for substitutability of the metadata-centric responsibilities of . + + + + + Gets an entity metadata builder for the given entry. + + Entry state to use as reference for information needed by the builder. + An entity metadata builder. + + + + Gets the list of operations that are always bindable to a type. + + The binding type in question. + The list of operations that are always bindable to a type. + + + + Determines whether operations bound to this type must be qualified with the operation they belong to when appearing in a $select clause. + + The entity type the operations are bound to. + True if the operations must be container qualified, otherwise false. + + + + Gets the Edm Model. + + + + + Gets the service base Uri. + + + + + Gets the metadata document uri. + + + + + Default implementation of . + + + + + The Edm Model. + + + + + EdmTypeResolver instance to resolve entity set base type. + + + + + Cache of operations that are always bindable to entity types. + + + + + true if we are reading or writing a response payload, false otherwise. + + + + + Callback to determine whether operations bound to this type must be qualified with the operation they belong to when appearing in a $select clause. + + + + + The metadata document Uri. + + + + + The service base Uri. + + + + + Constructs an ODataMetadataContext. + + true if we are writing a response payload, false otherwise. + The Edm model. + The metadata document uri. + This overload should only be used by the writer. + + + + Constructs an ODataMetadataContext. + + true if we are reading a response payload, false otherwise. + Callback to determine whether operations bound to this type must be qualified with the operation they belong to when appearing in a $select clause. + EdmTypeResolver instance to resolve entity set base type. + The Edm model. + The metadata document Uri. + This overload should only be used by the reader. + + + + Gets an entity metadata builder for the given entry. + + Entry state to use as reference for information needed by the builder. + An entity metadata builder. + + + + Gets the list of operations that are always bindable to a type. + + The binding type in question. + The list of operations that are always bindable to a type. + + + + Determines whether operations bound to this type must be qualified with the operation they belong to when appearing in a $select clause. + + The entity type the operations are bound to. + True if the operations must be container qualified, otherwise false. + + + + Gets the Edm Model. + + + + + Gets the service base Uri. + + + + + Gets the metadata document uri. + + + + + Generates operations which were omitted by the service because they fully match conventions/templates and are always available. + + + + The current entry metadata context. + + + The metadata context of the entry to generate the missing operations for. + + + The list of computed actions. + + + The list of computed functions. + + + + Initializes a new instance of the class. + + The metadata context of the entry to generate the missing operations for. + The current entry metadata context. + + + + Gets the computed missing Actions from the generator. + + The computed missing Actions. + + + + Gets the computed missing Functions from the generator. + + The computed missing Functions. + + + + Returns a hash set of function imports (actions and functions) in the given entry. + + The entry in question. + The edm model to resolve function imports. + The metadata document uri. + The hash set of function imports (actions and functions) in the given entry. + + + + Computes the operations that are missing from the payload but should be added by conventions onto the entry. + + + + + Interface used for substitutability, to answer basic questions regarding the type of the entry or feed. + Metadata may come from a user-provided model or from the SetSerializationInfo() method on a feed or entry. The latter is considered the "no-model" case since only strings + are provided, and there is no interconnectedness. The goal of this interface is to provide a way to query the metadata information available on an entry or feed without + needing to know where the metadata originated from. + + + + + The entity set name of the feed or entry. + + + + + The element type name of the entity set of the feed or entry. + + + + + The expected entity type name of the entry. + For example, in the request URI 'http://example.com/Service.svc/People/Namespace.VIP_Person', the expected entity type is Namespace.VIP_Person. + (The entity set element type name in this example may be Person, and the actual entity type of a particular entity might be a type more derived than VIP_Person) + + + + + true if the entry is an MLE, false otherwise. + + + + + The Url convention to use for the entity set. + + + + + Class responsible for logic specific to the JSON Light full metadata level (indicated by "odata=fullmetadata" in the media type). + + + The general rule-of-thumb for full-metadata payloads is that they include all "odata.*" annotations that would be included in minimal metadata mode, + plus any "odata.*" annotations that could be computed client-side if we the client had a model. + + + + + Class responsible for logic that varies based on the JSON Light metadata level. + + + + + Creates the appropriate metadata level based on the media type being written. + + The full media type being written. This media type must have a type/subtype of "application/json" + and should not imply verbose json (by including "odata=verbose" as a parameter). + The metadata document uri from the writer settings. + The edm model. + true if we are writing a response, false otherwise. + The JSON Light metadata level being written. + + + + Returns the oracle to use when determing the type name to write for entries and values. + + + If true, the type name to write will vary based on the metadata level. + If false, the type name writing rules will always match minimal metadata, + regardless of the actual metadata level being written. + This is for backwards compatibility. + + An oracle that can be queried to determine the type name to write. + + + + Indicates whether the "odata.metadata" URI should be written based on the current metadata level. + + true if the metadata URI should be written, false otherwise. + + + + Creates the metadata builder for the given entry. If such a builder is set, asking for payload + metadata properties (like EditLink) of the entry may return a value computed by convention, + depending on the metadata level and whether the user manually set an edit link or not. + + The entry to create the metadata builder for. + The context object to answer basic questions regarding the type of the entry or feed. + The serialization info for the entry. + The entity type of the entry. + The selected properties of this scope. + true if the entity metadata builder to create should be for a response payload; false for a request. + true if keys should go in seperate segments in auto-generated URIs, false if they should go in parentheses. + A null value means the user hasn't specified a preference and we should look for an annotation in the entity container, if available. + The created metadata builder. + + + + Injects the appropriate metadata builder based on the metadata level. + + The entry to inject the builder. + The metadata builder to inject. + + + + The Edm model. + + + + + The metadata document uri from the writer settings. + + + + + Constructs a new . + + The metadata document uri from the writer settings. + The Edm model. + + + + Returns the oracle to use when determing the type name to write for entries and values. + + + If true, the type name to write according to full metadata rules. + If false, the type name writing according to minimal metadata rules. + This is for backwards compatibility. + + An oracle that can be queried to determine the type name to write. + + + + Indicates whether the "odata.metadata" URI should be written based on the current metadata level. + + true if the metadata URI should be written, false otherwise. + + + + Creates the metadata builder for the given entry. If such a builder is set, asking for payload + metadata properties (like EditLink) of the entry may return a value computed by convention, + depending on the metadata level and whether the user manually set an edit link or not. + + The entry to create the metadata builder for. + The context object to answer basic questions regarding the type of the entry or feed. + The serialization info for the entry. + The entity type of the entry. + The selected properties of this scope. + true if the entity metadata builder to create should be for a response payload; false for a request. + true if keys should go in seperate segments in auto-generated URIs, false if they should go in parentheses. + A null value means the user hasn't specified a preference and we should look for an annotation in the entity container, if available. + The created metadata builder. + + + + Injects the appropriate metadata builder based on the metadata level. + + The entry to inject the builder. + The metadata builder to inject. + + + + Returns the metadata document URI which has been validated to be non-null. + + + + + Class responsible for determining the type name that should be written on the wire for entries and values in JSON full metadata mode. + + + + + Class responsible for determining the type name that should be written on the wire for entries and values in JSON Light. + + + + + Determines the entity type name to write to the payload. + + The expected type name, e.g. the base type of the set or the nav prop. + The ODataEntry whose type is to be written. + Type name to write to the payload, or null if no type name should be written. + + + + Determines the type name to write to the payload. Json Light type names are only written into the payload for open properties + or if the payload type name is more derived than the model type name. + + The ODataValue whose type name is to be written. + The type as expected by the model. + The type resolved from the value. + true if the type name belongs to an open property, false otherwise. + Type name to write to the payload, or null if no type should be written. + + + + Determines the entity type name to write to the payload. + + The expected type name, e.g. the base type of the set or the nav prop. + The ODataEntry whose type is to be written. + Type name to write to the payload, or null if no type name should be written. + + + + Determines the type name to write to the payload. Json Light type names are only written into the payload for open properties + or if the payload type name is more derived than the model type name. + + The ODataValue whose type name is to be written. + The type as expected by the model. + The type resolved from the value. + true if the type name belongs to an open property, false otherwise. + Type name to write to the payload, or null if no type should be written. + + + + Class responsible for logic specific to the JSON Light minimal metadata level (indicated by "odata=minimalmetadata" in the media type, or lack of an "odata" parameter in a v3 and above request). + + + The general rule-of-thumb for minimal-metadata payloads is that they include all "odata.*" annotations that can't be computed client-side, assuming the client has the server model available + as well as the ability to compute missing payload metadata based on the standard conventions. + + + + + Returns the oracle to use when determing the type name to write for entries and values. + + Not used in this implementation of the abstract method. + An oracle that can be queried to determine the type name to write. + + + + Indicates whether the "odata.metadata" URI should be written based on the current metadata level. + + true if the metadata URI should be written, false otherwise. + + + + Creates the metadata builder for the given entry. If such a builder is set, asking for payload + metadata properties (like EditLink) of the entry may return a value computed by convention, + depending on the metadata level and whether the user manually set an edit link or not. + + The entry to create the metadata builder for. + The context object to answer basic questions regarding the type of the entry or feed. + The serialization info for the entry. + The entity type of the entry. + The selected properties of this scope. + true if the entity metadata builder to create should be for a response payload; false for a request. + true if keys should go in seperate segments in auto-generated URIs, false if they should go in parentheses. + A null value means the user hasn't specified a preference and we should look for an annotation in the entity container, if available. + The created metadata builder. + + + + Injects the appropriate metadata builder based on the metadata level. + + The entry to inject the builder. + The metadata builder to inject. + + + + Class responsible for determining the type name that should be written on the wire for entries and values in JSON minimal metadata mode, + or the other metadata modes of JSON light when is false. + + + + + Determines the entity type name to write to the payload. + + The expected type name, e.g. the base type of the set or the nav prop. + The ODataEntry whose type is to be written. + Type name to write to the payload, or null if no type name should be written. + + + + Determines the type name to write to the payload. Json Light type names are only written into the payload for open properties + or if the payload type name is more derived than the model type name. + + The ODataValue whose type name is to be written. + The type as expected by the model. + The type resolved from the value. + true if the type name belongs to an open property, false otherwise. + Type name to write to the payload, or null if no type should be written. + + + + Class responsible for logic specific to the JSON Light no metadata level (indicated by "odata=nometadata" in the media type). + + + The general rule-of-thumb for no-metadata payloads is that they omit any "odata.*" annotations, + except for odata.nextlink and odata.count, since the client would get a inaccurate representation of the data available if they were left out. + + + + + Returns the oracle to use when determing the type name to write for entries and values. + + + If true, the type name to write according to full metadata rules. + If false, the type name writing according to minimal metadata rules. + This is for backwards compatibility. + + An oracle that can be queried to determine the type name to write. + + + + Indicates whether the "odata.metadata" URI should be written based on the current metadata level. + + true if the metadata URI should be written, false otherwise. + + + + Creates the metadata builder for the given entry. If such a builder is set, asking for payload + metadata properties (like EditLink) of the entry may return a value computed by convention, + depending on the metadata level and whether the user manually set an edit link or not. + + The entry to create the metadata builder for. + The context object to answer basic questions regarding the type of the entry or feed. + The serialization info for the entry. + The entity type of the entry. + The selected properties of this scope. + true if the entity metadata builder to create should be for a response payload; false for a request. + true if keys should go in seperate segments in auto-generated URIs, false if they should go in parentheses. + A null value means the user hasn't specified a preference and we should look for an annotation in the entity container, if available. + The created metadata builder. + + + + Injects the appropriate metadata builder based on the metadata level. + + The entry to inject the builder. + The metadata builder to inject. + + + + Class responsible for determining the type name that should be written on the wire for entries and values in JSON no metadata mode. + + + + + Determines the entity type name to write to the payload. + + The expected type name, e.g. the base type of the set or the nav prop. + The ODataEntry whose type is to be written. + Type name to write to the payload, or null if no type name should be written. + + + + Determines the type name to write to the payload. Json Light type names are only written into the payload for open properties + or if the payload type name is more derived than the model type name. + + The ODataValue whose type name is to be written. + The type as expected by the model. + The type resolved from the value. + true if the type name belongs to an open property, false otherwise. + Type name to write to the payload, or null if no type should be written. + + + + The context object to answer basic questions regarding the type of the entry or feed. + + + + + Default Url convention. + + + + + If true, throw if any of the set or type name cannot be determined; if false, return null when any of the set or type name cannot determined. + + + + + Constructs an instance of . + + If true, throw if any of the set or type name cannot be determined; if false, return null when any of the set or type name cannot determined. + + + + Creates an instance of . + + The serialization info from the feed or entry instance. + The entity set of the feed or entry. + The element type of the entity set. + The expected entity type of the feed or entry. + The Edm model instance to use. + If true, throw if any of the set or type name cannot be determined; if false, return null when any of the set or type name cannot determined. + A new instance of . + + + + Validate and return the given value. + + The type of the value to validate. + The value to validate. + The return value. + + + + The entity set name of the feed or entry. + + + + + The element type name of the entity set of the feed or entry. + + + + + The expected entity type name of the entry. + For example, in the request URI 'http://example.com/Service.svc/People/Namespace.VIP_Person', the expected entity type is Namespace.VIP_Person. + (The entity set element type name in this example may be Person, and the actual entity type of a particular entity might be a type more derived than VIP_Person) + + + + + true if the entry is an MLE, false otherwise. + + + + + The Url convention to use for the entity set. + + + + + The context object to answer basic questions regarding the type of the entry or feed based on the serialization info. + + + + + The serialization info of the entry for writing without model. + + + + + Constructs an instance of . + + The serialization info from the feed or entry instance. + + + + The entity set name of the feed or entry. + + + + + The element type name of the entity set of the feed or entry. + + + + + The expected entity type name of the entry. + For example, in the request URI 'http://example.com/Service.svc/People/Namespace.VIP_Person', the expected entity type is Namespace.VIP_Person. + (The entity set element type name in this example may be Person, and the actual entity type of a particular entity might be a type more derived than VIP_Person) + + + + + true if the entry is an MLE, false otherwise. + + + + + The Url convention to use for the entity set. + + + + + The context object to answer basic questions regarding the type of the entry or feed based on the metadata. + + + + + The Edm model instance to use. + + + + + The entity set of the feed or entry. + + + + + The element type of the entity set of the feed or entry. + + + + + The expected entity type of the feed or entry. + For example, in the request URI 'http://example.com/Service.svc/People/Namespace.VIP_Person', the expected entity type is Namespace.VIP_Person. + (The entity set element type name in this example may be Person, and the actual entity type of a particular entity might be a type more derived than VIP_Person) + + + + + The entity set name of the feed or entry. + + + + + true if the entry is an media link entry or if the feed contains media link entries, false otherwise. + + + + + The url convention to use for the entity set. + + + + + Constructs an instance of . + + The entity set of the feed or entry. + The element type of the entity set. + The expected entity type of the feed or entry. + The Edm model instance to use. + + + + The entity set name of the feed or entry. + + + + + The element type name of the entity set of the feed or entry. + + + + + The expected entity type name of the entry. + For example, in the request URI 'http://example.com/Service.svc/People/Namespace.VIP_Person', the expected entity type is Namespace.VIP_Person. + (The entity set element type name in this example may be Person, and the actual entity type of a particular entity might be a type more derived than VIP_Person) + + + + + true if the entry is an MLE, false otherwise. + + + + + The Url convention to use for the entity set. + + + + + Extension methods on the OData object model. + + + + + Provide additional serialization information to the for . + + The instance to set the serialization info. + The serialization info to set. + + + + Provide additional serialization information to the for . + + The instance to set the serialization info. + The serialization info to set. + + + + Provide additional serialization information to the for . + + The instance to set the serialization info. + The serialization info to set. + + + + Provide additional serialization information to the for . + + The instance to set the serialization info. + The serialization info to set. + + + + Provide additional serialization information to the for . + + The instance to set the serialization info. + The serialization info to set. + + + + Provide additional serialization information to the for . + + The instance to set the serialization info. + The serialization info to set. + + + + Class to provide additional serialization information to the for an . + + + + + The fully qualified type name of the collection to be written. + + + + + Validates the instance. + + The serialization info instance to validate. + The instance. + + + + The fully qualified type name of the collection to be written. + + + + + Class to provide additional serialization information to the for an . + + + + + The source entity set name of the navigation property. Should be fully qualified if the entity set is not in the default container. + + + + + The fully qualified type name of the declaring entity type of the navigation property if the declaring entity type is not the base type of the source entity set. + Should be null if the declaring entity type is the base type of the source entity set. + + + + + The name of the navigation property to write the entity reference links for. + + + + + Validates the instance. + + The serialization info instance to validate. + The instance. + + + + The source entity set name of the navigation property. Should be fully qualified if the entity set is not in the default container. + + + + + The fully qualified type name of the declaring entity type of the navigation property if the declaring entity type is not the base type of the source entity set. + Should be null if the declaring entity type is the base type of the source entity set. + + + + + The name of the navigation property to write the entity reference links for. + + + + + Class to provide additional serialization information to the for an . + + + + + The source entity set name of the navigation property. Should be fully qualified if the entity set is not in the default container. + + + + + The fully qualified type name of the declaring entity type of the navigation property if the declaring entity type is not the base type of the source entity set. + Should be null if the declaring entity type is the base type of the source entity set. + + + + + The name of the navigation property to write the entity reference link for. + + + + + Validates the instance. + + The serialization info instance to validate. + The instance. + + + + The source entity set name of the navigation property. Should be fully qualified if the entity set is not in the default container. + + + + + The fully qualified type name of the declaring entity type of the navigation property if the declaring entity type is not the base type of the source entity set. + Should be null if the declaring entity type is the base type of the source entity set. + + + + + The name of the navigation property to write the entity reference link for. + + + + + true if the navigation property navigates to a collection of entities; false otherwise. + + + + + The enum of property kinds. + + + + + Unspecified property kind or if the property is not a key property, an etag property or an open property. + + + + + The property is a key property. + + + + + The property is an etag property + + + + + The property is an open property + + + + + Class to provide additional serialization information to the for an . + + + + + The kind of the property + + + + + Class to provide additional serialization information to the for an . + + + + + The entity set name of the entry to be written. Should be fully qualified if the entity set is not in the default container. + + + + + The namespace qualified element type name of the entity set. + + + + + The namespace qualified type name of the expected entity type. + + + + + Validates the instance. + + The serialization info instance to validate. + The instance. + + + + The entity set name of the entry to be written. Should be fully qualified if the entity set is not in the default container. + + + + + The namespace qualified element type name of the entity set. + + + + + The namespace qualified type name of the expected entity type. + + + + + Class to represent a HTTP header value element. + + + + + Internal constructor to create a new instance of . + + The name of the preference. + The value of the preference. + The enumeration of preference parameter key value pairs. + + + + Converts the current to string. + + The string for . + + + + Appends the and to as name=value. + + The string builder to append to. + The name to append. + The value to append. + + + + The name of the preference. + + + + + The value of the preference. + + + + + The enumeration of preference parameter key value pairs. + + + + + Extension methods for http header values. + + + + + Constructs a new instance of . + + + + + Returns the HTTP header value string which can be used to set the header on the requst and response messages. + + Returns the HTTP header value string which can be used to set the header on the requst and response messages. + + + + Lexer to parse HTTP header values. + + + + + The ',' separator. + + + + + The ';' separator. + + + + + The '=' separator. + + + + + The name of the HTTP header being parsed. + + + + + The value of the HTTP header being parsed. + + + + + The starting index to the next item to be parsed. + + + + + The value of the current parsed item. If the item type is quoted-string, this returns the unescaped and unquoted string value. For other item types, + the value is the same as the original text from the header. + + + + + The original text of the current parsed item. If the item type is quoted-string, this returns the escaped and quoted string value straight from the header. + For other item types, the original text is the same as the item value. + + + + + Constructs a new instance of . + + The name of the HTTP header being parsed. + The value of the HTTP header being parsed. + The value of the current parsed item. If the item type is quoted-string, this returns the unescaped and unquoted string value. For other item types, + the value is the same as the original text from the header. + The original text of the current parsed item. If the item type is quoted-string, this returns the escaped and quoted string value straight from the header. + For other item types, the original text is the same as the item value. + The start index of the next item to be parsed. + + + + Constructs a new instance of the HTTP header value item. + + The name of the HTTP header being parsed. + The value of the HTTP header being parsed. + The newly created instance of . + + + + Reads the content of a HTTP header from this instance to a new instance. + + A new instance populated with the content from this instance. + + + + Returns an instance of to parse the rest of the items on the header value. + Parsing is based on this grammar: + header = "header-name" ":" 1#element + element = token [ BWS "=" BWS (token | quoted-string) ] + *( OWS ";" [ OWS parameter ] ) + parameter = token [ BWS "=" BWS (token | quoted-string) ] + + Returns an instance of to parse the rest of the items on the header value. + + + + Reads a from and advances the forward. + + The lexer to read from. + The that was read. + + + + Reads a token or token=(token|quoted-string) from the , convert it to a key value pair and advances the . + + The lexer to read from. + The converted key value pair. + + + + Returns true if we've parsed to the end of the header value, false otherwise. + + Returns true if we've parsed to the end of the header value, false otherwise. + + + + Reads a token or quoted-string value from the header. + + The token or quoted-string value that was read from the header. + + + + Reads a token from the header. + + The token item that was read from the header. + + + + Reads a separator from the header. + + The separator item that was read from the header. + + + + The value of the current parsed item. If the item type is quoted-string, this returns the unescaped and unquoted string value. For other item types, + the value is the same as the original text from the header. + + + + + The original text of the current parsed item. If the item type is quoted-string, this returns the escaped and quoted string value straight from the header. + For other item types, the original text is the same as the item value. + + + + + The type of the current parsed item. + + + + + The item type enum. + + + + Currently at the start of the header value. + + + The current item is a token. + + + The current item is a quoted-string. + + + The current item is the header element separator ','. + + + The current item is the parameter separator ';'. + + + The current item is the value separator '='. + + + At the end of the header value. + + + + Represents the start of the http header value. + + + + + Constructs a new instance of . + + The name of the HTTP header being parsed. + The value of the HTTP header being parsed. + + + + Returns an instance of to parse the rest of the items on the header value. + Parsing is based on this grammar: + header = "header-name" ":" 1#element + element = token [ BWS "=" BWS (token | quoted-string) ] + *( OWS ";" [ OWS parameter ] ) + parameter = token [ BWS "=" BWS (token | quoted-string) ] + + Returns an instance of to parse the rest of the items on the header value. + + + + The type of the current item. + + + + + Represents a token in the HTTP header value. + + + + + Constructs a new instance of . + + The name of the HTTP header being parsed. + The value of the HTTP header being parsed. + The value of the token. + The start index of the next item. + + + + Returns an instance of to parse the rest of the items on the header value. + Parsing is based on this grammar: + header = "header-name" ":" 1#element + element = token [ BWS "=" BWS (token | quoted-string) ] + *( OWS ";" [ OWS parameter ] ) + parameter = token [ BWS "=" BWS (token | quoted-string) ] + + Returns an instance of to parse the rest of the items on the header value. + + + + The type of the current item. + + + + + Represents a quoted-string in the HTTP header value. + + + + + Constructs a new instance of . + + The name of the HTTP header being parsed. + The value of the HTTP header being parsed. + The value of the quoted string, unescaped and without quotes. + The original text of the quoted string, escaped and with quotes. + The start index of the next item. + + + + Returns an instance of to parse the rest of the items on the header value. + Parsing is based on this grammar: + header = "header-name" ":" 1#element + element = token [ BWS "=" BWS (token | quoted-string) ] + *( OWS ";" [ OWS parameter ] ) + parameter = token [ BWS "=" BWS (token | quoted-string) ] + + Returns an instance of to parse the rest of the items on the header value. + + + + The type of the current item. + + + + + Represents a separator in the HTTP header value. + + + + + Constructs a new instance of . + + The name of the HTTP header being parsed. + The value of the HTTP header being parsed. + The value of the separator. + The start index of the next item. + + + + Returns an instance of to parse the rest of the items on the header value. + Parsing is based on this grammar: + header = "header-name" ":" 1#element + element = token [ BWS "=" BWS (token | quoted-string) ] + *( OWS ";" [ OWS parameter ] ) + parameter = token [ BWS "=" BWS (token | quoted-string) ] + + Returns an instance of to parse the rest of the items on the header value. + + + + The type of the current item. + + + + + Represents the end of the http header value. + + + + + Static instance of the end item. + + + + + Constructs a new instance of . + + + + + Returns an instance of to parse the rest of the items on the header value. + Parsing is based on this grammar: + header = "header-name" ":" 1#element + element = token [ BWS "=" BWS (token | quoted-string) ] + *( OWS ";" [ OWS parameter ] ) + parameter = token [ BWS "=" BWS (token | quoted-string) ] + + Returns an instance of to parse the rest of the items on the header value. + + + + The type of the current item. + + + + + Filter class to determine whether or not to read an annotation. + + + + + Filter that maches all annotation names. + + + + + Filter than maches no annotation names. + + + + + Separator for annotation filter patterns. + + + + + Patterns to match, sorted in the order of higher to lower priorities to match. + + + + + Private constructor to create a filter from comma delimited patterns to match to include or exclude annotations. + + Patters to match to include or exclude annotations. + + + + Create a filter from comma delimited patterns to match to include or exclude annotations. + + Comma delimited patterns to match to include or exclude annotations. + The newly created filter. + + + + Returns true to indicate that the annotation with the name should be read, false otherwise. + + The name of the annotation in question. + Returns true to indicate that the annotation with the name should be read, false otherwise. + + + + Filter to read all annotations. + + + + + Private default constructor. + + + + + Returns true to indicate that the annotation with the name should be read, false otherwise. + + The name of the annotation in question. + Returns true to indicate that the annotation with the name should be read, false otherwise. + + + + Filter to read no annotation. + + + + + Private default constructor. + + + + + Returns true to indicate that the annotation with the name should be read, false otherwise. + + The name of the annotation in question. + Returns true to indicate that the annotation with the name should be read, false otherwise. + + + + Filter pattern class to determine whether an annotation name matches the pattern. + + + + + The '.' namespace separator. + + + + + The '-' operator to indicate that the annotation should be excluded from read when it matches the pattern. + + + + + The wild card constant. + + + + + String constant for .* + + + + + The "*" pattern that includes all annotations. + + + + + The "-*" pattern that excludes all annotations. + + + + + The pattern to match. + + + + + true if the annotation should be excluded from reading when its name matches this pattern; false otherwise. + + + + + Constructs a pattern instance to determine whether an annotation name matches the pattern. + + The pattern to match. + true if the annotation should be excluded from reading when its name matches this pattern; false otherwise. + + + + Compares the priority of current pattern with the priority of . + + + A 32-bit signed integer that indicates the relative priority of the patterns being compared. The return value has the following meanings: + -1 means this pattern has higher priority than . + 0 means this pattern has the same priority as . + 1 means this pattern has lower priority than . + + A pattern to compare with this pattern. + + + + Creates a pattern instance to determine whether an annotation name matches the pattern. + + The pattern for this instance. + The newly created instance. + + + + Sorts the patterns in the array from highest to lowest priorities. + + The source array to sort. When the method returns the items in this array instance will be rearragned. + + + + Match the given annotation name against the pattern. + + Annotation name in question. + Returns true if the given annotation name matches the pattern, false otherwise. + + + + Compares the priority of with . + + The left hand side pattern to compare. + The right hand side pattern to compare. + + A 32-bit signed integer that indicates the relative priority of the patterns being compared. The return value has the following meanings: + -1 means has higher priority than . + 0 means has same priority as . + 1 means has lower priority than . + + + + + Removes the exclude operator from the given pattern string. + + The input pattern to the method and will return the pattern without the exclude operator if it's found. + Returns true if the exclude operator is found and removed from the input pattern; false otherwise. + + + + Validates the pattern. + + The pattern to validate. + + + + true if the annotation should be excluded from reading when its name matches this pattern; false otherwise. + + + + + The wild card pattern that matches everything. + + + + + Constructs the wild card pattern. + + true if the annotation should be excluded from reading when its name matches this pattern; false otherwise. + + + + Match the given annotation name against the pattern. + + Annotation name in question. + Returns true if the given annotation name matches the pattern, false otherwise. + + + + Pattern class to match any annotation name that starts with this pattern. + + + + + Constructs the starts with pattern. + + The pattern to start with. + true if the annotation should be excluded from reading when its name matches this pattern; false otherwise. + + + + Match the given annotation name against the pattern. + + Annotation name in question. + Returns true if the given annotation name matches the pattern, false otherwise. + + + + Pattern class to match a annotation name that is exactly the same as this pattern. + + + + + Constructs the exact match pattern. + + The exact pattern to match + true if the annotation should be excluded from reading when its name matches this pattern; false otherwise. + + + + Match the given annotation name against the pattern. + + Annotation name in question. + Returns true if the given annotation name matches the pattern, false otherwise. + + + + Contract for providing implementations of more specific lookups needed for parsing OData URIs that are not efficiently answered + by existing APIs in and its related interfaces. + + + + + Finds all function imports with the given name which are bindable to an instance of the giving binding type or a more derived type. + + The binding entity type. + The name of the function imports to find. May be qualified with an entity container name. + The function imports that match the search criteria. + + + + Finds an entity set given a name that may be container qualified. If no container name is provided, the default container should be used. + + The name which might be container qualified. If no container name is provided, the default container should be used. + The entity set if one was found or null. + + + + Finds a service operation for the given name. + + The name of the service operation to find. May be qualified with an entity container name. + The function import representing a service operation or null if one could not be found with the given name. + + + + Finds a function or action bound to the specific type with the given name. + + The binding type. + The name of the function imports to find. May be qualified with an entity container name. + The parameter names of the non-binding parameters, if provided in the request URI. + The function import that matches the search criteria or null if there was no match. + + + + Represents an instance annotation. + + + + + Constructs a new instance. + + The name of the instance annotation. + The value of the instance annotation. + + + + Validates that the given is a valid instance annotation name. + + Name to validate. + + + + Validates the given is a valid instance annotation value. + + Value to validate. + + + + Instance annotation name. + + + + + Instance annotation value. + + + + + Extension methods to IODataRequestMessage and IODataResponseMessage. + + + + + Reads the DataServiceVersion header from the and parses it. + If no DataServiceVersion header is found it sets the default version to be used for reading. + + The message to get the data service version header from. + The default version to use if the header was not specified. + + The retrieved from the DataServiceVersion header of the message. + The default version if none is specified in the header. + + + + + Reads the DataServiceVersion header from the and parses it. + If no DataServiceVersion header is found it sets the default version to be used for reading. + + The message to get the data service version header from. + The default version to use if the header was not specified. + + The retrieved from the DataServiceVersion header of the message. + The default version if none is specified in the header. + + + + + Gets the instance to get or set preferences on the "Prefer" header of the . + + The request message to get or set the "Prefer" header. + Returns the instance to get or set preferences on the "Prefer" header of the . + + + + Gets the instance to get or set preferences on the "Preference-Applied" header of the . + + The response message to get or set the "Preference-Applied" header. + Returns the instance to get or set preferences on the "Preference-Applied" header of the . + + + + Base Configuration settings for OData message readers. + + + + Quotas to use for limiting resource consumption when reading an OData message. + + + The check characters. + + + The enable atom metadata reading. + + + The annotation filter. + + + + Initializes a new instance of the class. + + + + + Copy constructor. + + The instance to copy. + + + + Flag to control whether the reader should check for valid Xml characters or not. + + + + + Flag to control whether ATOM metadata is read in ATOM payloads. + + + + + Quotas to use for limiting resource consumption when reading an OData message. + + + + + Func to evaluate whether an annotation should be read or skipped by the reader. The func should return true if the annotation should + be read and false if the annotation should be skipped. A null value indicates that all annotations should be skipped. + + + + + Base Configuration settings for OData message writers. + + + + Quotas to use for limiting resource consumption when writing an OData message. + + + The check characters. + + + The indent. + + + + Constructor to create default settings for OData writers. + + + + + Copy constructor to create a copy of the settings for OData writers. + + Settings to create a copy from. + + + + Flag to control whether the writer should use indentation or not. + + + + + Flag to control whether the writer should check for valid Xml characters or not. + + + + + Quotas to use for limiting resource consumption when writing an OData message. + + + + + Class to set the "Prefer" header on an or + the "Preference-Applied" header on an . + + + + + The return-no-content preference token. + + + + + The return-content preference token. + + + + + The odata-annotations preference-extensions token. + + + + + The Prefer header name. + + + + + The Preference-Applied header name. + + + + + Empty header parameters + + + + + The return-no-content preference. + + + + + The return-content preference. + + + + + The message to set the preference header to and to get the preference header from. + + + + + "Prefer" if message is an IODataRequestMessage; "Preference-Applied" if message is an IODataResponseMessage. + + + + + Dictionary of preferences in the header + + + + + Internal constructor to instantiate an from an . + + The request message to get and set the "Prefer" header. + + + + Internal constructor to instantiate an from an . + + The response message to get and set the "Preference-Applied" header. + + + + Adds quotes around the given text value. + + text to quote. + Returns the quoted text. + + + + Returns true if the given preference exists in the header, false otherwise. + + Preference in question. + Returns true if the given preference exists in the header, false otherwise. + + + + Clears the from the "Prefer" header on the underlying IODataRequestMessage or + the "Preference-Applied" header on the underlying IODataResponseMessage. + + The preference to clear. + + + + Sets the to the "Prefer" header on the underlying IODataRequestMessage or + the "Preference-Applied" header on the underlying IODataResponseMessage. + + The preference to set. + + If is already on the header, this method does a replace rather than adding another instance of the same preference. + + + + + Gets the from the "Prefer" header from the underlying or + the "Preference-Applied" header from the underlying . + + The preference to get. + Returns a key value pair of the and its value. The Value property of the key value pair may be null since not + all preferences have value. If the is missing from the header, null is returned. + + + + Parses the current preference values to a dictionary of preference and value pairs. + + Returns a dictionary of preference and value pairs; null if the preference header has not been set. + + + + Sets the "Prefer" or the "Preference-Applied" header to the underlying message. + + + + + Property to get and set the "return-content" and "return-no-content" preferences to the "Prefer" header on the underlying IODataRequestMessage or + the "Preference-Applied" header on the underlying IODataResponseMessage. + Setting true sets the "return-content" preference and clears the "return-no-content" preference. + Setting false sets the "return-no-content" preference and clears the "return-content" preference. + Setting null clears the "return-content" and "return-no-content" preferences. + Returns true if the "return-content" preference is on the header. Otherwise returns false if the "return-no-content" is on the header. + Returning null indicates that "return-content" and "return-no-content" are not on the header. + + + + + Property to get and set the "odata.include-annotations" preference with the given filter to the "Prefer" header on the underlying IODataRequestMessage or + the "Preference-Applied" header on the underlying IODataResponseMessage. + If the "odata-annotations" preference is already on the header, set replaces the existing instance. + Returning null indicates that the "odata.include-annotations" preference is not on the header. + + The filter string may be a comma delimited list of any of the following supported patterns: + "*" -- Matches all annotation names. + "ns.*" -- Matches all annotation names under the namespace "ns". + "ns.name" -- Matches only the annotation name "ns.name". + "-" -- The exclude operator may be used with any of the supported pattern, for example: + "-ns.*" -- Excludes all annotation names under the namespace "ns". + "-ns.name" -- Excludes only the annotation name "ns.name". + Null or empty filter is equivalent to "-*". + + The relative priority of the pattern is base on the relative specificity of the patterns being compared. If pattern1 is under the namespace pattern2, + pattern1 is more specific than pattern2 because pattern1 matches a subset of what pattern2 matches. We give higher priority to the pattern that is more specific. + For example: + "ns.*" has higher priority than "*" + "ns.name" has higher priority than "ns.*" + "ns1.name" has same priority as "ns2.*" + + Patterns with the exclude operator takes higher precedence than the same pattern without. + For example: "-ns.name" has higher priority than "ns.name". + + Examples: + "ns1.*,ns.name" -- Matches any annotation name under the "ns1" namespace and the "ns.name" annotation. + "*,-ns.*,ns.name" -- Matches any annotation name outside of the "ns" namespace and only "ns.name" under the "ns" namespace. + + + + + Dictionary of preferences in the header. + + + + + Extension methods for ReadOnlyEnumerable and ReadOnlyEnumerableOfT + + + + + true if is the same instance as ReadOnlyEnumerableOfT.Empty(). false otherwise. + + The element type of the enumerable. + The enumerable in question. + Returns true if is the empty ReadOnlyEnumerableOfT. false otherwise. + + + + Casts an IEnumerableOfT to ReadOnlyEnumerableOfT. + + The element type of the enumerable. + The source enumerable. + The name of the collection to report in case there's an error. + The casted ReadOnlyEnumerableOfT. + + + + Returns the as ReadOnlyEnumerableOfT or + a new instance of ReadOnlyEnumerableOfT if is the same instance as ReadOnlyEnumerableOfT.Empty(). + + The element type of the enumerable. + The source enumerable in question. + The name of the collection to report in case there's an error. + Returns the as ReadOnlyEnumerableOfT or + a new instance of ReadOnlyEnumerableOfT if is the same instance as ReadOnlyEnumerableOfT.Empty(). + + + + Returns a ReadOnlyEnumerableOfT that is the result of plus . + + The element type of the enumerable. + The source enumerable to concat. + The name of the collection to report in case there's an error. + Item to concat to the source enumerable. + Returns a ReadOnlyEnumerableOfT that is the result of plus . + + + + Adds an ODataAction to an entry. + + The entry to add the action. + The action to add. + + + + Adds an ODataFunction to an entry. + + The entry to add the function. + The function to add. + + + + Adds an association link to an entry. + + The entry to add the association link to. + The association link to add. + + + + Implementation of OData entity metadata builder based on OData protocol conventions. + + + + The URI builder to use. + + + The context to answer basic metadata questions about the entry. + + + The metadata context. + + + The list of navigation links that have been processed. + + + The edit link. + This is lazily evaluated. It may be retrieved from the entry or computed. + + + The read link. + This is lazily evaluated. It may be retrieved from the entry or computed. + + + The computed ETag. + + + true if the etag value has been computed, false otherwise. + + + The computed ID of this entity instance. + + This is always built from the key properties, and never comes from the entry. + + + + A computed uri that is equivalent to the ID or the edit-link without a type segment. + + + The computed MediaResource for MLEs. + + + The list of computed stream properties. + + + The enumerator for unprocessed navigation links. + + + The missing operation generator for the current entry. + + + + Constructor + + The context to answer basic metadata questions about the entry. + The metadata context. + The uri builder to use. + + + + Gets the edit link of the entity. + + + The absolute URI of the edit link for the entity. + Or null if it is not possible to determine the edit link. + + + + + Gets the read link of the entity. + + + The absolute URI of the read link for the entity. + Or null if it is not possible to determine the read link. + + + + + Gets the ID of the entity. + + + The ID for the entity. + Or null if it is not possible to determine the ID. + + + + + Gets the ETag of the entity. + + + The ETag for the entity. + Or null if it is not possible to determine the ETag. + + + + + Gets the default media resource of the entity. + + + The the default media resource of the entity. + Or null if the entity is not an MLE. + + + + + Gets the entity properties. + + Non-computed properties from the entity. + The the computed and non-computed entity properties. + + + + Gets the list of computed and non-computed actions for the entity. + + The list of computed and non-computed actions for the entity. + + + + Gets the list of computed and non-computed functions for the entity. + + The list of computed and non-computed functions for the entity. + + + + Marks the given navigation link as processed. + + The navigation link we've already processed. + + + + Returns the next unprocessed navigation link or null if there's no more navigation links to process. + + Returns the next unprocessed navigation link or null if there's no more navigation links to process. + + + + Gets the edit link of a stream value. + + The name of the stream property the edit link is computed for; + or null for the default media resource. + + The absolute URI of the edit link for the specified stream property or the default media resource. + Or null if it is not possible to determine the stream edit link. + + + + + Gets the read link of a stream value. + + The name of the stream property the read link is computed for; + or null for the default media resource. + + The absolute URI of the read link for the specified stream property or the default media resource. + Or null if it is not possible to determine the stream read link. + + + + + Gets the navigation link URI for the specified navigation property. + + The name of the navigation property to get the navigation link URI for. + The value of the link URI as seen on the wire or provided explicitly by the user or previously returned by the metadata builder, which may be null. + true if the value of the was seen on the wire or provided explicitly by the user or previously returned by + the metadata builder, false otherwise. This flag allows the metadata builder to determine whether a null navigation link url is an uninitialized value or a value that was set explicitly. + + The navigation link URI for the navigation property. + null if its not possible to determine the navigation link for the specified navigation property. + + + + + Gets the association link URI for the specified navigation property. + + The name of the navigation property to get the association link URI for. + The value of the link URI as seen on the wire or provided explicitly by the user or previously returned by the metadata builder, which may be null. + true if the value of the was seen on the wire or provided explicitly by the user or previously returned by + the metadata builder, false otherwise. This flag allows the metadata builder to determine whether a null association link url is an uninitialized value or a value that was set explicitly. + + The association link URI for the navigation property. + null if its not possible to determine the association link for the specified navigation property. + + + + + Get the operation target URI for the specified . + + The fully qualified name of the operation for which to get the target URI. + The binding parameter type name to include in the target, or null/empty if there is none. + + The target URI for the operation. + null if it is not possible to determine the target URI for the specified operation. + + + + + Get the operation title for the specified . + + The fully qualified name of the operation for which to get the target URI. + + The title for the operation. + null if it is not possible to determine the title for the specified operation. + + + + + Computes the edit link. + + Uri that was computed based on the computed Id and possible type segment. + + + + Computes and sets the field for the computed Id. + + + + + Computes all projected or missing stream properties. + + Non-computed properties from the entity. + The the computed stream properties for the entry. + + + + Lazy evaluated computed entity Id. This is always a computed value and never comes from the entry. + + + + + Lazy evaluated computed entity instance uri. This is always a computed value and never comes from the entry. + + + + + The missig operation generator for the current entry. + + + + + Implementation of OData URI builder based on OData protocol conventions. + + + + + Extensibility point for customizing how OData uri's are built. + + + + + Builds the base URI for the entity container. + + + The base URI for the entity container. + This can be either an absolute URI, + or relative URI which will be combined with the URI of the metadata document for the service. + null if the model doesn't have the service base URI annotation. + + + + + Builds the URI for an entity set. + + The URI to append to. + The entity set name. + The entity set URI. + + + + Builds the entity instance URI with the given key property values. + + The URI to append to. + The list of name value pair for key properties. + The full name of the entity type we are building the key expression for. + The entity instance URI. + + + + Builds the edit link for a stream property. + + The URI to append to. + + The name of the stream property the link is computed for; + or null for the default media resource. + + The edit link for the stream. + + + + Builds the read link for a stream property. + + The URI to append to. + + The name of the stream property the link is computed for; + or null for the default media resource. + + The read link for the stream. + + + + Builds the navigation link for the navigation property. + + The URI to append to. + The name of the navigation property to get the navigation link URI for. + The navigation link URI for the navigation property. + + + + Builds the association link for the navigation property. + + The URI to append to. + The name of the navigation property to get the association link URI for. + The association link URI for the navigation property. + + + + Builds the operation target URI for the specified . + + The URI to append to. + The fully qualified name of the operation for which to get the target URI. + The binding parameter type name to include in the target, or null/empty if there is none. + The target URI for the operation. + + + + Builds a URI with the given type name appended as a new segment on the base URI. + + The URI to append to. + The fully qualified type name to append. + The URI with the type segment appended. + + + The base URI of the service. This will be used as the base URI for all entity containers. + + + The specific url-convention to use. + + + The specific key-serializer to use based on the convention. + + + + Constructor. + + The base URI of the service. This will be used as the base URI for all entity containers. + The specific url convention to use. + + + + Builds the base URI for the entity container. + + + The base URI for the entity container. + This can be either an absolute URI, + or relative URI which will be combined with the URI of the metadata document for the service. + null if the model doesn't have the service base URI annotation. + + + + + Builds the URI for an entity set. + + The URI to append to. + The entity set name. + The entity set URI. + + + + Builds the entity instance URI with the given key property values. + + The URI to append to. + The list of name value pair for key properties. + The full name of the entity type we are building the key expression for. + The entity instance URI. + + + + Builds the edit link for a stream property. + + The URI to append to. + + The name of the stream property the link is computed for; + or null for the default media resource. + + The edit link for the stream. + + + + Builds the read link for a stream property. + + The URI to append to. + + The name of the stream property the link is computed for; + or null for the default media resource. + + The read link for the stream. + + + + Builds the navigation link for the navigation property. + + The URI to append to. + The name of the navigation property to get the navigation link URI for. + The navigation link URI for the navigation property. + + + + Builds the association link for the navigation property. + + The URI to append to. + The name of the navigation property to get the association link URI for. + The association link URI for the navigation property. + + + + Builds the operation target URI for the specified . + + The URI to append to. + The fully qualified name of the operation for which to get the target URI. + The binding parameter type name to include in the target, or null/empty if there is none. + The target URI for the operation. + + + + Builds a URI with the given type name appended as a new segment on the base URI. + + The URI to append to. + The fully qualified type name to append. + The URI with the type segment appended. + + + + Validates the base URI parameter to be a non-null absolute URI. + + The base URI parameter to validate. + + + + Appends a segment to the specified base URI. + + The base Uri to append the segment to. + The segment to append. + True if the new segment should be escaped, otherwise False. + New URI with the appended segment and no trailing slash added. + + + + Gets the CLR value of a primitive key property. + + The key property name. + The key property value. + The entity type name we are validating the key value for. + The primitive value of the key property. + + + + Appends the key expression for the given entity to the given + + The builder to append onto. + The list of name value pair for key properties. + The full name of the entity type we are building the key expression for. + + + + Annotation to capture all of the custom instance annotations on an ODataAnnotatable. + + + Currently only , , and supports instance annotations. + Additionally, instance annotations will only be serialized in Json. + + + + + Backing dictionary of instance annotation term name/object pairs. + + + + + Creates a new to hold instance annotations for an . + + + + + Determines whether the contains an element with the specified key. + + + true if the ICollection> contains an element with the key; otherwise, false. + + The key to locate in the . + is null. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + 1 + + + + Removes all items from the . + + The is read-only. + + + + Adds an element with the provided key and value to the . + + The object to use as the key of the element to add.The object to use as the value of the element to add. is null. + An element with the same key already exists in the .The is read-only. + + + + Removes the element with the specified key from the . + + + true if the element is successfully removed; otherwise, false. This method also returns false if was not found in the original . + + The key of the element to remove. is null.The is read-only. + + + + Gets the value associated with the specified key. + + + true if the object that implements contains an element with the specified key; otherwise, false. + + The key whose value to get.When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized. is null. + + + + Gets an enumerator for this object. + + An enumerator for this object. + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + + Gets or sets the element with the specified key. + + + The element with the specified key. + + The key of the element to get or set. + is null. + The property is retrieved and is not found. + The property is set and the is read-only. + + + + Helper class to track if an annotation has been written. + + + + + Maintains the write status for each annotation using its key. + If a key exists in the list then it is considered written. + + + + + Creates a new to hold write status for instance annotations contained in . + + + + + Check if an annotation is already written. + + true if the annotation is written; otherwise false. + The key of the element to check if its written. + + + + Mark an annotation as written. + + true if the annotation was unmarked before; otherwise false. + The key of the element to mark as written. + + + + Well known OData annotation names reserved for OData Lib. + + + + The OData Metadata annotation name. + + + The OData 'null' annotation name. + + + The OData Type annotation name. + + + The OData ID annotation name. + + + The OData etag annotation name. + + + The OData edit link annotation name. + + + The OData read link annotation name. + + + The OData media edit link annotation name. + + + The OData media read link annotation name. + + + The OData media content type annotation name. + + + The OData media etag annotation name. + + + The 'odata.count' annotation name. + + + The 'odata.nextLink' annotation name. + + + The 'odata.navigationLinkUrl' annotation name. + + + The 'odata.bind' annotation name. + + + The 'odata.associationLinkUrl' annotation name. + + + The 'odata.annotationGroup' annotation name. + + + The 'odata.annotationGroupReference' annotation name. + + + The 'odata.error' annotation name. + + + The 'odata.deltaLink' annotation name. + + + + Hash set of known odata annotation names that have special meanings to OData Lib. + + + + + Returns true if the starts with "odata.", false otherwise. + + The name of the annotation in question. + Returns true if the starts with "odata.", false otherwise. + + + + Returns true if the starts with "odata." and is not one of the reserved odata annotation names; returns false otherwise. + + The annotation name in question. + Returns true if the starts with "odata." and is not one of the reserved odata annotation names; returns false otherwise. + + + + Validates that the is not a reserved OData instance annotation. + + The instance annotation name to check. + + + + Defines an interface for a class that can write OData values in Json Light. + This is used internally for mocking. + + + + + Writes a null value. + + + + + Writes out the value of a complex property. + + The complex value to write. + The metadata type for the complex value. + true when writing a top-level property; false for nested properties. + true if the type name belongs to an open property. + The checker instance for duplicate property names. + + + + Writes out the value of a collection property. + + The collection value to write. + The metadata type reference for the collection. + Whether or not a top-level property is being written. + Whether or not the value is being written for a URI. + true if the type name belongs to an open property. + + + + Writes a primitive value. + + The value to write. + The expected type reference of the primitive value. + + + + Creates a for checking duplication properties inside complex values. + + A new instance. + + + + JsonWriter this value serializer will use. + + + + + Version of OData being written. + + + + + Model to use for type resolution and verification when writing. + + + + + The message writer settings to use when writing the message payload. + + + + + Helper methods used by the OData reader for the JsonLight format. + + + + + The character array used for splitting apart the operation parameter type names in a metadata link. Contains ','. + + + + + The set of characters to trim from the parameters of an operation. Contains '(' and ')'. + + + + + Determines if the specified property name is a name of a metadata reference property. + + The name of the property. + true if is a name of a metadata reference property, false otherwise. + + + + Gets the fully qualified function import name from the metadata reference property name. + + The metadata document Uri. + The metadata reference property name. + The first parameter name, if any are present in the given string. + The fully qualified function import name. + + + + Gets the Uri fragment from the metadata reference property name. + + The metadata document Uri. + The metadata reference property name. + The Uri fragment which corresponds to action/function names, etc. + + + + Converts the metadata reference property name to an absolute Uri. + + The metadata document uri. + The metadata reference property name. + The absolute Uri for the metadata reference property name. + + + + Calculates the metadata reference name for the given function import. When there is no overload to the function, this method will + return the container qualified function import name. When there is overload to the function this method will + return FQFN([comma separated parameter type names]) to disambiguate between different overloads. + + The function import in question. + The metadata reference name for the given function import. + + + + Creates an ODataAction or ODataFunction from a function import. + + The metadata document uri. + The metadata reference property name. + The function import to create the ODataOperation for. + true if the created ODataOperation is an ODataAction, false otherwise. + The created ODataAction or ODataFunction. + + + + Responsible for reading annotation groups (both declarations and references) in JSON Light. + + + + + Base class for all OData JsonLight deserializers. + + + + The JsonLight input context to use for reading. + + + Context for entry etadata centric responsibilities. + + + Result of parsing the metadata URI for the payload (or null if none are available). + This field is only available after the ReadPayloadStart was called. + + + + Constructor. + + The JsonLight input context to read from. + + + + Parses the name of a property and returns the property name and annotation name if the property is a property annotation. + + The property name to parse. + The name of the annotated property, or null if the property is not a property annotation. + The annotation name, or null if the property is not a property annotation. + true if the is a property annotation, false otherwise. + + + + Read the start of the top-level data wrapper in JSON responses. + + The kind of payload we are reading; this guides the parsing of the metadata URI. + The duplicate property names checker. + true if we are deserializing a nested payload, e.g. an entry, a feed or a collection within a parameters payload. + true if we allow a comletely empty payload; otherwise false. + + Pre-Condition: JsonNodeType.None: assumes that the JSON reader has not been used yet when not reading a nested payload. + Post-Condition: The reader is positioned on the first property of the payload after having read (or skipped) the metadata URI property. + Or the reader is positioned on an end-object node if there are no properties (other than the metadata URI which is required in responses and optional in requests). + + + + + Read the start of the top-level data wrapper in JSON responses. + + The kind of payload we are reading; this guides the parsing of the metadata URI. + The duplicate property names checker. + true if we are deserializing a nested payload, e.g. an entry, a feed or a collection within a parameters payload. + true if we allow a comletely empty payload; otherwise false. + The parsed metadata URI. + + Pre-Condition: JsonNodeType.None: assumes that the JSON reader has not been used yet when not reading a nested payload. + Post-Condition: The reader is positioned on the first property of the payload after having read (or skipped) the metadata URI property. + Or the reader is positioned on an end-object node if there are no properties (other than the metadata URI which is required in responses and optional in requests). + + + + + Reads the end of the top-level data wrapper in JSON responses. + + true if we are deserializing a nested payload, e.g. an entry, a feed or a collection within a parameters payload. + + Pre-Condition: any node: when reading response or a nested payload, will fail if find anything else then EndObject. + JsonNodeType.EndOfInput: otherwise + Post-Condition: JsonNodeType.EndOfInput + + + + + Reads and validates a string value from the json reader. + + The name of the annotation being read (used for error reporting). + The string that was read. + + + + Reads and validates a string value from the json reader and processes it as a Uri. + + The name of the annotation being read (used for error reporting). + The Uri that was read. + + + + Reads and validates a string value from the json reader and processes it as a long. + + The name of the annotation being read (used for error reporting). + The long that was read. + + + + Given a URI from the payload, this method will try to make it absolute, or fail otherwise. + + The URI string from the payload to process. + An absolute URI to report. + + + + Parses JSON object property starting with the current position of the JSON reader. + + The duplicate property names checker to use, it will also store the property annotations found. + Function called to read property annotation value. + Function callback to handle to resule of parse property. + + + + Asserts that the JSON reader is positioned on one of the specified node types. + + The node types which should appear at this point. + + + + Returns true if should be skipped by the reader; false otherwise. + + The custom instance annotation name in question. + Returns true if should be skipped by the reader; false otherwise. + + + + If is under the odata namespace but is not known to ODataLib, move the JSON reader forward to skip the + annotation name and value then return true; return false otherwise. + + + The unknown odata annotation is skipped so that when this version of the reader reads a feed produced by a future version of ODataLib + that contains an odata annotation that is not recognized on this version, we would simply ignore the annotation rather than failing. + Note that when we add new odata annotations that cannot be skipped, we would bump the protocol version. + + The annotation name in question. + Returns true if the annotation name and value is skipped; returns false otherwise. + + + + Parses JSON object property starting with the current position of the JSON reader. + + The duplicate property names checker to use, it will also store the property annotations found. + Function called to read property annotation value. + The name of the property or instance annotation found. + + PropertyWithValue - a property with value was found. The contains the name of the property. + The reader is positioned on the property value. + PropertyWithoutValue - a property without a value was found. The contains the name of the property. + The reader is positioned on the node after property annotations (so either a property or end of object). + ODataInstanceAnnotation - an odata instance annotation was found. The contains the name of the annotation. + The reader is positioned on the value of the annotation. + CustomInstanceAnnotation - a custom instance annotation was found. The contains the name of the annotation. + The reader is positioned on the value of the annotation. + MetadataReferenceProperty - a property which is a reference into the metadata was found. + The reader is positioned on the value of the property. + EndOfObject - end of the object scope was reached and no properties are to be reported. The is null. + This can only happen if there's a property annotation which is ignored (for example custom one) at the end of the object. + + + + + Process the current property annotation. + + The name being annotated. Can be a property or an instance annotation. + The annotation targeting the . + The duplicate property names checker. + Callback to read the property annotation value. + + + + Read the start of the top-level data wrapper in JSON responses. + + The kind of payload we are reading; this guides the parsing of the metadata URI. + The duplicate property names checker. + true if we are deserializing a nested payload, e.g. an entry, a feed or a collection within a parameters payload. + true if we allow a comletely empty payload; otherwise false. + The value of the metadata URI annotation (or null if it was not found). + + Pre-Condition: JsonNodeType.None: assumes that the JSON reader has not been used yet when not reading a nested payload. + Post-Condition: The reader is positioned on the first property of the payload after having read (or skipped) the metadata URI property. + Or the reader is positioned on an end-object node if there are no properties (other than the metadata URI which is required in responses and optional in requests). + + + + + Reads the odata.metadata annotation. + + The payload kind for which to read the metadata URI. + The duplicate property names checker. + true if the method should fail if the metadata URI annotation is missing, false if that can be ignored. + The value of the metadata URI annotation. + + + + Context for entry metadata centric responsibilities. + + + + + Returns the which is to be used to read the content of the message. + + + + Result of parsing the metadata URI for the payload (or null if none are available). + This property is only available after the ReadPayloadStart was called. + + + + The Json lite input context to use for reading. + + + + + Gets the metadata document Uri from the MetadataUriParseResult. + + + + Possible results of parsing JSON object property. + + + An end of object was reached without any property to be reported. + + + A property with value was found. + + + A property without value was found. + + + A 'odata' instance annotation was found. + + + A custom instance annotation was found. + + + A metadata reference property was found. + + + + Mapping of all the annotation groups encountered so far, keyed by name. + + + + + Initializes a new . + + The JSON light input context. + + + + Reads the current property node as an annotaion group, if the property name matches. Otherwise, it does not move the reader. + + Fired whenever an OData property annotation is seen. Takes the name of the property annotation and should read and return the annotation's value. + Fired whenever an OData instance annotation is seen. Takes the name of the instance annotation and should read and return the annotation's value. + The annotation group which was read, or null if we did not encounter an annotation group. + + Pre-Condition: JsonNodeType.Property: The property to consider as an annotion group. + Post-Condition: JsonNodeType.Property: If the property is not an annotation group, the reader will not move. + Any: The node after the annotation group property, if one was read. + + + + + Adds the given annotation group to the set of groups which can be retrieved by annotation group references. + + The annotation group to add. + + + + Checks to see that the name of the given annotation group has not yet been set. Throws otherwise. + + The annotation group to check. + + + + Returns whether the given property name indicates this property contains the name of the annotation group. + + The property name to check. + true if the property name is annotation group name property, false otherwise. + + + + Verifies that the name of the given annotation group was set, and throws otherwise. + + The annnotation group to check. + + + + Verifies that the given property name is a valid annotation name, and throws if not. + + The property name to check. + The annotation group which this property would be added to. + + + + Creates an ODataException to throw when a non-annotation property is found inside an annotation group. + + The name of the property found inside an annotation group. + The annotation group it was found in. + An ODataException with an appropriate message, including the annotation group name if one is available. + + + + Reads an annotation group reference and returns the existing annotation group instance with that name. + + The annotation group which was referenced. + This method will throw if no matching annotation group is found. + + + + Reads an annotation group declaration and returns a newly created annotation group instance. + + Function which takes the name of an OData property annotation and reads and returns the value of the annotation. + Function which takes the name of an OData instance annotation and reads and returns the value of the annotation. + The annotation group which was read. + + Pre-Condition: JsonNodeType.StartObject: The property to consider as an annotion group declaration or reference. + Any: Any other node type will throw an exception. + Post-Condition: Any: The node after the annotation group property value. + + + + + Helper methods used by the OData reader for the JsonLight format. + + + + + Validates that a string is either a valid absolute URI, or (if it begins with '#') it is a valid URI fragment. + + The metadata document uri. + The property name to validate. + + + + Validates an operation is valid. + + The metadata document uri. + The operation to validate. + + + + Determines if the specified property name is a name of an open metadata reference property. + + The metadata document uri. + The property name in question. + true if the specified property name is a name of an open metadata reference property; false otherwise. + + + + Validates that the property in an operation (an action or a function) is valid. + + The value of the property. + The name of the property (used for error reporting). + The metadata value for the operation (used for error reporting). + + + + JSON Ligth specific state which is created during payload kind detection and reused during standard reading if available. + + + + The parsed metadata URI. + + + + Constructor. + + The parsed metadata URI. + + + The parsed metadata URI. + + + + Interface for a class that can write arbitrary JSON. + Internally we want the interface for mocks. + + + + + Start the padding function scope. + + + + + End the padding function scope. + + + + + Start the object scope. + + + + + End the current object scope. + + + + + Start the array scope. + + + + + End the current array scope. + + + + + Write the "d" wrapper text. + + + + + Write the "results" header for the data array. + + + + + Write the name for the object property. + + Name of the object property. + + + + Writes a function name for JSON padding. + + Name of the padding function to write. + + + + Write a boolean value. + + Boolean value to be written. + + + + Write an integer value. + + Integer value to be written. + + + + Write a float value. + + Float value to be written. + + + + Write a short value. + + Short value to be written. + + + + Write a long value. + + Long value to be written. + + + + Write a double value. + + Double value to be written. + + + + Write a Guid value. + + Guid value to be written. + + + + Write a decimal value + + Decimal value to be written. + + + + Write a DateTime value + + DateTime value to be written. + The OData protocol version to be used for writing payloads. + + + + Writes a DateTimeOffset value + + DateTimeOffset value to be written. + The OData protocol version to be used for writing payloads. + + + + Writes a TimeSpan value + + TimeSpan value to be written. + + + + Write a byte value. + + Byte value to be written. + + + + Write an sbyte value. + + SByte value to be written. + + + + Write a string value. + + String value to be written. + + + + Clears all buffers for the current writer. + + + + + Writes a separator of a value if it's needed for the next value to be written. + + + + + Start the scope given the scope type. + + The scope type to start. + + + + Class responsible for writing a collection of . + + + + + Value serializer, responsible for serializing the annotation values. + + + + + The oracle to use to determine the type name to write for entries and values. + + + + + Constructs a that can write a collection of . + + The to use for writing values of instance annotations. + The that is also used internally will be acquired from the this instance. + The oracle to use to determine the type name to write for entries and values. + + + + Writes all the instance annotations specified in . + + Collection of instance annotations to write. + The tracker to track if instance annotations are written. + + + + Writes all the instance annotations specified in . + + Collection of instance annotations to write. + + + + Writes an instance annotation. + + The instance annotation to write. + + + + JsonWriter instance to use for writing term names. + + + + + OData JsonLight serializer for value types. + + + + + Base class for all OData JsonLight serializers. + + + + + The JsonLight output context to write to. + + + + + Instance annotation writer. + + + + + Set to true when odata.metadata is writen; set to false otherwise. + When value is false, all URIs writen to the payload must be absolute. + + + + + Constructor. + + The output context to write to. + + + + Writes the start of the entire JSON payload. + + + + + Writes the end of the entire JSON payload. + + + + + Writes the metadata URI property and the specified value into the payload. + + The metadata URI to write. + + + + Helper method to write the data wrapper around a JSON payload. + + The action that writes the actual JSON payload that is being wrapped. + + + + Write a top-level error message. + + The error instance to write. + A flag indicating whether error details should be written (in debug mode only) or not. + + + + Returns the string representation of the URI + + The uri to process. + Returns the string representation of the URI. + + + + Returns the which is to be used to write the content of the message. + + + + + Returns the which is to be used to write the content of the message. + + + + + Instance annotation writer. + + + + + The current recursion depth of values written by this serializer. + + + + + Property serializer. + + + + + Initializes a new instance of the class. + + The property serializer to use when writing complex values. + + + + Initializes a new instance of the class. + + The output context to use. + + + + Writes a null value to the wire. + + + + + Writes out the value of a complex property. + + The complex value to write. + The metadata type for the complex value. + true when writing a top-level property; false for nested properties. + true if the type name belongs to an open property. + The checker instance for duplicate property names. + The current recursion depth should be a value, measured by the number of complex and collection values between + this complex value and the top-level payload, not including this one. + + + + Writes out the value of a collection property. + + The collection value to write. + The metadata type reference for the collection. + Whether or not a top-level property is being written. + Whether or not the value is being written for a URI. + true if the type name belongs to an open property. + The current recursion depth is measured by the number of complex and collection values between + this one and the top-level payload, not including this one. + + + + Writes a primitive value. + Uses a registered primitive type converter to write the value if one is registered for the type, otherwise directly writes the value. + + The value to write. + The expected type reference of the primitive value. + + + + Creates a new instance of a duplicate property names checker. + Both ODataJsonLightSerializer and IODataJsonLightValueSerializer define this, so we pass through to our base class. + + The newly created instance of duplicate property names checker. + + + + Asserts that the current recursion depth of values is zero. This should be true on all calls into this class from outside of this class. + + + + + Increases the recursion depth of values by 1. This will throw if the recursion depth exceeds the current limit. + + + + + Decreases the recursion depth of values by 1. + + + + + Returns the which is to be used to write the content of the message. + Both ODataJsonLightSerializer and IODataJsonLightValueSerializer define this, so we pass through to our base class. + + + + + The OData version of the output. + Both ODataJsonLightSerializer and IODataJsonLightValueSerializer define this, so we pass through to our base class. + + + + + The model to use. + + + + + The message writer settings to use when writing the message payload. + + + + + Gets the property serializer. + + + + + Shared JSON util code for ODataLib and Server. + + + + + Determines if the given double is serialized as a string in JSON. + + The value to check. + true if the value should be written as a string, false if should be written as a JSON number. + + + + Determines if the given primitive value is of a basic type where we can rely on just the JSON representation to convey type information. + If so, we don't have to write the type name. + + The primitive value in question. + The type of the primitive value. + true if the given primitive value is of a basic JSON type, false otherwise. + + + + Responsible for resolving the element type of an entity set with reader (i.e., looser) semantics. + + + + + Class responsible for determining the entity type of an entity set. + + + + + Returns the element type of the given entity set. + + The entity set to get the element type of. + The representing the element type of the . + + + + Returns the return type of the given function import. + + The function import to get the return type from. + The representing the return type fo the . + + + + Returns the return type of the given function import group. + + The function import group to get the return type from. + The representing the return type fo the . + + + + Gets the function parameter type. + + The function parameter to get the type for. + The representing the type on the function parameter; or null if no such type could be found. + + + The model to use or null if no model is available. + + + Reader behavior if the caller is a reader, null if no reader behavior is available. + + + The version of the payload being read. + + + Creates a new entity set element type resolver with all the information needed when resolving for reading scenarios. + The model to use or null if no model is available. + Reader behavior if the caller is a reader, null if no reader behavior is available. + The version of the payload being read. + + + Returns the element type of the given entity set. + The entity set to get the element type of. + The representing the element type of the . + + + + Returns the return type of the given function import. + + The function import to get the return type from. + The representing the return type fo the . + + + + Returns the return type of the given function import group. + + The function import group to get the return type from. + The representing the return type fo the . + + + + Gets the function parameter type for read and calls the client type resolver to resolve type when it is specified. + + The function parameter to resolve the type for. + The representing the type on the function parameter; or null if no such type could be found. + + + + Resolves the given type reference if a client type resolver is available. + + Type reference to resolve. + The resolved type reference. + + + + Resolves the given type if a client type resolver is available. + + Type to resolve. + The resolved type. + + + + Responsible for resolving the element type of an entity set with writer semantics. + + + + + Singleton instance of the resolver. + + + + + Private constructor to ensure all access goes through the singleton Instance. + + + + Returns the element type of the given entity set. + The entity set to get the element type of. + The representing the element type of the . + + + + Returns the return type of the given function import. + + The function import to get the return type from. + The representing the return type fo the . + + + + Returns the return type of the given function import group. + + The function import group to get the return type from. + The representing the return type fo the . + + + + Gets the function parameter type for write. + + The function parameter to resolve the type for. + The representing the type on the function parameter; or null if no such type could be found. + + + + Base class for OData collection readers that verifies a proper sequence of read calls on the reader and which support true async operations. + + + + + Base class for OData collection readers that verifies a proper sequence of read calls on the reader. + + + + + Base class for OData collection readers. + + + + Reads the next item from the message payload. + True if more items were read; otherwise false. + + + Asynchronously reads the next item from the message payload. + A task that when completed indicates whether more items were read. + + + Gets the current state of the reader. + The current state of the reader. + + + Gets the most recent item that has been read. + The most recent item that has been read. + + This property returns an when in state ODataCollectionReaderState.CollectionStart + or ODataCollectionReaderState.CollectionEnd. It returns either a primitive value, an or 'null' when + in state ODataCollectionReaderState.Value and 'null' in all other states. + + + + The input context to read from. + + + Stack of reader scopes to keep track of the current context of the reader. + + + If not null, the reader will notify the implementer of the interface of relevant state changes in the reader. + + + The collection validator instance if no expected item type has been specified; otherwise null. + + + The expected item type reference for the items in the collection. + If an expected type is specified the collection has to be homogeneous. + + + + Constructor. + + The input to read from. + The expected type reference for the items in the collection. + If not null, the reader will notify the implementer of the interface of relevant state changes in the reader. + + + + Reads the next item from the message payload. + + true if more items were read; otherwise false. + + + + Asynchronously reads the next item from the message payload. + + A task that when completed indicates whether more items were read. + + + + Reads the next from the message payload. + + true if more items were read; otherwise false. + + + + Implementation of the collection reader logic when in state 'Start'. + + true if more items can be read from the reader; otherwise false. + + + + Implementation of the reader logic when in state 'CollectionStart'. + + true if more nodes can be read from the reader; otherwise false. + + + + Implementation of the reader logic when in state 'Value'. + + true if more nodes can be read from the reader; otherwise false. + + + + Implementation of the reader logic when in state 'CollectionEnd'. + + Should be false since no more nodes can be read from the reader after the collection ends. + + + + Reads the next from the message payload. + + true if more items were read; otherwise false. + + + + Asynchronously reads the next from the message payload. + + A task that when completed indicates whether more items were read. + + + + Creates a new for the specified and + with the provided and pushes it on the stack of scopes. + + The to use for the new scope. + The item to attach with the state in the new scope. + + + + Creates a new for the specified and + with the provided and pushes it on the stack of scopes. + + The to use for the new scope. + The item to attach with the state in the new scope. + The state of the collection element - empty or not-empty. + + + + Replaces the current scope with a new with the specified and + the item of the current scope. + + The to use for the new scope. + The item associated with the replacement state. + + + + Removes the current scope from the stack of all scopes. + + The expected state of the current scope (to be popped). + + + + Catch any exception thrown by the action passed in; in the exception case move the reader into + state ExceptionThrown and then rethrow the exception. + + The type returned from the to execute. + The action to execute. + The result of executing the . + + + + Verifies that calling Read is valid. + + true if the call is to be synchronous; false otherwise. + + + + Verifies that a call is allowed to the reader. + + true if the call is to be synchronous; false otherwise. + + + + Verifies that a synchronous operation is allowed on this reader. + + + + + Verifies that an asynchronous operation is allowed on this reader. + + + + + The current state of the reader. + + + + + The most recent item that has been read. + + + + + The state of the collection element - empty or non-empty. + + + Only used by ATOM. + + + + + The expected item type for the items in the collection. + + + + + The collection validator instance if no expected item type has been specified; otherwise null. + + + + + Returns true if we are reading a nested payload, e.g. an entry, a feed or a collection within a parameters payload. + + + + + A collection reader scope; keeping track of the current reader state and an item associated with this state. + + + + The reader state of this scope. + + + The item attached to this scope. + + + True, if the collection element attached to this scope is empty. False otherwise. + + + + Constructor creating a new reader scope. + + The reader state of this scope. + The item attached to this scope. + + + + Constructor creating a new reader scope. + + The reader state of this scope. + The item attached to this scope. + The state of the collection element - empty or not-empty + + + + The reader state of this scope. + + + + + The item attached to this scope. + + + + + The state of the Collection Element - empty or non-empty. + + + + + Constructor. + + The input to read from. + The expected type reference for the items in the collection. + If not null, the reader will notify the implementer of the interface of relevant state changes in the reader. + + + + Implementation of the collection reader logic when in state 'Start'. + + Task which returns true if more items can be read from the reader; otherwise false. + + + + Implementation of the reader logic when in state 'CollectionStart'. + + Task which returns true if more nodes can be read from the reader; otherwise false. + + + + Implementation of the reader logic when in state 'Value'. + + Task which returns true if more nodes can be read from the reader; otherwise false. + + + + Implementation of the reader logic when in state 'CollectionEnd'. + + Task which should return false since no more nodes can be read from the reader after the collection ends. + + + + Asynchronously reads the next from the message payload. + + A task that when completed indicates whether more items were read. + The base class already implements this but only for fully synchronous readers, the implementation here + allows fully asynchronous readers. + + + + A simple implementation of LazyOfT since the framework version is not available in all platforms we compile this code in... + + Type to lazy create. + + + + For thread safty in creating the value. + + + + + The factory method to create the lazy instance. + + + + + Holds the lazy instance to create. + + + + + true if the factory method has been called, false otherwise. + + + + + Creates an instance of ODataLazyOfT. + + The factory method to create the lazy instance. + + + + Creates an instance of ODataLazyOfT. + + The factory method to create the lazy instance. + true if the value will be created in a thread safety, false assume single thread access to Value. + + + + Creates the value. + + + + + Creates the value if it hasn't already been created and returns the created value. + + + + + Simple structure for storing both a base URI and the select clause for generating metadata links in JSON-Light payloads. + + + + The base uri to the metadata document. + + + The select clause to include when generating metadata links. + + + + Initializes a new instance of . + + The base uri to the metadata document. + + + + Gets the base uri to the metadata document. + + + + + Gets the select clause to include when generating metadata links. + + + + + Represents a null property value. + + + + + Indicates whether the given value is a null value. + + true, since this object always represents a null value. + + + + Base class for OData parameter readers that verifies a proper sequence of read calls on the reader with truly async operations. + + + + + Base class for OData parameter readers that verifies a proper sequence of read calls on the reader. + + + + Base class for OData parameter readers. + + + Creates an to read the collection value when the state is ODataParameterReaderState.Collection. + An to read the collection value when the state is ODataParameterReaderState.Collection. + + When the state is ODataParameterReaderState.Collection, the Name property of the returns the name of the parameter + and the Value property of the returns null. Calling this method in any other state will cause an ODataException to be thrown. + + + + Reads the next parameter from the message payload. + true if more items were read; otherwise false. + + + Asynchronously reads the next item from the message payload. + A task that when completed indicates whether more items were read. + + + Gets the current state of the reader. + The current state of the reader. + + + Gets the name of the current parameter that is being read. + The name of the current parameter that is being read. + + + Gets the value of the current parameter that is being read. + The value of the current parameter that is being read. + + This property returns a primitive value, an ODataComplexValue or null when State is ODataParameterReaderState.Value. + This property returns null when State is ODataParameterReaderState.Entry, ODataParameterReaderState.Feed or ODataParameterReaderState.Collection. + + + + + An interface that allows the creator of a reader/writer to listen for status changes of the created reader/writer. + + + + + This method notifies the implementer of this interface that the created reader is in Exception state. + + + + + This method notifies the implementer of this interface that the created reader is in Completed state. + + + + The input context to read from. + + + The function import whose parameters are being read. + + + Stack of reader scopes to keep track of the current context of the reader. + + + Hash set to keep track of all the parameters read from the payload. + + + Tracks the state of the sub-reader. + + + + Constructor. + + The input to read from. + The function import whose parameters are being read. + + + + This method creates an to read the collection value when the state is ODataParameterReaderState.Collection. + + + When the state is ODataParameterReaderState.Collection, the Name property of the returns the name of the parameter + and the Value property of the returns null. Calling this method in any other state will cause an ODataException to be thrown. + + Returns an to read the collection value when the state is ODataParameterReaderState.Collection. + + + + Reads the next item from the message payload. + + true if more items were read; otherwise false. + + + + Asynchronously reads the next item from the message payload. + + A task that when completed indicates whether more items were read. + + + + This method notifies the implementer of this interface that the created reader is in Exception state. + + + + + This method notifies the implementer of this interface that the created reader is in Completed state. + + + + + Returns the type reference of the parameter in question. + + Name of the parameter in question. + Returns the type reference of the parameter in question. + + + + Creates a new for the specified with the provided + and and pushes it on the stack of scopes. + + The to use for the new scope. + The paramter name to attach with the state in the new scope. + The paramter value to attach with the state in the new scope. + + + + Removes the current scope from the stack of all scopes. + + The expected state of the current scope (to be popped). + + + + Called when the a parameter was completed. + + + + + Reads the next from the message payload. + + true if more items were read; otherwise false. + + + + Implementation of the parameter reader logic when in state 'Start'. + + true if more items can be read from the reader; otherwise false. + + + + Implementation of the reader logic when in state Value, Entry, Feed or Collection state. + + true if more items can be read from the reader; otherwise false. + + + + Creates an to read the collection with type . + + Expected item type reference of the collection to read. + An to read the collection with type . + + + + Reads the next from the message payload. + + true if more items were read; otherwise false. + + + + Asynchronously reads the next from the message payload. + + A task that when completed indicates whether more items were read. + + + + Gets the corresponding create reader method name for the given state. + + State in question. + Returns the name of the method to create the correct reader for the given state. + + + + Verifies that one of CreateEntryReader(), CreateFeedReader() or CreateCollectionReader() can be called. + + The expected state of the reader. + + + + Catch any exception thrown by the action passed in; in the exception case move the reader into + state ExceptionThrown and then rethrow the exception. + + The type returned from the to execute. + The action to execute. + The result of executing the . + + + + Verifies that calling Read is valid. + + true if the call is to be synchronous; false otherwise. + + + + Verifies that a call is allowed to the reader. + + true if the call is to be synchronous; false otherwise. + + + + Verifies that a synchronous operation is allowed on this reader. + + + + + Verifies that an asynchronous operation is allowed on this reader. + + + + + The current state of the reader. + + + + + The name of the current parameter that is being read. + + + + + The value of the current parameter that is being read. + + + This property returns a primitive value, an ODataComplexValue or null when State is ODataParameterReaderState.Value. + This property returns null when State is ODataParameterReaderState.Entry, ODataParameterReaderState.Feed or ODataParameterReaderState.Collection. + + + + + The function import whose parameters are being read. + + + + Enum to track the state of the sub-reader. + + + No sub-reader has been created for the current parameter. + + + CreateEntryReader(), CreateFeedReader() or CreateCollectionReader() has been called for the current parameter + and the newly created reader is not in Completed state. + If the sub-reader is in Error state, the ODataParameterReader will enter ODataParameterReaderState.Error. + + + The created sub-reader is in Completed state. + + + + A parameter reader scope; keeping track of the current reader state and an item associated with this state. + + + + The reader state of this scope. + + + The parameter name attached to this scope. + + + The parameter value attached to this scope. + + + + Constructor creating a new reader scope. + + The reader state of this scope. + The parameter name attached to this scope. + The parameter value attached to this scope. + + + + The reader state of this scope. + + + + + The parameter name attached to this scope. + + + + + The parameter value attached to this scope. + + + + + Constructor. + + The input to read from. + The function import whose parameters are being read. + + + + Implementation of the parameter reader logic when in state 'Start'. + + true if more items can be read from the reader; otherwise false. + + + + Implementation of the reader logic when in state Value, Entry, Feed or Collection state. + + true if more items can be read from the reader; otherwise false. + + + + Creates an to read the collection with type . + + Expected item type reference of the collection to read. + An to read the collection with type . + + + + Asynchronously reads the next from the message payload. + + A task that when completed indicates whether more items were read. + The base class already implements this but only for fully synchronous readers, the implementation here + allows fully asynchronous readers. + + + + Represents a primitive property value. + + + + + Creates a new primitive value from the given CLR value. + + The primitive to wrap. + The primitive value should not be an instance of ODataValue. + + + + Gets the underlying CLR object wrapped by this . + + The underlying primitive CLR value. + + + + Base class for OData readers that verifies a proper sequence of read calls on the reader with true async operations. + + + + + Base class for OData readers that verifies a proper sequence of read calls on the reader. + + + + + Base class for OData readers. + + + + Reads the next from the message payload. + true if more items were read; otherwise false. + + + Asynchronously reads the next from the message payload. + A task that when completed indicates whether more items were read. + + + Gets the current state of the reader. + The current state of the reader. + + + Gets the most recent that has been read. + The most recent that has been read. + + + The input to read the payload from. + + + true if the reader was created for reading a feed; false when it was created for reading an entry. + + + Stack of reader scopes to keep track of the current context of the reader. + + + If not null, the reader will notify the implementer of the interface of relevant state changes in the reader. + + + + The to use for entries in this feed. + Only applies when reading a top-level feed; otherwise null. + + + + The number of entries which have been started but not yet ended. + + + + Constructor. + + The input to read the payload from. + true if the reader is created for reading a feed; false when it is created for reading an entry. + If not null, the reader will notify the implementer of the interface of relevant state changes in the reader. + + + + Reads the next from the message payload. + + true if more items were read; otherwise false. + + + + Asynchronously reads the next from the message payload. + + A task that when completed indicates whether more items were read. + + + + Implementation of the reader logic when in state 'Start'. + + true if more items can be read from the reader; otherwise false. + + + + Implementation of the reader logic when in state 'FeedStart'. + + true if more items can be read from the reader; otherwise false. + + + + Implementation of the reader logic when in state 'FeedEnd'. + + true if more items can be read from the reader; otherwise false. + + + + Implementation of the reader logic when in state 'EntryStart'. + + true if more items can be read from the reader; otherwise false. + + + + Implementation of the reader logic when in state 'EntryEnd'. + + true if more items can be read from the reader; otherwise false. + + + + Implementation of the reader logic when in state 'NavigationLinkStart'. + + true if more items can be read from the reader; otherwise false. + + + + Implementation of the reader logic when in state 'NavigationLinkEnd'. + + true if more items can be read from the reader; otherwise false. + + + + Implementation of the reader logic when in state 'EntityReferenceLink'. + + true if more items can be read from the reader; otherwise false. + + + + Pushes the on the stack of scopes. + + The scope to enter. + + + + Replaces the current scope with the specified . + + The scope to replace the current scope with. + + + + Removes the current scope from the stack of all scopes. + + The expected state of the current scope (to be popped). + + + + Called to transition into the EntryEnd state. + + The scope for the EntryEnd state. + + + + If an entity type name is found in the payload this method is called to apply it to the current scope. + This method should be called even if the type name was not found in which case a null should be passed in. + The method validates that some type will be available as the current entity type after it returns (if we are parsing using metadata). + + The entity type name found in the payload or null if no type was specified in the payload. + + + + Reads the next from the message payload. + + true if more items were read; otherwise false. + + + + Asynchronously reads the next from the message payload. + + A task that when completed indicates whether more items were read. + + + + Increments the nested entry count by one and fails if the new value exceeds the maxiumum nested entry depth limit. + + + + + Decrements the nested entry count by one. + + + + + Reads the next from the message payload. + + true if more items were read; otherwise false. + + + + Catch any exception thrown by the action passed in; in the exception case move the reader into + state ExceptionThrown and then rethrow the exception. + + The type returned from the to execute. + The action to execute. + The result of executing the . + + + + Verifies that calling Read is valid. + + true if the call is to be synchronous; false otherwise. + + + + Verifies that a call is allowed to the reader. + + true if the call is to be synchronous; false otherwise. + + + + The current state of the reader. + + + + + The most recent that has been read. + + + + + Returns the current item as . Must only be called if the item actually is an entry. + + + + + Returns the current item as . Must only be called if the item actually is a feed. + + + + + Returns the current item as . Must only be called if the item actually is a navigation link. + + + + + Returns the current item as . Must only be called if the item actually is an entity reference link. + + + + + Returns the expected entity type for the current scope. + + + + + Returns the entity set for the current scope. + + + + + Returns the current scope. + + + + + Returns the scope of the entity owning the current link. + + + + + A flag indicating whether the reader is at the top level. + + + + + If the current scope is a content of an expanded link, this returns the parent navigation link scope, otherwise null. + + + + + True if we are reading an entry or feed that is the direct content of an expanded link. Otherwise false. + + + + + Set to true if a feed is being read. + + + + + Returns true if we are reading a nested payload, e.g. an entry or a feed within a parameters payload. + + + + + Validator to validate consistency of entries in top-level feeds. + + We only use this for top-level feeds since we support collection validation for + feeds only when metadata is available and in these cases we already validate the + types of the entries in nested feeds. + + + + A reader scope; keeping track of the current reader state and an item associated with this state. + + + + The reader state of this scope. + + + The item attached to this scope. + + + + Constructor creating a new reader scope. + + The reader state of this scope. + The item attached to this scope. + The entity set we are going to read entities for. + The expected entity type for the scope. + The has the following meanings for given state: + Start - it's the expected base type of the top-level entry or entries in the top-level feed. + FeedStart - it's the expected base type of the entries in the feed. + note that it might be a more derived type than the base type of the entity set for the feed. + EntryStart - it's the expected base type of the entry. If the entry has no type name specified + this type will be assumed. Otherwise the specified type name must be + the expected type or a more derived type. + NavigationLinkStart - it's the expected base type the entries in the expanded link (either the single entry + or entries in the expanded feed). + EntityReferenceLink - it's null, no need for types on entity reference links. + In all cases the specified type must be an entity type. + + + + The reader state of this scope. + + + + + The item attached to this scope. + + + + + The entity set we are reading entries from (possibly null). + + + + + The entity type for this scope. Can be either the expected one if the real one + was not found yet, or the one specified in the payload itself (the real one). + + + + + Constructor. + + The input to read the payload from. + true if the reader is created for reading a feed; false when it is created for reading an entry. + If not null, the reader will notify the implementer of the interface of relevant state changes in the reader. + + + + Implementation of the reader logic when in state 'Start'. + + A task which returns true if more items can be read from the reader; otherwise false. + + + + Implementation of the reader logic when in state 'FeedStart'. + + A task which returns true if more items can be read from the reader; otherwise false. + + + + Implementation of the reader logic when in state 'FeedEnd'. + + A task which returns true if more items can be read from the reader; otherwise false. + + + + Implementation of the reader logic when in state 'EntryStart'. + + A task which returns true if more items can be read from the reader; otherwise false. + + + + Implementation of the reader logic when in state 'EntryEnd'. + + A task which returns true if more items can be read from the reader; otherwise false. + + + + Implementation of the reader logic when in state 'NavigationLinkStart'. + + A task which returns true if more items can be read from the reader; otherwise false. + + + + Implementation of the reader logic when in state 'NavigationLinkEnd'. + + A task which returns true if more items can be read from the reader; otherwise false. + + + + Implementation of the reader logic when in state 'EntityReferenceLink'. + + A task which returns true if more items can be read from the reader; otherwise false. + + + + Asynchronously reads the next from the message payload. + + A task that when completed indicates whether more items were read. + The base class already implements this but only for fully synchronous readers, the implementation here + allows fully asynchronous readers. + + + + Simple ODataVersion specific cache. + + The type of the item being cached. + + + + Lazy constructing T for ODataVersion.V1. + + + + + Lazy constructing T for ODataVersion.V2. + + + + + Lazy constructing T for ODataVersion.V3. + + + + + Constructs an instance of the ODataVersionCache. + + The method to call to create a new instance of for a given ODataVersion. + + + + Indexer to get the cached item when given the ODataVersion. + + The ODataVersion to look up. + The cached item. + + + + Class that hanldes writing top level raw values to a stream. + + + + + Writer settings. + + + + + Underlying stream. + + + + + Encoding that the TextWriter should use. + + + + + TextWriter instance for writing values. + + + + + Initializes a new instance of the class. + Initializes the TextWriter. + + The writer settings. + The stream. It should be the same underlying stream the TextWriter uses. + The encoding to use in the text writer. + + + + Disposes the RawValueWriter. It flushes itself and then disposes its inner TextWriter. + + + + + Start writing a raw output. This should only be called once. + + + + + End the writing of a raw output. This should be the last thing called. + + + + + Converts the specified into its raw format and writes it to the output. + The value has to be of primitive type. Only one WriteRawValue call should be made before this object gets disposed. + + The (non-binary) value to write. + We do not accept binary values here; WriteBinaryValue should be used for binary data. + + + + Flushes the RawValueWriter. + The call gets pushed to the TextWriter (if there is one). In production code, this is StreamWriter.Flush, which turns into Stream.Flush. + In the synchronous case the underlying stream is the message stream itself, which will then Flush as well. + In the async case the underlying stream is the async buffered stream, which ignores Flush call. + + + + + Initialized a new text writer over the message payload stream. + + This can only be called if the text writer was not yet initialized or it has been closed. + It can be called several times with CloseWriter calls in between though. + + + + Gets the text writer. + + + + + Class with utility methods to deal with values in ODataLib. + + + + + Converts an object to an ODataValue. If the given object is already an ODataValue (such as an ODataCompleValue, ODataCollectionValue, etc.), the original object will be returned. + + The object to convert to an ODataValue + The given object as an ODataValue. + + + + Converts an ODataValue to the old style of representing values, where null values are null and primitive values are just the direct primitive (no longer wrapped by ODataPrimitiveValue). + All other value types, such as ODataComplexValue and ODataCollectionValue are returned unchanged. + + The value to convert. + The value behind the given ODataValue. + + + + Represents a tree of selected properties based on the $select query option. + + + When reading, it controls the template expansion in JSON Light. + + + + The separator character used to separate property names in a path. + + + The separator character used to separate paths from each other. + + + Singleton which indicates that the nothing is selected. + + + Singleton which indicates that the entire subtree is selected. + + + An empty set of stream properties to return when nothing is selected. + + + An empty set of navigation properties to return when nothing is selected. + + + The type of the current node. + + + The list of selected properties at the current level. + + + A dictionary of property name to child nodes. + + + Indicates that this node had a wildcard selection and all properties at this level should be reported. + + + + Constructor. + + The string representation of the selected property hierarchy using + the same format as in the $select query option. + + + + Prevents a default instance of the class from being created. + + Type of the selection. + + + + Creates a node from the given raw $select query option value. + + The value of the $select query option. + A tree representation of the selected properties specified in the query option. + + + + Recursively combines the left and right nodes. Used when there are type segments present in the select paths which + causes there to be multiple children for the same property/navigation. + + The left node. + The right node. + The combined node. + + + + Gets the selected properties node for the specified navigation property. + + The current entity type. + The name of the navigation property. + The selected properties node for the property with name . + + + + Gets the selected navigation properties for the current node. + + The current entity type. + The set of selected navigation properties. + + + + Gets the selected stream properties for the current node. + + The current entity type. + The selected stream properties. + + + + Determines whether or not the given operation is selected and takes type-segments into account. + + The current entity type. + The operation. + Whether or not the operation name must be container qualified in the $select string. + + true if the operation is selected; otherwise, false. + + + + + Gets an enumerable containing the given type and all of its base/ancestor types. + + The starting entity type. Will be included in the returned enumeration. + An enumerable containing the given type and all of its base/ancestor types. + + + + Creates a new hash set for storing the names of selected properties. + + The initial set of selected properties to store in the hash set. + The hash set. + + + + Creates a new hash set for storing the names of selected properties. + + The hash set. + + + + Gets the possible identifiers that could cause the given operation to be selected. + + The operation. + Whether the operations must be container qualified. + The identifiers to look for in the $select string when determining if this action is selected. + + + + Gets the matching type segments for the given type based on this node's children. + + The entity type to match. + All child nodes which start with a type segment in the given types hierarchy. + + + + Parses the segments of a path in the select clause. + + The segments of the select path. + The index of the segment to parse. + + + + Ensures that a child annotation for the specified segment name already exists; if not creates one. + + The segment name to get the child annotation for. + The existing or newly created child annotation for the . + + + + Determines whether or not the given operation is selected without taking type segments into account. + + The operation. + Whether the operations must be container qualified. + + true if the operation is selected; otherwise, false. + + + + + Enum representing the different special cases of selection. + + + + + Represents the case where no properties are selected. + + + + + Represents the case where an entire subtree is selected. + + + + + The normal case where a partial subtree has been selected. + + + + + Class representing an annotation group in the JSON Light format. + + + + The name of the annotation group. + + + The (instance and property) annotations included in this annotation group. + + + + The name of the annotation group. + + The name has to be unique across the whole JSON Light payload. + + + + The (instance and property) annotations included in this annotation group. + + The keys in the dictionary are the names of the annotations, the values are their values. + + + + Class with utility methods to deal with EDM values + + + + + Converts a primitive OData value to the corresponding . + + The primitive OData value to convert. + The for the primitive value (if available). + An for the . + + + + Gets the clr value of the edm value based on its type. + + The edm value. + The clr value + + + + Tries to get a stream property of the specified name. + + The instance of the entity to get the stream property for. + The stream property name to find. + The stream property found. + true if the stream property was found or if the stream property name was null (default stream). + false if the stream property doesn't exist. + + + + Gets the the CLR value for a primitive property. + + The structured value. + Name of the property. + The clr value of the property. + + + + Converts a floating-point edm value to a clr value + + The edm floating-point value. + Kind of the primitive. + The converted value + + + + Converts an integer edm value to a clr value. + + The integer value. + Kind of the primitive. + The converted value + + + + Convert a primitive value which didn't match any of the known values of the enumeration. + + The value to convert. + The expected primitive type or null. + The converted value. + + + + Ensures a primitive type reference for a given primitive type kind. + + The possibly null type reference. + The primitive type kind to ensure. + An instance created for the + if is null; if is not null, validates it and then returns it. + + + + Class which holds information about navigation link to be reported by the reader. + + + + + The navigation link to report. + + + + + The navigation property for which the link will be reported. + + + + + true if the navigation link has a value (is expanded). + + + + + The expanded feed for expanded navigation link to be reported. + + + + + List of entity reference links to be reported to the navigation link. + + + If the navigation link is a singleton this will hold up to 1 item. + If the navigation link is a collection this will hold any number of items. + When the entity reference link is reported it is removed from this list. + + + + + Constructor. + + The navigation link to report. + The navigation property for which the link will be reported. + true if the navigation link is expanded. + + + + Creates a navigation link info for a deferred link. + + The navigation link to report. + The navigation property for which the link will be reported. + The navigation link info created. + + + + Creates a navigation link info for an expanded entry link. + + The navigation link to report. + The navigation property for which the link will be reported. + The navigation link info created. + + + + Creates a navigation link info for an expanded feed link. + + The navigation link to report. + The navigation property for which the link will be reported. + The expanded feed for the navigation link to report. + The navigation link info created. + + + + Creates a navigation link info for a singleton entity reference link. + + The navigation link to report. + The navigation property for which the link will be reported. + The entity reference link for the navigation link to report. + true if the navigation link is expanded. + The navigation link info created. + + + + Creates a navigation link info for a collection of entity reference links. + + The navigation link to report. + The navigation property for which the link will be reported. + The entity reference links for the navigation link to report. + true if the navigation link is expanded. + The navigation link info created. + + + + Creates a navigation link info for a projected navigation link that is missing from the payload. + + The navigation property for which the link will be reported. + The navigation link info created. + + + + Gets the next entity reference link to report and removes it from the internal storage. + + The entity reference link to report or null. + + + + The navigation link to report. + + + + + The navigation property for which the link will be reported. + + + + + true if the navigation link is expanded (has a value). + + + + + The expanded feed for expanded navigation link to be reported. + + + + + true if the link info has entity reference link which was not yet reported, false otherwise. + + + + + OData JsonLight deserializer for parameter payloads. + + + + + OData JsonLight deserializer for properties and value types. + + + + A sentinel value indicating a missing property value. + + + + The current recursion depth of values read by this deserializer, measured by the number of complex, collection, JSON object and JSON array values read so far. + + + + + Constructor. + + The JsonLight input context to read from. + + + + This method creates an reads the property from the input and + returns an representing the read property. + + The expected type reference of the property to read. + An representing the read property. + + + + This method creates an reads the property from the input and + returns an representing the read property. + + The expected type reference of the property to read. + A task which returns an representing the read property. + + + + Reads a primitive value, complex value or collection. + + The type name read from the payload as a property annotation, or null if none is available. + The expected type reference of the property value. + The duplicate property names checker to use - if null the method should create a new one if necessary. + The collection validator instance if no expected item type has been specified; otherwise null. + true to validate null values; otherwise false. + true if we are reading a top-level property value; otherwise false. + true if we are reading a complex value and the reader is already positioned inside the complex value; otherwise false. + The name of the property whose value is being read, if applicable (used for error reporting). + The value of the property read. + + Pre-Condition: JsonNodeType.PrimitiveValue - the value of the property is a primitive value + JsonNodeType.StartObject - the value of the property is an object + JsonNodeType.StartArray - the value of the property is an array - method will fail in this case. + Post-Condition: almost anything - the node after the property value. + + Returns the value of the property read, which can be one of: + - null + - primitive value + - + - + + + + + Gets and validates the type name annotation for the specified property. + + The duplicate property names checker in use for the entry content. + The name of the property to get the type name for. + The type name for the property or null if no type name was found. + + + + Tries to read an annotation as OData type name annotation. + + The annotation name on which value the reader is positioned on. + The read value of the annotation (string). + true if the annotation is an OData type name annotation, false otherwise. + + Pre-Condition: JsonNodeType.PrimitiveValue - the value of the annotation + JsonNodeType.StartObject + JsonNodeType.StartArray + Post-Condition: JsonNodeType.Property - the next property after the annotation + JsonNodeType.EndObject - end of the parent object + JsonNodeType.PrimitiveValue - the reader didn't move + JsonNodeType.StartObject + JsonNodeType.StartArray + + If the method returns true, it consumed the value of the annotation from the reader. + If it returns false, it didn't move the reader. + + + + + Reads the value of the odata.type annotation. + + The type name read from the annotation. + + Pre-Condition: JsonNodeType.PrimitiveValue - the value of the annotation, will fail if it's not PrimitiveValue + JsonNodeType.StartObject + JsonNodeType.StartArray + Post-Condition: JsonNodeType.Property - the next property after the annotation + JsonNodeType.EndObject - end of the parent object + + + + + Reads top-level property payload property annotation value. + + The name of the property annotation. + The value of the annotation read. + + + + Tries to read an annotation as OData type name annotation. + + The read value of the annotation (string). + true if the annotation is an OData type name annotation, false otherwise. + + Pre-Condition: JsonNodeType.Property - the property that possibly is an odata.type instance annotation + Post-Condition: JsonNodeType.Property - the next property after the annotation or if the reader did not move + JsonNodeType.EndObject - end of the parent object + If the method returns true, it consumed the value of the annotation from the reader. + If it returns false, it didn't move the reader. + + + + + This method creates an reads the property from the input and + returns an representing the read property. + + The expected type reference of the property to read. + The duplicate property names checker to use. + An representing the read property. + + The method assumes that the ReadPayloadStart has already been called and it will not call ReadPayloadEnd. + + + + + Updates the expected type based on the metadata URI if there is one. + + The expected property type reference provided by the user through public APIs, or null if one was not provided. + The expected type reference updated based on the metadata uri, if there is one. + + + + Reads a collection value. + + The collection type reference of the value. + The type name read from the payload. + The serialization type name for the collection value (possibly null). + The value of the collection. + + Pre-Condition: Fails if the current node is not a JsonNodeType.StartArray + Post-Condition: almost anything - the node after the collection value (after the EndArray) + + + + + Reads a primitive value. + + true if the reader is positioned on the first property of the value which is a JSON Object + (or the second property if the first one was odata.type). + The expected type reference of the value, or null if none is available. + true to validate null values; otherwise false. + The name of the property whose value is being read, if applicable (used for error reporting). + The value of the primitive value. + + Pre-Condition: insideJsonObjectValue == false -> none - Fails if the current node is not a JsonNodeType.PrimitiveValue + insideJsonObjectValue == true -> JsonNodeType.Property or JsonNodeType.EndObject - the first property of the value object, + or the second property if first was odata.type, or the end-object. + Post-Condition: almost anything - the node after the primitive value. + + + + + Reads a complex value. + + The expected type reference of the value. + The type name read from the payload. + The serialization type name for the collection value (possibly null). + The duplicate property names checker to use - this is always initialized as necessary, do not clear. + The value of the complex value. + + Pre-Condition: JsonNodeType.Property - the first property of the complex value object, or the second one if the first one was odata.type. + JsonNodeType.EndObject - the end object of the complex value object. + Post-Condition: almost anything - the node after the complex value (after the EndObject) + + + + + Reads a primitive, complex or collection value. + + The type name read from the payload as a property annotation, or null if none is available. + The expected type reference of the property value. + The duplicate property names checker to use - if null the method should create a new one if necessary. + The collection validator instance if no expected item type has been specified; otherwise null. + true to validate null values; otherwise false. + true if we are reading a top-level property value; otherwise false. + true if we are reading a complex value and the reader is already positioned inside the complex value; otherwise false. + The name of the property whose value is being read, if applicable (used for error reporting). + The value of the property read. + + Pre-Condition: JsonNodeType.PrimitiveValue - the value of the property is a primitive value + JsonNodeType.StartObject - the value of the property is an object + JsonNodeType.StartArray - the value of the property is an array + Post-Condition: almost anything - the node after the property value. + + Returns the value of the property read, which can be one of: + - null + - primitive value + - + - + + + + + Reads the payload type name from a JSON object (if it exists). + + The duplicate property names checker to track the detected 'odata.type' annotation (if any). + true if we are reading a complex value and the reader is already positioned inside the complex value; otherwise false. + The value of the odata.type annotation or null if no such annotation exists. + true if a type name was read from the payload; otherwise false. + + Precondition: StartObject the start of a JSON object + Postcondition: Property the first property of the object if no 'odata.type' annotation exists as first property + or the first property after the 'odata.type' annotation. + EndObject for an empty JSON object or an object with only the 'odata.type' annotation + + + + + Detects whether we are currently reading a complex property or not. This can be determined from metadata (if we have it) + or from the presence of the odata.type instance annotation in the payload. + + The duplicate property names checker in use for the entry content. + The expected type reference of the property to read. + The type name of the complex value if found in the payload; otherwise null. + true if we are reading a complex property; otherwise false. + + This method does not move the reader. + + + + + Tries to read a top-level null value from the JSON reader. + + true if a null value could be read from the JSON reader; otherwise false. + If the method detects the odata.null annotation, it will read it; otherwise the reader does not move. + + + + Make sure that we don't find any other odata.* annotations or properties after reading a payload with the odata.null annotation or the odata.metadata annotation with value ending #Edm.Null + + The duplicate property names checker to use. + + + + Determines the value kind for a non-entity value (that is top-level property value, property value on a complex type, item in a collection) + + The type kind of the property value. + + Doesn't move the JSON reader. + + + + + Increases the recursion depth of values by 1. This will throw if the recursion depth exceeds the current limit. + + + + + Decreases the recursion depth of values by 1. + + + + + Asserts that the current recursion depth of values is zero. This should be true on all calls into this class from outside of this class. + + + + OData property annotation reader for parameter payloads. + OData property annotations are not supported in parameter payloads. + + + The JSON Light parameter reader. + + + + Constructor. + + The JSON Light parameter reader. + The JsonLight input context to read from. + + + + Reads the next parameter from the parameters payload. + + The duplicate property names checker used to read a parameter payload. + true if a parameter was read from the payload; otherwise false. + + Pre-Condition: Property or EndObject the property node of the parameter to read or the end object node if there are not parameters + Post-Condition: Property or EndObject the node after the property value of a primitive, complex or null collection parameter + Any the start of the value representing a non-null collection parameter (the collection reader will fail if this is not a StartArray node) + + + + + Parser for odata metadata URIs used in JSON Lite. + + + + The start of the select query option (including the '=' character). + + + The model to use when resolving the target of the URI. + + + The result of parsing the metadata URI. + + + + Initializes a new instance of the class. + + The model to use when resolving the target of the URI. + The metadata URI read from the payload. + + + + Creates a metadata URI parser and parses the metadata URI read from the payload. + + The model to use when resolving the target of the URI. + The string value of the odata.metadata annotation read from the payload. + The payload kind we expect the metadata URI to conform to. + The OData version to use for determining the set of built-in functions available. + Reader behavior if the caller is a reader, null if no reader behavior is available. + The result from parsing the metadata URI. + + + + Extracts the value of the $select query option from the specified fragment. + + The fragment to extract the $select query option from. + The value of the $select query option or null if none exists. + + + + Parses a metadata URI read from the payload into its parts. + + + + + Applies the model and validates the metadata URI against it. + + The payload kind we expect the metadata URI to conform to. + Reader behavior if the caller is a reader, null if no reader behavior is available. + The version of the payload being read. + + + + Parses the fragment of a metadata URI. + + The fragment to parse + Reader behavior if the caller is a reader, null if no reader behavior is available. + The OData version to use for determining the set of built-in functions available. + The detected payload kind based on parsing the fragment. + + + + Returns the parse results of the metadata uri if it has a AssociationLink in the uri + + Edm Type Resolver to determine entityset type element. + Number of split parts the metadata fragment is split into. + The actual metadata fragment parts. + The reader behavior. + The odata version. + Returns with an EntityReferenceLink or Links depending on the Uri, sets the parse results with the navigation, and set + + + + Set the EntityLinks Parse results. + + Navigation property to add to the results. + Single element string, used to confirm if this is an error case or not. + Returns ReferenceLink or Collection Link based on the navigation and at element + + + + Parses the fragment of an entity reference link metadata URI. + + Edm Type Resolver used to get the ElementType of the entity set. + Entity Set used as a starting point to find the navigation property + The name of the type declaring the navigation property. + The name of the navigation property. + Reader behavior if the caller is a reader, null if no reader behavior is available. + The version of the payload being read. + The resolved navigation property. + + + + Validate the Metadata Uri Fragment is @Element for a $links metadata uri, will throw a $links specific error + + Element selector. + + + + Validate the Metadata Uri Fragment is @Element for a non $links metadata uri, throws if its not correct + + Element selector. + + + + Resolves a navigation property name to an IEdmNavigationProperty. + + Entity Type to look for the navigation property on. + Navigation property name to find. + Returns the navigation property of throws an exception if it cannot be found. + + + + Resolves the entity set. + + The entity set part. + The resolved entity set. + Returns the OData Payload Kind + + + + Resolves an entity set with an optional type cast and updates the parse result. + + The entity set to resolve the type cast against. + The optional type cast. + Reader behavior if the caller is a reader, null if no reader behavior is available. + The version of the payload being read. + The type of the given entity set. + The resolved entity type. + + + + Resolves a type. + + The type name. + Reader behavior if the caller is a reader, null if no reader behavior is available. + The version of the payload being read. + The resolved Edm type. + + + + Interface representing a state of the JSON writer for entry. + + + + + Gets or creates the type context to answer basic questions regarding the type info of the entry. + + The Edm model to use. + True if writing a response payload, false otherwise. + The type context to answer basic questions regarding the type info of the entry. + + + + The entry being written. + + + + + The entity type for the entry (if available) + + + + + The entity type which was derived from the model (may be either the same as entity type or its base type. + + + + + The serialization info for the current entry. + + + + + Flag which indicates that the odata.editLink metadata property has been written. + + + + + Flag which indicates that the odata.readLink metadata property has been written. + + + + + Flag which indicates that the odata.mediaEditLink metadata property has been written. + + + + + Flag which indicates that the odata.mediaReadLink metadata property has been written. + + + + + Flag which indicates that the odata.mediaContentType metadata property has been written. + + + + + Flag which indicates that the odata.mediaETag metadata property has been written. + + + + + Constants for the JSON Lite format. + + + + The prefix for OData annotation names. + + + The separator of property annotations. + + + The value 'true' for the OData null annotation. + + + The 'value' property name for the Json Light value property. + + + The name of the property returned for a singleton $links query. + + + The name of the property returned for a URL of a workspace collection. + + + The name of the property returned for a name of a workspace collection. + + + The 'name' property name of an annotation group declaration. + + + The name of the $select query option. + + + The '=' character used to separate a query option name from its value. + + + The '&' separator character between query options. + + + The hash sign acting as fragment indicator in a metadata URI. + + + The slash sign used as separator in the fragment of a metadata URI. + + + The @Element token that indicates that the payload is a single item from a set. + + + The '(' used to mark the start of function parameters in the fragment of a metadata URI. + + + The ')' used to mark the end of function parameters in the fragment of a metadata URI. + + + The "," to use as the separator for the function parameters in the fragment of a metadata URI. + + + The token that indicates the payload is a property with null value. + + + + Builder class to construct the metadata pointers for the Json Light format for the various payload kinds. + + + + + Creates a metadata uri builder after validating user input. + + The JSON Light metadata level being written. + if set to true indicates that a response is being written. + The writer settings. + The Edm model instance. + The metadata uri builder to use while writing. + + + + Creates a metadata uri builder for the given base metadata document uri. + DEVNOTE: specifically for unit testing. + + The non-null, absolute metadata document URI. + The Edm model instance. + if set to true indicates that a response is being written. + A new metadata uri builder. + + + + Creates the metadata URI for a feed based on the entity set the entries in the feed belong to. + + The context object to answer basic questions regarding the type of the feed. + Returns the metadata URI for a feed based on the entity set the entries in the feed belong to. + true if we have successfully built the metadata URI; false otherwise. + + + + Creates the metadata URI for an entry based on the entity set it belongs to. + + The context object to answer basic questions regarding the type of the entry. + Returns the metadata URI for an entry based on the entity set it belongs to. + true if we have successfully built the metadata URI; false otherwise. + + + + Creates the metadata URI for a property based on its value. + + The property to create the metadata URI for. + Returns the metadata URI for a property based on its owning type. + true if we have successfully built the metadata URI; false otherwise. + + + + Creates the metadata URI for an entity reference link. + + Serialization information to generate the metadata uri. + The entity set of the declaring type of the navigation property + The navigation property to create the metadata URI for. + Returns the metadata URI for an entity reference link or a collection of entity reference links. + true if we have successfully built the metadata URI; false otherwise. + + + + Creates the metadata URI for a collection of entity reference links. + + Serialization information to generate the metadata uri. + The entity set of the declaring type of the navigation property + The navigation property to create the metadata URI for. + Returns the metadata URI for an entity reference link or a collection of entity reference links. + true if we have successfully built the metadata URI; false otherwise. + + + + Creates the metadata URI for an operation (function, action, service op) based on its function import. + + Serialization information to generate the metadata uri. + The item type of the collection. + Returns the metadata URI for an operation (function, action, service op) based on its function import. + true if we have successfully built the metadata URI; false otherwise. + + + + Creates the metadata URI for the service document. + + Returns the metadata URI for the service document. + true if we have successfully built the metadata URI; false otherwise. + + + + Gets the base URI of the metadata document uri. May be null to indicate that there is no metadata document uri. + + + + + Metadata uri builder which uses a user-provided uri and $select clause. + + + + + The base metadata document uri and $select clause provided by the user. + + + + + The Edm model instance. + + + + + if set to true indicates that a response is being written. + + + + + Initializes a new instance of the class. + + The non-null, absolute metadata document URI. + The Edm model instance. + if set to true indicates that a response is being written. + + + + Creates the metadata URI for a feed based on the entity set the entries in the feed belong to. + + The context object to answer basic questions regarding the type of the feed. + Returns the metadata URI for a feed based on the entity set the entries in the feed belong to. + true if we have successfully built the metadata URI; false otherwise. + + + + Creates the metadata URI for an entry based on the entity set it belongs to. + + The context object to answer basic questions regarding the type of the entry. + Returns the metadata URI for an entry based on the entity set it belongs to. + true if we have successfully built the metadata URI; false otherwise. + + + + Creates the metadata URI for a property based on its value. + + The property to create the metadata URI for. + Returns the metadata URI for a property based on its owning type. + true if we have successfully built the metadata URI; false otherwise. + + + + Creates the metadata URI for an entity reference link. + + Serialization information to generate the metadata uri. + The entity set of the declaring type of the navigation property + The navigation property to create the metadata URI for. + Returns the metadata URI for an entity reference link or a collection of entity reference links. + true if we have successfully built the metadata URI; false otherwise. + + + + Creates the metadata URI for a collection of entity reference links. + + Serialization information to generate the metadata uri. + The entity set of the declaring type of the navigation property + The navigation property to create the metadata URI for. + Returns the metadata URI for an entity reference link or a collection of entity reference links. + true if we have successfully built the metadata URI; false otherwise. + + + + Creates the metadata URI for an operation (function, action, service op) based on its function import. + + Serialization information to generate the metadata uri. + The item type of the collection. + Returns the metadata URI for an operation (function, action, service op) based on its function import. + true if we have successfully built the metadata URI; false otherwise. + + + + Creates the metadata URI for the service document. + + Returns the metadata URI for the service document. + true if we have successfully built the metadata URI; false otherwise. + + + + Gets the metadata URI type name based on the given property. + + The property. + The type name for the metadata URI. + + + + Gets the entity set name for the metadata Uri. + + The entity set in question. + The model instance. + Returns the entity set name for the metadata Uri. + + + + Returns the fully qualified name of if it is a derived type of the ; + returns null if is the root type of . + + The entity set in question. + The eneity type in question. + + Returns the fully qualified name of if it is a derived type of the ; + returns null if is the root type of . + + + + + Creates the metadata URI for a type. + + The non-null, absolute metadata document URI. + The fully qualified type name to create the metadata URI for. + Returns the metadata URI for a value based on its type. + + + + Creates the metadata URI for a feed or entry. + + The non-null, absolute metadata document URI. + The Edm model instance. + The context object to answer basic questions regarding the type of the entry or feed. + true if the metadata URI is built for an entry, false if the metadata URI is built for a feed. + true if the metadata URI is for a response payload, false if the metadata URI is for a request payload. + Returns the metadata URI for the feed or entry. + + + + Creates the metadata URI for an entity set. + + The non-null, absolute metadata document URI. + The fully qualified entity set name for which to create the metadata URI. + The fully qualified entity type name of the entries in the result. This has to be an entity type derived + from the result entity set's base type or null to use its base type. + Navigation Property name to create a $link metadata uri to, if not null a $link uri will be created + true to append the '@Element" item selector at the end of the metadata URI; otherwise false. + The metadata URI for the . + + + + Gets the base URI of the metadata document uri. May be null to indicate that there is no metadata document uri. + + + + + Metadata uri builder which never actually builds anything. Used for the case where 'nometadata' is explicitly requested in the media type. + + + + + Singleton instance of . + + + + + Prevents a default instance of the class from being created. + + + + + Creates the metadata URI for a feed based on the entity set the entries in the feed belong to. + + The context object to answer basic questions regarding the type of the feed. + Returns the metadata URI for a feed based on the entity set the entries in the feed belong to. + true if we have successfully built the metadata URI; false otherwise. + + + + Creates the metadata URI for an entry based on the entity set it belongs to. + + The context object to answer basic questions regarding the type of the entry. + Returns the metadata URI for an entry based on the entity set it belongs to. + true if we have successfully built the metadata URI; false otherwise. + + + + Creates the metadata URI for a property based on its value. + + The property to create the metadata URI for. + Returns the metadata URI for a property based on its owning type. + true if we have successfully built the metadata URI; false otherwise. + + + + Creates the metadata URI for an entity reference link. + + Serialization information to generate the metadata uri. + The entity set of the declaring type of the navigation property + The navigation property to create the metadata URI for. + Returns the metadata URI for an entity reference link or a collection of entity reference links. + true if we have successfully built the metadata URI; false otherwise. + + + + Creates the metadata URI for a collection of entity reference links. + + Serialization information to generate the metadata uri. + The entity set of the declaring type of the navigation property + The navigation property to create the metadata URI for. + Returns the metadata URI for an entity reference link or a collection of entity reference links. + true if we have successfully built the metadata URI; false otherwise. + + + + Creates the metadata URI for an operation (function, action, service op) based on its function import. + + Serialization information to generate the metadata uri. + The item type of the collection. + Returns the metadata URI for an operation (function, action, service op) based on its function import. + true if we have successfully built the metadata URI; false otherwise. + + + + Creates the metadata URI for the service document. + + Returns the metadata URI for the service document. + true if we have successfully built the metadata URI; false otherwise. + + + + Gets the base URI of the metadata document uri. May be null to indicate that there is no metadata document uri. + + + + + The result of parsing an OData metadata URI in JSON Lite. + + + + The metadata URI read from the payload in its unparsed form. + + + The metadata document URI as read from the payload. + + + The fragment portion of the metadata URI. + + + The $select query option. + + + The resolved entity set as specified in the metadata URI. + + + The resolved structured type as specified in the metadata URI. + + + The navigation property as specified in the metadata URI. + + + The detected payload kinds from parsing the metadata URI. + + + true if we just parsed the metadata Uri for null properties, i.e. ~/$metadata#Edm.Null; false otherwise. + + + + Initializes a new instance of the class. + + The metadata URI read from the payload in its unparsed form. + + + + The metadata URI read from the payload in its unparsed form. + + + + + The metadata document URI as read from the payload. + + This is the metadata URI as read from the payload without the fragment. + + + + The fragment portion of the metadata URI. + + + + + The $select query option. + + + + + The resolved entity set as specified in the metadata URI. + + + + + The resolved structured type as specified in the metadata URI. + + + + + The navigation property as specified in the metadata URI. + + + + + The detected payload kinds from parsing the metadata URI. + + + + + true if we just parsed the metadata Uri for null properties, i.e. ~/$metadata#Edm.Null; false otherwise. + + + + + Reader for the JSON Lite format that supports look-ahead and re-ordering of payloads. + + + + + Reader for the JSON format (http://www.json.org) that supports look-ahead. + + + + + Reader for the JSON format. http://www.json.org + + + + + The initial size of the buffer of characters. + + + 4K (page size) divided by the size of a single character 2 and a little less + so that array structures also fit into that page. + The goal is for the entire buffer to fit into one page so that we don't cause + too many L1 cache misses. + + + + + Maximum number of characters to move in the buffer. If the current token size is bigger than this, we will allocate a larger buffer. + + This threshold is copied from the XmlReader implementation. + + + + The text which every date time value starts with. + + + + + The text which every date time value ends with. + + + + + The text reader to read input characters from. + + + + + Stack of scopes. + + + At the begining the Root scope is pushed to the stack and stays there for the entire parsing + (so that we don't have to check for empty stack and also to track the number of root-level values) + Each time a new object or array is started the Object or Array scope is pushed to the stack. + If a property inside an Object is found, the Property scope is pushed to the stack. + The Property is popped once we find the value for the property. + The Object and Array scopes are popped when their end is found. + + + + true if annotations are allowed and thus the reader has to + accept more characters in property names than we do normally; otherwise false. + + + true if the reader should recognize ASP.NET JSON DateTime and DateTimeOffset format "\/Date(...)\/". + false if the reader should not recognize such strings and read them as arbitrary string. + + + + End of input from the reader was already reached. + + This is used to avoid calling Read on the text reader multiple times + even though it already reported the end of input. + + + + Buffer of characters from the input. + + + + + Number of characters available in the input buffer. + + This can have value of 0 to characterBuffer.Length. + + + + Index into the characterBuffer which points to the first character + of the token being currently processed (while in the Read method) + or of the next token to be processed (while in the caller code). + + This can have value from 0 to storedCharacterCount. + + + + The last reported node type. + + + + + The value of the last reported node. + + + + + Cached string builder to be used when constructing string values (needed to resolve escape sequences). + + The string builder instance is cached to avoid excessive allocation when many string values with escape sequences + are found in the payload. + + + + Constructor. + + The text reader to read input characters from. + The specific JSON-based format expected by the reader. + + + + Reads the next node from the input. + + true if a new node was found, or false if end of input was reached. + + + + Determines if a given character is a whitespace character. + + The character to test. + true if the is a whitespace; false otherwise. + Note that the behavior of this method is different from Char.IsWhitespace, since that method + returns true for all characters defined as whitespace by the Unicode spec (which is a lot of characters), + this one on the other hand recognizes just the whitespaces as defined by the JSON spec. + + + + Parses a date time primitive value. + + The string value to parse. + The parsed date time value, or null if the string value doesn't represent a date time value. + + + + Parses a "value", that is an array, object or primitive value. + + The node type to report to the user. + + + + Parses a property name and the colon after it. + + The node type to report to the user. + + + + Parses a primitive string value. + + The value of the string primitive value. + + Assumes that the current token position points to the opening quote. + Note that the string parsing can never end with EndOfInput, since we're already seen the quote. + So it can either return a string succesfully or fail. + + + + Parses a primitive string value. + + Set to true if the first character in the string was a backslash. This is used when parsing DateTime values + since they must start with an escaped slash character (\/). + The value of the string primitive value. + + Assumes that the current token position points to the opening quote. + Note that the string parsing can never end with EndOfInput, since we're already seen the quote. + So it can either return a string succesfully or fail. + + + + Parses the null primitive value. + + Always returns null if successful. Otherwise throws. + Assumes that the current token position points to the 'n' character. + + + + Parses the true or false primitive values. + + true of false boolean value if successful. Otherwise throws. + Assumes that the current token position points to the 't' or 'f' character. + + + + Parses the number primitive values. + + Int32 or Double value if successful. Otherwise throws. + Assumes that the current token position points to the first character of the number, so either digit, dot or dash. + + + + Parses a name token. + + The value of the name token. + Name tokens are (for backward compat reasons) either + - string value quoted with double quotes. + - string value quoted with single quotes. + - sequence of letters, digits, underscores and dollar signs (without quoted and in any order). + + + + Called when end of input is reached. + + Always returns false, used for easy readability of the callers. + + + + Creates a new scope of type and pushes the stack. + + The scope type to push. + + + + Pops a scope from the stack. + + + + + Pops a property scope if it's present on the stack. + + + + + Skips all whitespace characters in the input. + + true if a non-whitespace character was found in which case the tokenStartIndex is pointing at that character. + false if there are no non-whitespace characters left in the input. + + + + Ensures that a specified number of characters after the token start is available in the buffer. + + The number of character after the token to make available. + true if at least the required number of characters is available; false if end of input was reached. + + + + Consumes the characters starting at the start of the token + and returns them as a string. + + The number of characters after the token start to consume. + The string value of the consumed token. + + + + Reads more characters from the input. + + true if more characters are available; false if end of input was reached. + This may move characters in the characterBuffer, so after this is called + all indeces to the characterBuffer are invalid except for tokenStartIndex. + + + + The value of the last reported node. + + This is non-null only if the last node was a PrimitiveValue or Property. + If the last node is a PrimitiveValue this property returns the value: + - null if the null token was found. + - boolean if the true or false token was found. + - string if a string token was found. + - DateTime if a string token formatted as DateTime was found. + - Int32 if a number which fits into the Int32 was found. + - Double if a number which doesn't fit into Int32 was found. + If the last node is a Property this property returns a string which is the name of the property. + + + + + The type of the last node read. + + + + + Various scope types for Json writer. + + + + + Root scope - the top-level of the JSON content. + + This scope is only once on the stack and that is at the bottom, always. + It's used to track the fact that only one top-level value is allowed. + + + + Array scope - inside an array. + + This scope is pushed when [ is found and is active before the first and between the elements in the array. + Between the elements it's active when the parser is in front of the comma, the parser is never after comma as then + it always immediately processed the next token. + + + + Object scope - inside the object (but not in a property value). + + This scope is pushed when { is found and is active before the first and between the properties in the object. + Between the properties it's active when the parser is in front of the comma, the parser is never after comma as then + it always immediately processed the next token. + + + + Property scope - after the property name and colon and througout the value. + + This scope is pushed when a property name and colon is found. + The scope remains on the stack while the property value is parsed, but once the property value ends, it's immediately removed + so that it doesn't appear on the stack after the value (ever). + + + + Class representing scope information. + + + + + The type of the scope. + + + + + Constructor. + + The type of the scope. + + + + Get/Set the number of values found under the current scope. + + + + + Gets the scope type for this scope. + + + + The (possibly empty) list of buffered nodes. + This is a circular linked list where this field points to the first item of the list. + + + + A pointer into the bufferedNodes list to track the most recent position of the current buffered node. + + + + + The maximumum number of recursive internalexception objects to allow when reading in-stream errors. + + + + The name of the property that denotes an in-stream error. + + + A flag indicating whether the reader is in buffering mode or not. + + + + A flag indicating that the last node for non-buffering read was taken from the buffer; we leave the + node in the buffer until the next Read call. + + + + + Debug flag to ensure we do not re-enter the instance while reading ahead and trying to parse an in-stream error. + + + + + true if the parser should check for in-stream errors whenever a start-object node is encountered; otherwise false. + This is set to false for parsing of top-level errors where we don't want the in-stream error detection code to kick in. + + + + + Constructor. + + The text reader to read input characters from. + The name of the property that denotes an in-stream error. + The maximum number of recursive internalexception objects to allow when reading in-stream errors. + The specific JSON-based format expected by the reader. + + + + Reads the next node from the input. + + true if a new node was found, or false if end of input was reached. + + + + Puts the reader into the state where it buffers read nodes. + + + + + Creates a bookmark at the current position of the reader. + + The bookmark object, it should be treated as a black box by the caller. + + + + Moves the reader to the bookmarked position. + + The bookmark object to move to. + + + + Puts the reader into the state where no buffering happen on read. + Either buffered nodes are consumed or new nodes are read (and not buffered). + + + + + A method to detect whether the current property value represents an in-stream error. + + The read from the payload. + true if the current value is an in-stream error value; otherwise false. + + + + Reads the next node from the input. If we have still nodes in the buffer, takes the node + from there. Otherwise reads a new node from the underlying reader and buffers it (depending on the current mode). + + true if a new node was found, or false if end of input was reached. + + If the parsingInStreamError field is false, the method will read ahead for every StartObject node read from the input to check whether the JSON object + represents an in-stream error. If so, it throws an . If false, this check will not happen. + This parsingInStremError field is set to true when trying to parse an in-stream error; in normal operation it is false. + + + + + Called whenever we find a new object value in the payload. + The base class implementation reads ahead and tries to parse it as an in-stream error payload. If it finds one it will throw it. + + + This method is called when the reader is in the buffering mode and can read ahead (buffering) as much as it needs to + once it returns the reader will be returned to the position before the method was called. + The reader is always positioned on a start object when this method is called. + + + + + Reads the next node from the JSON reader and if a start-object node is detected starts reading ahead and + tries to parse an in-stream error. + + true if a new node was found, or false if end of input was reached. + + + + Try to read an error structure from the stream. Return null if no error structure can be read. + + An instance that was read from the reader or null if none could be read. + true if an instance that was read; otherwise false. + + + + Try to read the message property value of an error value. + + An instance to set the read message property values on. + true if the message property values could be read; otherwise false. + + + + Try to read an inner error property value. + + An instance that was read from the reader or null if none could be read. + The number of times this method has been called recursively. + true if an instance that was read; otherwise false. + + + + Reads the string value of a property. + + The string value read if the method returns true; otherwise null. + true if a string value (or null) was read as property value of the current property; otherwise false. + + + + Skips over a JSON value (primitive, object or array) while parsing in-stream errors. + Note that the SkipValue extension method can not be used in this case as this method has to + access the base instance's NodeType and call ReadInternal. + + + Pre-Condition: JsonNodeType.PrimitiveValue, JsonNodeType.StartArray or JsonNodeType.StartObject + Post-Condition: JsonNodeType.PrimitiveValue, JsonNodeType.EndArray or JsonNodeType.EndObject + + + + + Removes the head node from the buffer. + + + + + The type of the last node read. + + + Depending on whether buffering is on or off this will return the node type of the last + buffered read or the node type of the last unbuffered read. + + + + + The value of the last reported node. + + + Depending on whether buffering is on or off this will return the node type of the last + buffered read or the node type of the last unbuffered read. + + + + + true if the parser should check for in-stream errors whenever a start-object node is encountered; otherwise false. + This is set to false for parsing of top-level errors where we don't want the in-stream error detection code to kick in. + + + + + Private class used to buffer nodes when reading in buffering mode. + + + + The type of the node read. + + + The value of the node. + + + + Constructor. + + The type of the node read. + The value of the node. + + + + The type of the node read. + + + + + The value of the node. + + + + + The previous node in the list of nodes. + + + + + The next node in the list of nodes. + + + + + Constructor. + + The text reader to read input characters from. + The maximum number of recursive internalexception objects to allow when reading in-stream errors. + + + + Called whenever we find a new object value in the payload. + Buffers and re-orders an object value for later consumption by the JsonLight reader. + + + This method is called when the reader is in the buffering mode and can read ahead (buffering) as much as it needs to + once it returns the reader will be returned to the position before the method was called. + The reader is always positioned on a start object when this method is called. + + + + + Reads a property name from the JSON reader and determines if it's a regular property, an instance annotation or a property annotation. + + The name of the regular property which the reader is positioned on or which a property annotation belongs to. + The name of the instance or property annotation, or null if the reader is on a regular property. + + + + Reads over a value buffering it. + + + + + A data structure to represent the buffered object with information about its properties, + their order and annotations. + + + + The cache for properties. + The key is the property or instance annotation name, + the value are the buffered properties grouped by property name (incl. annotation properties). + + + The set of data property names. + Data properties are the properties that are neither an instance annotation property nor a property annotation. + + + A list of property names with their annotation name. + This is needed to properly maintain the relative order of annotation properties if no data + property for the annotation property exists in the object. + + + + Constructor. + + + + + Adds a new buffered property to the list of buffered properties for this object. + + The name of the data property (null for instance annotations). + The name of the annotation (null for data properties). + The buffered property to add. + + + + Reorders the buffered properties to conform to the required payload order. + + The required order is: odata.metadata comes first, odata.type comes next, then all odata.* property annotations + and finally, we preserve the relative order of custom annotations and data properties. + + + + Sort the data properties and property annotations stored for a particular property name. + + The list of buffered properties to sort. + The sorted enumerable of buffered properties. + The sort order is for all odata.* property annotations to come before the data property + but otherwise preserve the relative order of custom property annotations with regard to the position of the data property. + + + + Checks whether an annotation name is an odata.* annotation. + + The annotation name to check. + true if the annotation name represents an odata.* annotation; otherwise false. + + + + Checks whether an annotation name is a odata.metadata annotation. + + The annotation name to check. + true if the annotation name represents an odata.metadata annotation; otherwise false. + + + + Checks whether an annotation name is a odata.annotationGroup annotation. + + The annotation name to check. + true if the annotation name represents an odata.annotationGroup annotation; otherwise false. + + + + Checks whether an annotation name is a odata.annotationGroupReference annotation. + + The annotation name to check. + true if the annotation name represents an odata.annotationGroupReference annotation; otherwise false. + + + + Checks whether an annotation name is a odata.type annotation. + + The annotation name to check. + true if the annotation name represents an odata.type annotation; otherwise false. + + + + Checks whether an annotation name is a odata.id annotation. + + The annotation name to check. + true if the annotation name represents an odata.id annotation; otherwise false. + + + + Checks whether an annotation name is a odata.etag annotation. + + The annotation name to check. + true if the annotation name represents an odata.etag annotation; otherwise false. + + + + Sorts the property names for an object. + + The sorted enumerable of property names. + The sort order is to put odata.metadata first, then odata.type, odata.id, and odata.etag, followed by all other odata.* instance annotations. + For the rest, we preserve the relative order of custom annotations with regard to the data property. + Note that we choose the position of the first property annotation in cases where no data property for a set of + property annotations exists. + + + + The node in the linked list of buffered nodes where this object starts. + + + + + The current buffered property being processed. + + + + + A data structure to represent a buffered property. + + + + + Reorders the buffered property to be positioned after the node. + + The node after which to insert this buffered property. + + + + The annotation name for this buffered property (either instance annotation or property annotation). + + + + + The node in the linked list of buffered nodes that represents the property name of the buffered property. + + + + + The node in the linked list of buffered nodes that represents the end of the property value of the buffered property. + + + + + Interface representing a context necessary for reading JSON operations values. + + + + + Given a URI from the payload, this method will try to make it absolute, or fail otherwise. + + The URI string from the payload to process. + An absolute URI to report. + + + + Adds the specified action to the current entry. + + The action whcih is fully populated with the data from the payload. + + + + Adds the specified function to the current entry. + + The function whcih is fully populated with the data from the payload. + + + + The JSON reader to read the operations value from. + + + + + Base class for all JSON output contexts. + + + + An in-stream error listener to notify when in-stream error is to be written. Or null if we don't need to notify anybody. + + + The message output stream. + + + The asynchronous output stream if we're writing asynchronously. + + + The text writer created for the output stream. + + + The JSON writer to write to. + This field is also used to determine if the output context has been disposed already. + + + + Constructor. + + The format for this output context. + The text writer to write to. + Configuration settings of the OData writer. + The model to use. + + + + Constructor. + + The format for this output context. + The message stream to write the payload to. + The encoding to use for the payload. + Configuration settings of the OData writer. + true if writing a response message; otherwise false. + true if the output should be written synchronously; false if it should be written asynchronously. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs written to the payload. + + + + Check if the object has been disposed; called from all public API methods. Throws an ObjectDisposedException if the object + has already been disposed. + + + + + Synchronously flush the writer. + + + + + Asynchronously flush the writer. + + Task which represents the pending flush operation. + The method should not throw directly if the flush operation itself fails, it should instead return a faulted task. + + + + Perform the actual cleanup work. + + If 'true' this method is called from user code; if 'false' it is called by the runtime. + + + + Returns the which is to be used to write the content of the message. + + + + + Helper methods used by the OData reader for the Verbose JSON and JSON Light formats. + + + + + Try and parse spatial type from the json payload. + + The JSON reader to read from. + true if the reader is positioned on the first property of the value which is a JSON Object + (or the second property if the first one was odata.type). + The input context with all the settings. + Expected edm property type. + true to validate null values; otherwise false. + The recursion depth to start with. + The name of the property whose value is being read, if applicable (used for error reporting). + An instance of the spatial type. + + + + Tries to read a null value from the JSON reader. + + The JSON reader to read from. + The input context with all the settings. + The expected type reference of the value. + true to validate null values; otherwise false. + The name of the property whose value is being read, if applicable (used for error reporting). + true if a null value could be read from the JSON reader; otherwise false. + If the method detects a null value it will read it (position the reader after the null value); + otherwise the reader does not move. + + + + Reads the json object value from the jsonReader + + Json reader to read payload from the wire. + true if the reader is positioned on the first property of the value which is a JSON Object + (or the second property if the first one was odata.type). + The input context with all the settings. + The recursion depth to start with. + an instance of IDictionary containing the spatial value. + + + + Read the json array from the reader. + + JsonReader instance. + The input context with all the settings. + The recursion depth to start with. + a list of json objects. + + + + Reader for the JSON format that supports look-ahead and deduplicates properties. + + + This reader will buffer the entire object record whenever it finds the start of the object record. + It then goes through all its properties and removes duplicates. + It then reports the object record as if there were no duplicates in it. + If there was a duplicate property it will be reported at the position the first occurence of the property was found + but with the value of the last occurence. + This is to implement WCF DS Server compatibility behavior. + + + + + Constructor. + + The text reader to read input characters from. + The maximum number of recursive internalexception objects to allow when reading in-stream errors. + + + + Called whenever we find a new object value in the payload. + Removes duplicate properties in the current object record. + + + This method assumes that we are buffering and that the current buffered node is a StartObject. + It then goes, buffers the entire object record (and all its children) and removes duplicate properties (using the WCF DS Server algorithm). + It will remove duplicate properties on any objects in the subtree of the top-level object as well (behaves recursively). + The method also checks for in-stream errors and throws if it finds one. + + + + + Private class used to store information necessary to deduplicate properties of a single JSON object record. + + + This class is a dictionary + Key is the name of a property in the object record. + Value is a list of property deduplication records in the order we find the properties in the payload. + + + + + Points to the property record which is currently being constructed. + + + + + Private class used to store information necessary to deduplicate a single JSON property. + + + + + The node in the buffered nodes list which points to the property node + which this deduplication record describes. + + + + + The node in the buffered nodes list which points to the last node of the value of the property node + this deduplication record describes. + + + + + Constructor. + + The property node to create the record for. + + + + The node in the buffered nodes list which points to the property node + which this deduplication record describes. + + + + + The node in the buffered nodes list which points to the last node of the value of the property node + this deduplication record describes. + + + Observation: Even if the value itself is an object for which we will do the property deduplication and thus we will shuffle its nodes around, + in that case the last value node will point to the end object node which will not change during the deduplication process. + + + + + Annotation which stores the EDM type information of a value. + + + This annotation will be used on ODataEntry, ODataComplexValue and ODataCollectionValue. + + + + The EDM type of the value this annotation is on. + + + The entity set of the value this annotation is on. Only applies to entity values. + + + + Creates a new instance of the type annotation for an entity value. + + The entity set the entity belongs to (required). + The entity type of the entity value if not the base type of the entity set (optional). + + + + Creates a new instance of the type annotation for a complex value. + + The type of the complex value (required). + + + + Creates a new instance of the type annotation for a collection value. + + The type of the collection value (required). + + + + The EDM type of the value. + + + + + The entity set the value belongs to (only applies to entity values). + + + + + An implementation of an OData collection value. + + + + + The to convert into an . + + + + + Creates a new instance of an . + + The to create the collection value for. + + + + Gets the values stored in this collection. + + + + + Gets the kind of this value. + + + + + An implementation of an OData entry or complex value. + + + + Static, un-typed instance for use in ODataLib. + + + + Creates a new Edm null value with the specified type. + + The type of the null value (if available). + + + + Gets the kind of this value. + + + + + Class with utility methods to deal with EDM values over OData OM instances. + + + + + Converts an into the corresponding . + + The non-null to convert. + The declaring type of the property. + An implementation of the value. + + + + Converts an OData value into the corresponding . + + The value to convert. + The of the value or null if no type reference is available. + An implementation of the . + + + + An implementation of an OData entry or complex value. + + + + Properties of an OData entry or complex value. + + + The type of this structured value. + + + + Creates a new Edm structured value from an OData entry. + + The to create the structured value for. + + + + Creates a new Edm structured value from an OData complex value. + + The to create the structured value for. + + + + Finds the value corresponding to the provided property name. + + Property to find the value of. + The found property, or null if no property was found. + + + + Gets the property values of this structured value. + + + + + Gets the kind of this value. + + + + + Interface representing a state of the JSON reader for entry. + + + + + The entry being read. + + + + + The entity type for the entry (if available) + + + + + The metadata builder instance for the entry. + + + + + Flag which indicates that during parsing of the entry represented by this state, + any property which is not an instance annotation was found. This includes property annotations + for property which is not present in the payload. + + + This is used to detect incorrect ordering of the payload (for example odata.id must not come after the first property). + + + + + If the reader finds a navigation link to report, but it must first report the parent entry + it will store the navigation link info in this property. So this will only ever store the first navigation link of an entry. + + + + + The duplicate property names checker for the entry represented by the current state. May be null. + + + + + The selected properties that should be expanded during template evaluation. + + + + + The set of names of the navigation properties we have read so far while reading the entry. + + + + + true if we have started processing missing projected navigation links, false otherwise. + + + + + OData JsonLight deserializer for collections. + + + + Cached duplicate property names checker to use if the items are complex values. + + + + Constructor. + + The JsonLight input context to read from. + + + + Reads the start of a collection; this includes collection-level properties (e.g., the 'results' property) if the version permits it. + + The duplicate property names checker used to keep track of the properties and annotations + in the collection wrapper object. + true if we are reading a nested collection inside a paramter payload; otherwise false. + The expected item type reference or null if none is expected. + The validated actual item type reference (if specified in the payload) or the expected item type reference. + An representing the collection-level information. Currently this is only the name of the collection in ATOM. + + Pre-Condition: Any: the start of a nested collection value; if this is not a 'StartArray' node this method will fail. + JsonNodeType.Property: the first property of the collection wrapper object after the metadata URI. + JsonNodeType.EndObject: when the collection wrapper object has no properties (other than the metadata URI). + Post-Condition: JsonNodeType.StartArray: the start of the array of the collection items. + + + + + Reads an item in the collection. + + The expected type of the item to read. + The collection validator instance if no expected item type has been specified; otherwise null. + The value of the collection item that was read; this can be an ODataComplexValue, a primitive value or 'null'. + + Pre-Condition: The first node of the item in the collection + NOTE: this method will throw if the node is not + JsonNodeType.StartObject: for a complex item + JsonNodeType.PrimitiveValue: for a primitive item + Post-Condition: The reader is positioned on the first node of the next item or an EndArray node if there are no more items in the collection + + + + + Reads the end of a collection; this includes collection-level instance annotations. + + true if we are reading a nested collection inside a paramter payload; otherwise false. + + Pre-Condition: EndArray node: End of the collection content array + Post-Condition: EndOfInput: All of the collection payload has been consumed. + + + + + OData collection reader for the JsonLight format. + + + + The input to read the payload from. + + + The collection deserializer to use to read from the input. + + + + Constructor. + + The input to read the payload from. + The expected type for the items in the collection. + If not null, the reader will notify the implementer of the interface of relevant state changes in the reader. + + + + Implementation of the collection reader logic when in state 'Start'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.None: assumes that the JSON reader has not been used yet when not reading a nested payload. + Post-Condition: The reader is positioned on the first node of the first item or the EndArray node of an empty item array + + + + + Implementation of the collection reader logic when in state 'Start'. + + Task which returns true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.None: assumes that the JSON reader has not been used yet when not reading a nested payload. + Post-Condition: The reader is positioned on the first node of the first item or the EndArray node of an empty item array + + + + + Implementation of the reader logic when in state 'CollectionStart'. + + true if more nodes can be read from the reader; otherwise false. + + Pre-Condition: The first node of the first item in the collection or the EndArray node of the (empty) item array + NOTE: this method will throw if the node is not + JsonNodeType.EndArray: for an empty item array of the collection + JsonNodeType.StartObject: for a complex value as first item + JsonNodeType.PrimitiveValue: for a primitive value as first item + Post-Condition: The reader is positioned on the first node of the second item or an EndArray node if there are no items in the collection + + + + + Implementation of the reader logic when in state 'CollectionStart'. + + Task which returns true if more nodes can be read from the reader; otherwise false. + + Pre-Condition: The first node of the first item in the collection or the EndArray node of the (empty) item array + NOTE: this method will throw if the node is not + JsonNodeType.EndArray: for an empty item array of the collection + JsonNodeType.StartObject: for a complex value as first item + JsonNodeType.PrimitiveValue: for a primitive value as first item + Post-Condition: The reader is positioned on the first node of the second item or an EndArray node if there are no items in the collection + + + + + Implementation of the reader logic when in state 'Value'. + + true if more nodes can be read from the reader; otherwise false. + + Pre-Condition: The first node of the next item in the collection or the EndArray node of the item array + NOTE: this method will throw if the node is not + JsonNodeType.EndArray: for the end of the item array of the collection + JsonNodeType.StartObject: for a complex item + JsonNodeType.PrimitiveValue: for a primitive item + Post-Condition: The reader is positioned on the first node of the next item or an EndArray node if there are no items in the collection + + + + + Implementation of the reader logic when in state 'Value'. + + Task which returns true if more nodes can be read from the reader; otherwise false. + + Pre-Condition: The first node of the next item in the collection or the EndArray node of the item array + NOTE: this method will throw if the node is not + JsonNodeType.EndArray: for the end of the item array of the collection + JsonNodeType.StartObject: for a complex item + JsonNodeType.PrimitiveValue: for a primitive item + Post-Condition: The reader is positioned on the first node of the next item or an EndArray node if there are no items in the collection + + + + + Implementation of the reader logic when in state 'CollectionEnd'. + + false since no more nodes can be read from the reader after the collection ended. + + Pre-Condition: JsonNodeType.EndArray the end of the item array of the collection + Post-Condition: JsonNodeType.EndOfInput nothing else to read when not reading a nested payload + + + + + Implementation of the reader logic when in state 'CollectionEnd'. + + Task which should return false since no more nodes can be read from the reader after the collection ends. + + Pre-Condition: JsonNodeType.EndArray the end of the item array of the collection + Post-Condition: JsonNodeType.EndOfInput nothing else to read when not reading a nested payload + + + + + Implementation of the collection reader logic when in state 'Start'. + + The duplicate property names checker for the top-level scope. + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.None: assumes that the JSON reader has not been used yet when not reading a nested payload. + Post-Condition: The reader is positioned on the first node of the first item or the EndArray node of an empty item array + + + + + Implementation of the reader logic when in state 'CollectionStart'. + + true if more nodes can be read from the reader; otherwise false. + + Pre-Condition: The first node of the first item in the collection or the EndArray node of the (empty) item array + NOTE: this method will throw if the node is not + JsonNodeType.EndArray: for an empty item array of the collection + JsonNodeType.StartObject: for a complex value as first item + JsonNodeType.PrimitiveValue: for a primitive value as first item + Post-Condition: The reader is positioned on the first node of the second item or an EndArray node if there are no items in the collection + + + + + Implementation of the reader logic when in state 'Value'. + + true if more nodes can be read from the reader; otherwise false. + + Pre-Condition: The first node of the next item in the collection or the EndArray node of the item array + NOTE: this method will throw if the node is not + JsonNodeType.EndArray: for the end of the item array of the collection + JsonNodeType.StartObject: for a complex item + JsonNodeType.PrimitiveValue: for a primitive item + Post-Condition: The reader is positioned on the first node of the next item or an EndArray node if there are no items in the collection + + + + + Implementation of the reader logic when in state 'CollectionEnd'. + + false since no more nodes can be read from the reader after the collection ended. + + Pre-Condition: JsonNodeType.EndArray the end of the item array of the collection + Post-Condition: JsonNodeType.EndOfInput nothing else to read when not reading a nested payload + + + + + OData JsonLight serializer for collections. + + + + true when writing a top-level collection that requires the 'value' wrapper object; otherwise false. + + + The metadata uri builder to use. + + + + Constructor. + + The output context to write to. + true when writing a top-level collection that requires the 'value' wrapper object; otherwise false. + + + + Writes the start of a collection. + + The collection start to write. + The item type of the collection or null if no metadata is available. + + + + Writes the end of a collection. + + + + + ODataCollectionWriter for the JsonLight format. + + + + + Base class for OData collection writers that verifies a proper sequence of write calls on the writer. + + + + + Base class for OData collection writers. + + + + Start writing a collection. + The representing the collection. + + + Asynchronously start writing a collection. + A task instance that represents the asynchronous write operation. + The representing the collection. + + + Starts writing an entry. + The collection item to write. + + + Asynchronously start writing a collection item. + A task instance that represents the asynchronous write operation. + The collection item to write. + + + Finishes writing a collection. + + + Asynchronously finish writing a collection. + A task instance that represents the asynchronous write operation. + + + Flushes the write buffer to the underlying stream. + + + Flushes the write buffer to the underlying stream asynchronously. + A task instance that represents the asynchronous operation. + + + + An interface that allows the implementations of the writers to get notified if an in-stream error is to be written. + + + + + This method notifies the listener, that an in-stream error is to be written. + + + This listener can choose to fail, if the currently written payload doesn't support in-stream error at this position. + If the listener returns, the writer should not allow any more writing, since the in-stream error is the last thing in the payload. + + + + The output context to write to. + + + If not null, the writer will notify the implementer of the interface of relevant state changes in the writer. + + + Stack of writer scopes to keep track of the current context of the writer. + + + The expected type of the items in the collection or null if no expected item type exists. + + + Checker to detect duplicate property names on complex collection items. + + + The collection validator instance if no expected item type has been specified; otherwise null. + + + + Constructor. + + The output context to write to. + The item type of the collection being written or null if no metadata is available. + + + + Constructor. + + The output context to write to. + The type reference of the expected item type or null if no expected item type exists. + If not null, the writer will notify the implementer of the interface of relevant state changes in the writer. + + + + Flushes the write buffer to the underlying stream. + + + + + Asynchronously flushes the write buffer to the underlying stream. + + A task instance that represents the asynchronous operation. + + + + Start writing a collection. + + The representing the collection. + + + + Asynchronously start writing a collection. + + The representing the collection. + A task instance that represents the asynchronous write operation. + + + + Write a collection item. + + The collection item to write. + + + + Asynchronously start writing a collection item. + + The collection item to write. + A task instance that represents the asynchronous write operation. + + + + Finish writing a collection. + + + + + Asynchronously finish writing a collection. + + A task instance that represents the asynchronous write operation. + + + + This method notifies the listener, that an in-stream error is to be written. + + + This listener can choose to fail, if the currently written payload doesn't support in-stream error at this position. + If the listener returns, the writer should not allow any more writing, since the in-stream error is the last thing in the payload. + + + + + Determines whether a given writer state is considered an error state. + + The writer state to check. + True if the writer state is an error state; otherwise false. + + + + Check if the object has been disposed; called from all public API methods. Throws an ObjectDisposedException if the object + has already been disposed. + + + + + Flush the output. + + + + + Flush the output. + + Task representing the pending flush operation. + + + + Start writing an OData payload. + + + + + Finish writing an OData payload. + + + + + Start writing a collection. + + The representing the collection. + + + + Finish writing a collection. + + + + + Writes a collection item (either primitive or complex) + + The collection item to write. + The expected type of the collection item or null if no expected item type exists. + + + + Verifies that calling WriteStart is valid. + + true if the call is to be synchronous; false otherwise. + The representing the collection. + + + + Start writing a collection - implementation of the actual functionality. + + The representing the collection. + + + + Verify that calling WriteItem is valid. + + true if the call is to be synchronous; false otherwise. + + + + Write a collection item - implementation of the actual functionality. + + The collection item to write. + + + + Verifies that calling WriteEnd is valid. + + true if the call is to be synchronous; false otherwise. + + + + Finish writing a collection - implementation of the actual functionality. + + + + + Verifies that calling Flush is valid. + + true if the call is to be synchronous; false otherwise. + + + + Verifies that a call is allowed to the writer. + + true if the call is to be synchronous; false otherwise. + + + + Checks whether we are currently writing the first top-level element; if so call StartPayload + + + + + Catch any exception thrown by the action passed in; in the exception case move the writer into + state ExceptionThrown and then rethrow the exception. + + The action to execute. + + + + Notifies the implementer of the interface of relevant state changes in the writer. + + The new writer state. + + + + Enter a new writer scope; verifies that the transition from the current state into new state is valid + and attaches the item to the new scope. + + The writer state to transition into. + The item to associate with the new scope. + + + + Leave the current writer scope and return to the previous scope. + When reaching the top-level replace the 'Started' scope with a 'Completed' scope. + + Note that this method is never called once an error has been written or a fatal exception has been thrown. + + + + Replaces the current scope with a new scope; checks that the transition is valid. + + The new state to transition into. + The item associated with the new state. + + + + Verify that the transition from the current state into new state is valid . + + The new writer state to transition into. + + + + The current state of the writer. + + + + Checker to detect duplicate property names on complex collection items. + + + + The collection validator instance. + + + + + The item type of the collection being written or null if no metadata is available. + + + + + An enumeration representing the current state of the writer. + + + + The writer is at the start; nothing has been written yet. + + + + The writer has started writing and is writing the wrapper elements for the + collection items (if any). No or all items have been written. + + + + The writer is in a state where collection items can be written. + + + The writer has completed; nothing can be written anymore. + + + Writer has written an error; nothing can be written anymore. + + + + A writer scope; keeping track of the current writer state and an item associated with this state. + + + + The writer state of this scope. + + + The item attached to this scope. + + + + Constructor creating a new writer scope. + + The writer state of this scope. + The item attached to this scope. + + + + The writer state of this scope. + + + + + The item attached to this scope. + + + + + The output context to write to. + + + + + The JsonLight collection serializer to use. + + + + + Constructor for creating a collection writer to use when writing operation result payloads. + + The output context to write to. + The item type of the collection being written or null if no metadata is available. + + + + Constructor for creating a collection writer to use when writing parameter payloads. + + The output context to write to. + The type reference of the expected item type or null if no expected item type exists. + If not null, the writer will notify the implementer of the interface of relevant state changes in the writer. + + + + Check if the object has been disposed; called from all public API methods. Throws an ObjectDisposedException if the object + has already been disposed. + + + + + Flush the output. + + + + + Flush the output. + + Task representing the pending flush operation. + + + + Start writing an OData payload. + + + + + Finish writing an OData payload. + + + + + Start writing a collection. + + The representing the collection. + + + + Finish writing a collection. + + + + + Writes a collection item (either primitive or complex) + + The collection item to write. + The expected type of the collection item or null if no expected item type exists. + + + + OData JsonLight deserializer for entity reference links. + + + + + Constructor. + + The JsonLight input context to read from. + + + + Read a set of top-level entity reference links. + + The navigation property for which to read the entity reference links. + An representing the read links. + + + + Read a set of top-level entity reference links. + + The navigation property for which to read the entity reference links. + A task which returns an representing the read links. + + + + Reads a top-level entity reference link - implementation of the actual functionality. + + The navigation property for which to read the entity reference links. + An representing the read entity reference link. + + + + Reads a top-level entity reference link - implementation of the actual functionality. + + The navigation property for which to read the entity reference links. + A task which returns an representing the read entity reference link. + + + + Read a set of top-level entity reference links. + + The navigation property for which to read the entity reference links. + The duplicate property names checker to use for the top-level scope. + An representing the read links. + + + + Reads a top-level entity reference link - implementation of the actual functionality. + + The navigation property for which to read the entity reference links. + The duplicate property names checker to use for the top-level scope. + An representing the read entity reference link. + + + + Reads the entity reference link instance annotations. + + The to read the annotations for. + The duplicate property names checker for the entity reference links scope. + true when parsing the instance annotations before the 'value' property; + false when parsing the instance annotations after the 'value' property. + + Pre-Condition: JsonNodeType.Property The first property in the payload (or the first property after the metadata URI in responses) + JsonNodeType.EndObject The end of the entity reference links object + Post-Condition: JsonNodeType.EndObject When the end of the entity reference links object is reached + Any The first node of the value of the 'url' property (if found) + + + + + Reads the odata.nextlink value of an entity reference links nextlink annotation. + + The entity reference links to read the next link value for; the value of the nextlink will be assigned to this instance. + + Pre-Condition: JsonNodeType.PrimitiveValue The value of the instance annotation + Post-Condition: JsonNodeType.EndObject The end of the entity reference links object + JsonNodeType.Property The next property after the instance annotation + + + + + Reads the value of an entity reference links count annotation. + + The entity reference links to read the count value for; the value of the count will be assigned to this instance. + + Pre-Condition: JsonNodeType.PrimitiveValue The value of the instance annotation + Post-Condition: JsonNodeType.EndObject The end of the entity reference links object + JsonNodeType.Property The next property after the instance annotation + + + + + Read an entity reference link. + + The duplicate property names checker to check for duplicate properties and + duplicate annotations; this is a separate instance per entity reference link. + true if we are reading a singleton entity reference link at the top level; false if we are reading + an entity reference link as part of a collection of entity reference links. + An instance of which was read. + + Pre-Condition: StartObject when the entity reference link is part of a collection + Property the first property in the entity reference link (for a top-level link) + EndObject the end object node of an entity reference link (for a top-level link) + Post-Condition: EndInput for a top-level object + EndArray for the last link in a collection of links + Any for the first node of the next link in a collection of links + + + + + OData JsonLight serializer for entity reference links. + + + + The metadata uri builder to use. + + + + Constructor. + + The output context to write to. + + + + Writes a single top-level Uri in response to a $links query. + + The entity reference link to write out. + The entity set of the navigation property + The navigation property for which the entity reference link is being written, or null if none is available. + + + + Writes a set of links (Uris) in response to a $links query; includes optional count and next-page-link information. + + The set of entity reference links to write out. + The entity set of the navigation property + The navigation property for which the entity reference links are being written, or null if none is available. + + + + Writes a single Uri in response to a $links query. + + The entity reference link to write out. + The entity set of the navigation property + The navigation property for which the entity reference link is being written, or null if none is available. + true if the entity reference link being written is at the top level of the payload. + + + + Writes a set of links (Uris) in response to a $links query; includes optional count and next-page-link information. + + The set of entity reference links to write out. + The entity set of the navigation property + The navigation property for which the entity reference links are being written, or null if none is available. + + + + Writes the next link property, which consists of the property name and value. + + The non-null value of the next link to write. + + + + Writes the odata.count property, which consists of the property name and value. + + The value of the count property to write. + + + + OData JsonLight deserializer for entries and feeds. + + + + The annotation group deserializer for reading annotation groups. + + + + Constructor. + + The JsonLight input context to read from. + + + + Reads the start of the JSON array for the content of the feed. + + + Pre-Condition: JsonNodeType.StartArray: The start of the feed property array; this method will fail if the node is anything else. + Post-Condition: JsonNodeType.StartObject: The first item in the feed + JsonNodeType.EndArray: The end of the feed + + + + + Reads the end of the array containing the feed content. + + + Pre-Condition: JsonNodeType.EndArray + Post-Condition: JsonNodeType.Property if the feed is part of an expanded navigation link and there are more properties in the object + JsonNodeType.EndObject if the feed is a top-level feed or the expanded navigation link is the last property of the payload + + + + + Reads the entry type name annotation (odata.type) + + The state of the reader for entry to read. + + Pre-Condition: JsonNodeType.Property The first property after the odata.metadata in the entry object. + JsonNodeType.EndObject End of the entry object. + Post-Condition: JsonNodeType.Property The property after the odata.type (if there was any), or the property on which the method was called. + JsonNodeType.EndObject End of the entry object. + + This method fills the ODataEntry.TypeName property if the type name is found in the payload. + + + + + Reads the content of an entry until a navigation link is detected. + + The state of the reader for entry to read. + A reader navigation link info representing the navigation link detected while reading the entry contents; null if no navigation link was detected. + + Pre-Condition: JsonNodeType.Property The property to read + JsonNodeType.EndObject If no (more) properties exist in the entry's content + Post-Condition: JsonNodeType.EndObject If no (more) properties exist in the entry's content + JsonNodeType.Property If we've read a deferred link (this is the property after the deferred link) + JsonNodeType.StartObject Expanded entry + JsonNodeType.StartArray Expanded feed + JsonNodeType.PrimitiveValue (null) Expanded null + + + + + Validates entry metadata. + + The entry state to use. + + + + Reads the feed instance annotations for a top-level feed. + + The to read the instance annotations for. + The duplicate property names checker for the top-level scope. + true when parsing the instance annotations before the feed property; + false when parsing the instance annotations after the feed property. + true if we should scan ahead for the annotations and ignore the actual data properties (used with + the reordering reader); otherwise false. + + + + Reads a value of property annotation on the entry level. + + The name of the property annotation to read. + The value of the property annotation. + + This method should read the property annotation value and return a representation of the value which will be later + consumed by the entry reading code. + + Pre-Condition: JsonNodeType.PrimitiveValue The value of the property annotation property + JsonNodeType.StartObject + JsonNodeType.StartArray + Post-Condition: JsonNodeType.EndObject The end of the entry object + JsonNodeType.Property The next property after the property annotation + + + + + Reads an annotation group if one exists, and updates the given entry with the annotations from the annotation group. + + The state for the entry which should get the annotations. + + + + Reads instance annotation in the entry object. + + The name of the instance annotation found. + true if a non-annotation property has already been encountered. + true if the 'odata.type' annotation has already been encountered, or should have been by now. + The duplicate property names checker for the entry being read. + The value of the annotation. + + Pre-Condition: JsonNodeType.PrimitiveValue The value of the instance annotation property + JsonNodeType.StartObject + JsonNodeType.StartArray + Post-Condition: JsonNodeType.EndObject The end of the entry object + JsonNodeType.Property The next property after the instance annotation + + + + + Reads instance annotation in the entry object. + + The state of the reader for entry to read. + The name of the instance annotation found. + The value of the annotation. + + Pre-Condition: JsonNodeType.PrimitiveValue The value of the instance annotation property + JsonNodeType.StartObject + JsonNodeType.StartArray + Post-Condition: JsonNodeType.EndObject The end of the entry object + JsonNodeType.Property The next property after the instance annotation + + + + + Reads the value of the instance annotation. + + The duplicate property names checker instance. + The name of the instance annotation. + Returns the value of the instance annotation. + + + + Reads the value of a feed annotation (count or next link). + + The name of the annotation found. + The feed to read the annotation for; if non-null, the annotation value will be assigned to the feed. + The duplicate property names checker instance. + + Pre-Condition: JsonNodeType.PrimitiveValue The value of the annotation + Post-Condition: JsonNodeType.EndObject The end of the feed object + JsonNodeType.Property The next annotation after the current annotation + + + + + Reads entry property which doesn't have value, just annotations. + + The state of the reader for entry to read. + The name of the property read. + A reader navigation link info representing the navigation link detected while reading the entry contents; null if no navigation link was detected. + + Pre-Condition: JsonNodeType.EndObject The end of the entry object. + JsonNodeType.Property The property after the one we're to read. + Post-Condition: JsonNodeType.EndObject This method doesn't move the reader. + JsonNodeType.Property + + + + + Reads any next link annotation immediately after the end of a feed. + + The feed being read. + The information about the expanded link. This must be non-null if we're reading an expanded feed, and must be null if we're reading a top-level feed. + The top-level duplicate property names checker, if we're reading a top-level feed. + + + + Reads the information of a deferred link. + + The state of the reader for entry to read. + The name of the navigation property for which to read the deferred link. + The navigation property for which to read the deferred link. This can be null. + Returns the navigation link info for the deferred navigation link read. + + This method doesn't move the reader. + + + + + Reads expanded entry navigation link. + + The state of the reader for entry to read. + The navigation property for which to read the expanded link. + The navigation link info for the expanded link read. + + This method doesn't move the reader. + + + + + Reads expanded feed navigation link. + + The state of the reader for entry to read. + The navigation property for which to read the expanded link. + The navigation link info for the expanded link read. + + This method doesn't move the reader. + + + + + Reads entity reference link for a singleton navigation link in request. + + The state of the reader for entry to read. + The navigation property for which to read the entity reference link. + true if the navigation link is expanded. + The navigation link info for the entity reference link read. + + This method doesn't move the reader. + + + + + Reads entity reference links for a collection navigation link in request. + + The state of the reader for entry to read. + The navigation property for which to read the entity reference links. + true if the navigation link is expanded. + The navigation link info for the entity reference links read. + + This method doesn't move the reader. + + + + + Adds a new property to an entry. + + The entry state for the entry to add the property to. + The name of the property to add. + The value of the property to add. + + + + Checks if there is a next link annotation immediately after an expanded feed, and reads and stores it if there is one. + We fail here if we encounter any other property annotation for the expanded navigation (since these should come before the property itself). + + The feed that was just read. + The information for the current expanded navigation link being read. + + + + Applies the all the annotations from the given annotation group to an entry. + + The state for the entry which should get the annotations. + The annotation group to apply. + + + + Sets specified media resource on an entry and hooks up metadata builder. + + The entry state to use. + The media resource to set. + + + + Reads entry property (which is neither instance nor property annotation) which has a value. + + The state of the reader for entry to read. + The name of the property read. + A reader navigation link info representing the navigation link detected while reading the entry contents; null if no navigation link was detected. + + Pre-Condition: JsonNodeType.PrimitiveValue The value of the property + JsonNodeType.StartObject + JsonNodeType.StartArray + Post-Condition: JsonNodeType.EndObject The end of the entry object + JsonNodeType.Property The next property after the property + JsonNodeType.StartObject Expanded entry + JsonNodeType.StartArray Expanded feed + JsonNodeType.PrimitiveValue (null) Expanded null entry + + + + + Read an entry-level data property and check its version compliance. + + The state of the reader for entry to read. + The EDM property of the property being read, or null if the property is an open property. + The type name specified for the property in property annotation, or null if no such type name is available. + + Pre-Condition: The reader is positioned on the first node of the property value + Post-Condition: JsonNodeType.Property: the next property of the entry + JsonNodeType.EndObject: the end-object node of the entry + + + + + Read an open property. + + The state of the reader for entry to read. + The name of the open property to read. + true if the property has a value, false if it doesn't. + + Pre-Condition: The reader is positioned on the first node of the property value + Post-Condition: JsonNodeType.Property: the next property of the entry + JsonNodeType.EndObject: the end-object node of the entry + + + + + Read an undeclared property. That is a property which is not declared by the model, but the owning type is not an open type. + + The state of the reader for entry to read. + The name of the open property to read. + true if the property has a value, false if it doesn't. + + Pre-Condition: JsonNodeType.PrimitiveValue: propertyWithValue is true and the reader is positioned on the first node of the property value. + JsonNodeType.StartObject: + JsonNodeType.StartArray: + JsonNodeType.Property: propertyWithValue is false and the reader is positioned on the node after the property. + JsonNodeType.EndObject: + Post-Condition: JsonNodeType.Property: the next property of the entry + JsonNodeType.EndObject: the end-object node of the entry + + A navigation link info instance if the propery read is a navigation link which should be reported to the caller. + Otherwise null if the property was either ignored or read and added to the list of properties on the entry. + + + + Reads a stream property value from the property annotations. + + The state of the reader for entry to read. + The name of the stream property to read the value for. + The newly created stream reference value. + + + + Reads one operation for the entry being read. + + The Json operation deserializer context. + The state of the reader for entry to read. + The name of the metadata reference property being read. + true if the operation value is inside an array, i.e. multiple targets for the operation; false otherwise. + + Pre-Condition: JsonNodeType.StartObject: first node of the operation value. + Post-Condition: JsonNodeType.Property: the property after the current operation being read when there is one target for the operation. + JsonNodeType.StartObject: the first node of the next operation value when there are multiple targets for the operation. + JsonNodeType.EndArray: the end-array of the operation values when there are multiple target for the operation. + + + + + Sets the metadata builder for the operation. + + The state of the reader for entry to read. + The operation to set the metadata builder on. + + + + Creates a new instance of ODataAction or ODataFunction for the . + + The Json operation deserializer context. + The state of the reader for entry to read. + The name of the metadata reference property being read. + A new instance of ODataAction or ODataFunction for the . + + + + Read the metadata reference property value for the entry being read. + + The state of the reader for entry to read. + The name of the metadata reference property being read. + + Pre-Condition: JsonNodeType.Property: first node of the metadata reference property's value. Currently + actions and functions are the only supported metadata reference property, + we will throw if this is not a start object or start array node. + Post-Condition: JsonNodeType.Property: the property after the annotation value + JsonNodeType.EndObject: the end-object of the entry + + + + + Validates that we can read metadata reference property. + + + + + Validates that the value of a JSON property can represent expanded navigation link. + + true if the property is entity set reference property; false for a resource reference property, null if unknown. + + + + Operations deserializer context to pass to JSON operations reader. + + + + + The entry to add operations to. + + + + + The deserializer to use. + + + + + Constructor. + + The entry to add operations to. + The deserializer to use. + + + + Given a URI from the payload, this method will try to make it absolute, or fail otherwise. + + The URI string from the payload to process. + An absolute URI to report. + + + + Adds the specified action to the current entry. + + The action whcih is fully populated with the data from the payload. + + + + Adds the specified function to the current entry. + + The function whcih is fully populated with the data from the payload. + + + + The JSON reader to read the operations value from. + + + + + OData JsonLight serializer for entries and feeds. + + + + + OData JsonLight serializer for properties. + + + + + Serializer to use to write property values. + + + + + Constructor. + + The output context to write to. + + + + Write an to the given stream. This method creates an + async buffered stream and writes the property to it. + + The property to write. + + + + Writes property names and value pairs. + + The of the entry (or null if not metadata is available). + The enumeration of properties to write out. + + Whether the properties are being written for complex value. Also used for detecting whether stream properties + are allowed as named stream properties should only be defined on ODataEntry instances + + The checker instance for duplicate property names. + Set of projected properties, or null if all properties should be written. + + + + Test to see if is an open property or not. + + The property in question. + The owning type of the property. + The metadata of the property. + true if the property is an open property; false if it is not, or if openness cannot be determined + + + + Writes a name/value pair for a property. + + The property to write out. + The owning type for the or null if no metadata is available. + true when writing a top-level property; false for nested properties. + Should pass in true if we are writing a property of an ODataEntry instance, false otherwise. + Named stream properties should only be defined on ODataEntry instances. + The checker instance for duplicate property names. + Set of projected properties, or null if all properties should be written. + + + + Writes a stream property. + + The name of the property to write. + The stream reference value to be written + + + + Writes the type name on the wire. + + Name of the property. + Type name of the property. + true when writing a top-level property; false for nested properties. + + + + Gets the json light value writer. + + + + A map from annotation group name to annotation group for all annotation groups + encountered so far in this payload. + + + The metadata uri builder to use. + + + + Constructor. + + The output context to write to. + + + + Writes an annotation group declaration or annotation group reference if specified for the entry. + + The entry to write the annotation group declaration or reference for. + + + + Writes the metadata properties for an entry which can only occur at the start. + + The entry state for which to write the metadata properties. + + + + Writes the metadata properties for an entry which can occur both at the start or at the end. + + The entry state for which to write the metadata properties. + + This method will only write properties which were not written yet. + + + + + Writes the metadata properties for an entry which can only occur at the end. + + The entry state for which to write the metadata properties. + The duplicate names checker for properties of this entry. + + + + Writes the navigation link metadata. + + The navigation link to write the metadata for. + The checker instance for duplicate property names. + + + + Writes "actions" or "functions" metadata. + + The operations to write. + true when writing the entry's actions; false when writing the entry's functions. + + + + Tries to writes the metadata URI property for an entry into the payload if one is available. + + The context object to answer basic questions regarding the type of the entry. + + + + Tries to writes the metadata URI property for a feed into the payload if one is available. + + The context object to answer basic questions regarding the type of the feed. + + + + Writes an association link property annotation. + + The name of the navigation property for which to write the association link. + The association link URL to write. + + + + Gets the metadata reference fragment from the operation metadata uri. + i.e. if the operation metadata uri is {absolute metadata document uri}#{container-qualified-operation-name}, + this method will return #{container-qualified-operation-name}. + + Operation in question. + The metadata reference fragment from the operation metadata uri. + + + + Returns the target uri string from the given operation. + + Operation in question. + Returns the target uri string from the given operation. + + + + Validates a group of operations with the same Metadata Uri. + + Operations to validate. + + + + Writes a group of operation (all actions or all functions) that have the same "metadata". + + + Expects the actions or functions scope to already be open. + + A grouping of operations that are all actions or all functions and share the same "metadata". + + + + Writes an operation (an action or a function). + + + Expects the write to already have written the "rel value" and opened an array. + + The operation to write. + + + + Gets the base Uri of the metadata document uri, if it has been set. + + + + + OData JsonLight deserializer for errors. + + + + + Constructor. + + The JsonLight input context to read from. + + + + Read a top-level error. + + An representing the read error. + + Pre-Condition: JsonNodeType.None - The reader must not have been used yet. + Post-Condition: JsonNodeType.EndOfInput + + + + + Read a top-level error. + + A task which returns an representing the read error. + + Pre-Condition: JsonNodeType.None - The reader must not have been used yet. + Post-Condition: JsonNodeType.EndOfInput + + + + + Read a top-level error. + + An representing the read error. + + Pre-Condition: JsonNodeType.Property - The first property of the top level object. + JsonNodeType.EndObject - If there are no properties in the top level object. + any - Will throw if anything else. + Post-Condition: JsonNodeType.EndOfInput + + + + + Reads all the properties in a single JSON object scope, calling for each non-annotation property encountered. + + + An action which takes the name of the current property and processes the property value as necessary. + At the start of this action, the reader is positioned at the property value node. + The action should leave the reader positioned on the node after the property value. + + + + This method should only be used for scopes where we allow (and ignore) annotations in a custom namespace, i.e. scopes which directly correspond to a class in the OM. + + Pre-Condition: JsonNodeType.StartObject - The start of the JSON object being processed. + any - Will throw if not StartObject. + Post-Condition: any - The node after the EndObject node for the JSON object being processed. + + + + + Reads a value of property annotation on an error payload. + + The name of the property annotation to read. + The value of the property annotation. + + This method should read the property annotation value and return a representation of the value which will be later + consumed by the entry reading code, or throw if ther is something unexpected. + + Pre-Condition: JsonNodeType.PrimitiveValue The value of the property annotation property + JsonNodeType.StartObject + JsonNodeType.StartArray + Post-Condition: JsonNodeType.EndObject The end of the error object + JsonNodeType.Property The next property after the property annotation + + + + + Reads the JSON object which is the value of the "odata.error" property. + + The object to update with data from the payload. + + Pre-Condition: JsonNodeType.StartObject - The start of the "odata.error" object. + any - Will throw if not StartObject. + Post-Condition: any - The node after the "odata.error" object's EndNode. + + + + + Reads the JSON object which is the value of the "message" property. + + The object to update with data from the payload. + + Pre-Condition: JsonNodeType.StartObject - The start of the "message" object. + any - Will throw if not StartObject. + Post-Condition: any - The node after the "message" object's EndNode. + + + + + Reads an inner error payload. + + The number of times this method has been called recursively. + An representing the read inner error. + + Pre-Condition: JsonNodeType.StartObject - The start of the "innererror" object. + any - will throw if not StartObject. + Post-Condition: any - The node after the "innererror" object's EndNode. + + + + + Reads a property value which occurs in the "innererror" object scope. + + The number of parent inner errors for this inner error. + The object to update with the data from this property value. + The name of the property whose value is to be read. + + Pre-Condition: any - The value of the property being read. + Post-Condition: JsonNodeType.Property - The property after the one being read. + JsonNodeType.EndObject - The end of the "innererror" object. + any - Anything else after the property value is an invalid payload (but won't fail in this method). + + + + + Reads a property value which occurs in the "odata.error" object scope. + + The object to update with the data from this property value. + The name of the property whose value is to be read. + DuplicatePropertyNamesChecker to use for extracting property annotations + targetting any custom instance annotations on the error. + + Pre-Condition: any - The value of the property being read. + Post-Condition: JsonNodeType.Property - The property after the one being read. + JsonNodeType.EndObject - The end of the "odata.error" object. + any - Anything else after the property value is an invalid payload (but won't fail in this method). + + + + + Reads a property value which occurs in the "message" object scope. + + The object to update with the data from this property value. + The name of the propety whose value is to be read. + + Pre-Condition: any - The value of the property being read. + Post-Condition: JsonNodeType.Property - The property after the one being read. + JsonNodeType.EndObject - The end of the "message" object. + any - Anything else after the property value is an invalid payload (but won't fail in this method). + + + + + The JsonLight OData format. + + + + + The text representation - the name of the format. + + The name of the format. + + + + Detects the payload kinds supported by this format for the specified message payload. + + The response message with the payload stream. + Additional information available for the payload kind detection. + The set of s that are supported with the specified payload. + + + + Detects the payload kinds supported by this format for the specified message payload. + + The request message with the payload stream. + Additional information available for the payload kind detection. + The set of s that are supported with the specified payload. + + + + Creates an instance of the input context for this format. + + The to read. + The message to use. + The content type of the message to read. + The encoding to use. + Configuration settings of the OData reader. + The OData protocol version to be used for reading the payload. + true if reading a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs read from the payload. + Format specific state stored during payload kind detection + using the . + The newly created input context. + + + + Creates an instance of the output context for this format. + + The message to use. + The specific media type being written. + The encoding to use. + Configuration settings of the OData writer. + true if writing a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs written to the payload. + The newly created output context. + + + + Asynchronously detects the payload kinds supported by this format for the specified message payload. + + The response message with the payload stream. + Additional information available for the payload kind detection. + A task that when completed returns the set of s + that are supported with the specified payload. + + + + Asynchronously detects the payload kinds supported by this format for the specified message payload. + + The request message with the payload stream. + Additional information available for the payload kind detection. + A task that when completed returns the set of s + that are supported with the specified payload. + + + + Asynchronously creates an instance of the input context for this format. + + The to read. + The message to use. + The content type of the message to read. + The encoding to use. + Configuration settings of the OData reader. + The OData protocol version to be used for reading the payload. + true if reading a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs read from the payload. + Format specific state stored during payload kind detection + using the . + Task which when completed returned the newly created input context. + + + + Creates an instance of the output context for this format. + + The message to use. + The specific media type being written. + The encoding to use. + Configuration settings of the OData writer. + true if writing a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs written to the payload. + Task which represents the pending create operation. + + + + Detects the payload kind(s) from the message stream. + + The message stream to read from for payload kind detection. + The message being read. + true if reading a response message; otherwise false. + Additional information available for the payload kind detection. + An enumerable of zero, one or more payload kinds that were detected from looking at the payload in the message stream. + + + + Detects the payload kind(s) from the message stream. + + The message stream to read from for payload kind detection. + The message being read. + true if reading a response message; otherwise false. + Additional information available for the payload kind detection. + An enumerable of zero, one or more payload kinds that were detected from looking at the payload in the message stream. + + + + Implementation of the OData input for JsonLight OData format. + + + + + Base class for all input contexts, defines the interface + to be implemented by the specific formats. + + + + The format for this input context. + + + The message reader settings to be used for reading. + + + The protocol version to use when reading the payload. + + + Set to true if this context is reading a response payload. + + + true if the input should be read synchronously; false if it should be read asynchronously. + + + The optional URL resolver to perform custom URL resolution for URLs read from the payload. + + + The model to use. + + + The type resolver to use. + + + Set to true if the input was disposed. + + + + Constructor. + + The format for this input context. + Configuration settings of the OData reader. + The OData protocol version to be used for reading the payload. + true if reading a response message; otherwise false. + true if the input should be read synchronously; false if it should be read asynchronously. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs read from the payload. + + + + IDisposable.Dispose() implementation to cleanup unmanaged resources of the context. + + + + + Creates an to read a feed. + + The entity set we are going to read entities for. + The expected base entity type for the entries in the feed. + The newly created . + + + + Asynchronously creates an to read a feed. + + The entity set we are going to read entities for. + The expected base entity type for the entries in the feed. + Task which when completed returns the newly created . + + + + Creates an to read an entry. + + The entity set we are going to read entities for. + The expected entity type for the entry to be read. + The newly created . + + + + Asynchronously creates an to read an entry. + + The entity set we are going to read entities for. + The expected entity type for the entry to be read. + Task which when completed returns the newly created . + + + + Create a . + + The expected type reference for the items in the collection. + The newly created . + + + + Asynchronously create a . + + The expected type reference for the items in the collection. + Task which when completed returns the newly created . + + + + Create a . + + The batch boundary to use. + The newly created . + + Since we don't want to support batch format extensibility (at least not yet) this method should remain internal. + + + + + Asynchronously create a . + + The batch boundary to use. + Task which when completed returns the newly created . + + Since we don't want to support batch format extensibility (at least not yet) this method should remain internal. + + + + + Create a . + + The function import whose parameters are being read. + The newly created . + + + + Asynchronously create a . + + The function import whose parameters are being read. + Task which when completed returns the newly created . + + + + Read a service document. + This method reads the service document from the input and returns + an that represents the read service document. + + An representing the read service document. + + + + Asynchronously read a service document. + This method reads the service document from the input and returns + an that represents the read service document. + + Task which when completed returns an representing the read service document. + + + + Read a metadata document. + This method reads the metadata document from the input and returns + an that represents the read metadata document. + + An representing the read metadata document. + + + + Read the property from the input and + return an representing the read property. + + The producing the property to be read. + The expected type reference of the property to read. + An representing the read property. + + + + Asynchronously read the property from the input and + return an representing the read property. + + The producing the property to be read. + The expected type reference of the property to read. + Task which when completed returns an representing the read property. + + + + Read a top-level error. + + An representing the read error. + + + + Asynchronously read a top-level error. + + Task which when completed returns an representing the read error. + + + + Read a set of top-level entity reference links. + + The navigation property for which to read the entity reference links. + An representing the read links. + + + + Asynchronously read a set of top-level entity reference links. + + The navigation property for which to read the entity reference links. + Task which when completed returns an representing the read links. + + + + Read a top-level entity reference link. + + The navigation property for which to read the entity reference link. + An representing the read entity reference link. + + + + Asynchronously read a top-level entity reference link. + + The navigation property for which to read the entity reference link. + Task which when completed returns an representing the read entity reference link. + + + + Read a top-level value. + + The expected type reference for the value to be read; null if no expected type is available. + An representing the read value. + + + + Asynchronously read a top-level value. + + The expected type reference for the value to be read; null if no expected type is available. + Task which when completed returns an representing the read value. + + + + Check if the object has been disposed. + + If the object has already been disposed. + + + + Asserts that the input context was created for synchronous operation. + + + + + Asserts that the input context was created for asynchronous operation. + + + + + Creates a new instance of a duplicate property names checker. + + The newly created instance of duplicate property names checker. + + + + Method to use the custom URL resolver to resolve a base URI and a payload URI. + This method returns null if not custom resolution is desired. + If the method returns a non-null URL that value will be used without further validation. + + The (optional) base URI to use for the resolution. + The URI read from the payload. + + A instance that reflects the custom resolution of the method arguments + into a URL or null if no custom resolution is desired; in that case the default resolution is used. + + + + + Disposes the input context. + + + + + Perform the actual cleanup work. + + If 'true' this method is called from user code; if 'false' it is called by the runtime. + + + + Creates an exception which reports that the specified payload kind if not support by this format. + + The payload kind which is not supported. + An exception to throw. + + + + The message reader settings to be used for reading. + + + + + The version of the OData protocol to use. + + + + + Set to true if a response is being read. + + + + + true if the input should be read synchronously; false if it should be read asynchronously. + + + + + The model to use or null if no metadata is available. + + + + + The type resolver to use. + + + + + The optional URL resolver to perform custom URL resolution for URLs read from the payload. + + + + + true if the WCF DS client compatibility format behavior should be used; otherwise false. + + + + + true if the WCF DS server compatibility format behavior should be used; otherwise false. + + + + + true if the default format behavior should be used; otherwise false. + + + + + true if the WCF DS client compatibility API behavior should be used; otherwise false. + + + + + true if the WCF DS server compatibility API behavior should be used; otherwise false. + + + + + true if the default API behavior should be used; otherwise false. + + + + JSON Light specific state stored during payload kind detection. + + + The text reader created for the input stream. + + The ODataJsonLightInputContext instance owns the textReader instance and thus disposes it. + We further set this field to null when the input is disposed and use it for checks whether the instance has already been disposed. + + + + The JSON reader to read from. + + + Constructor. + The format for this input context. + The stream to read data from. + The content type of the message to read. + The encoding to use to read the input. + Configuration settings of the OData reader. + The OData protocol version to be used for reading the payload. + true if reading a response message; otherwise false. + true if the input should be read synchronously; false if it should be read asynchronously. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs read from the payload. + JSON Ligth specific state stored during payload kind detection (or null if no payload kind detection happened). + + + Constructor. + The format for this input context. + The reader to use. + The content type of the message to read. + Configuration settings of the OData reader. + The OData protocol version to be used for reading the payload. + true if reading a response message; otherwise false. + true if the input should be read synchronously; false if it should be read asynchronously. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs read from the payload. + JSON Ligth specific state stored during payload kind detection (or null if no payload kind detection happened). + + + + Creates an to read a feed. + + The entity set we are going to read entities for. + The expected base entity type for the entries in the feed. + The newly created . + + + + Asynchronously creates an to read a feed. + + The entity set we are going to read entities for. + The expected base entity type for the entries in the feed. + Task which when completed returns the newly created . + + + + Creates an to read an entry. + + The entity set we are going to read entities for. + The expected entity type for the entry to be read. + The newly created . + + + + Asynchronously creates an to read an entry. + + The entity set we are going to read entities for. + The expected entity type for the entry to be read. + Task which when completed returns the newly created . + + + + Create a . + + The expected type reference for the items in the collection. + Newly create . + + + + Asynchronously create a . + + The expected type reference for the items in the collection. + Task which when completed returns the newly create . + + + + Create a . + + The function import whose parameters are being read. + The newly created . + + + + Asynchronously create a . + + The function import whose parameters are being read. + Task which when completed returns the newly created . + + + + Read a service document. + This method reads the service document from the input and returns + an that represents the read service document. + + An representing the read service document. + + + + Asynchronously read a service document. + This method reads the service document from the input and returns + an that represents the read service document. + + Task which when completed returns an representing the read service document. + + + + This method creates an reads the property from the input and + returns an representing the read property. + + The producing the property to be read. + The expected type reference of the property to read. + An representing the read property. + + + + Asynchronously read the property from the input and + return an representing the read property. + + The producing the property to be read. + The expected type reference of the property to read. + Task which when completed returns an representing the read property. + + + + Read a top-level error. + + An representing the read error. + + + + Asynchronously read a top-level error. + + Task which when completed returns an representing the read error. + + + + Read a set of top-level entity reference links. + + The navigation property for which to read the entity reference links. + An representing the read links. + + + + Asynchronously read a set of top-level entity reference links. + + The navigation property for which to read the entity reference links. + Task which when completed returns an representing the read links. + + + + Reads a top-level entity reference link. + + The navigation property for which to read the entity reference link. + An representing the read entity reference link. + + + + Asynchronously read a top-level entity reference link. + + The navigation property for which to read the entity reference link. + Task which when completed returns an representing the read entity reference link. + + + + Detects the payload kind(s) from the message stream. + + Additional information available for the payload kind detection. + An enumerable of zero, one or more payload kinds that were detected from looking at the payload in the message stream. + + + + Detects the payload kind(s) from the message stream. + + Additional information available for the payload kind detection. + A task which returns an enumerable of zero, one or more payload kinds that were detected from looking at the payload in the message stream. + + + + Disposes the input context. + + + + + Helper method to create a TextReader over the message stream. This is needed by the constructor to dispose the message stream if the creation fails + since this is called from the constructor in place where exception handling is not possible. + + The stream to read data from. + The encoding to use to read the input. + The newly created text reader. + + + + Verifies that CreateParameterReader can be called. + + The function import whose parameters are being read. + + + + Verifies that CreateEntryReader or CreateFeedReader can be called. + + The entity set we are going to read entities for. + The expected entity type for the entry/entries to be read. + + + + Verifies that CreateCollectionReader can be called. + + The expected type reference for the items in the collection. + + + + Verifies that ReadEntityReferenceLink can be called. + + The navigation property for which to read the entity reference link. + + + + Verifies that ReadProperty can be called. + + + + + Verifies that DetectPayloadKind can be called. + + + + + Verifies that a user model is available for reading. + + + + + Creates an to read a feed. + + The entity set we are going to read entities for. + The expected base entity type for the entries in the feed. + The newly created . + + + + Creates an to read an entry. + + The entity set we are going to read entities for. + The expected entity type for the entry to be read. + The newly created . + + + + Create a . + + The expected type reference for the items in the collection. + Newly create . + + + + Create a . + + The function import whose parameters are being read. + The newly created . + + + + Returns the which is to be used to read the content of the message. + + + + + JSON Light specific state stored during payload kind detection. + + + + + JsonLight format output context. + + + + + The json metadata level (i.e., fullmetadata, nometadata, minimalmetadata) being written. + + + + + The oracle to use to determine the type name to write for entries and values. + + + + + Constructor. + + The format for this output context. + The text writer to write to. + Configuration settings of the OData writer. + The model to use. + + + + Constructor. + + The format for this output context. + The message stream to write the payload to. + The specific media type being written. + The encoding to use for the payload. + Configuration settings of the OData writer. + true if writing a response message; otherwise false. + true if the output should be written synchronously; false if it should be written asynchronously. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs written to the payload. + + + + Creates a metadata uri builder for the current output context. + + The metadata uri builder to use when writing. + + + + Writes an into the message payload. + + The error to write. + + A flag indicating whether debug information (e.g., the inner error from the ) should + be included in the payload. This should only be used in debug scenarios. + + + This method is called if the ODataMessageWriter.WriteError is called once some other + write operation has already started. + The method should write the in-stream error representation for the specific format into the current payload. + Before the method is called no flush is performed on the output context or any active writer. + It is the responsibility of this method to flush the output before the method returns. + + + + + Writes an into the message payload. + + The error to write. + + A flag indicating whether debug information (e.g., the inner error from the ) should + be included in the payload. This should only be used in debug scenarios. + + Task which represents the pending write operation. + + This method is called if the ODataMessageWriter.WriteError is called once some other + write operation has already started. + The method should write the in-stream error representation for the specific format into the current payload. + Before the method is called no flush is performed on the output context or any active writer. + It is the responsibility of this method to make sure that all the data up to this point are written before + the in-stream error is written. + It is the responsibility of this method to flush the output before the task finishes. + + + + + Creates an to write a feed. + + The created writer. + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + The write must flush the output when it's finished (inside the last Write call). + + + + Asynchronously creates an to write a feed. + + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + A running task for the created writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Creates an to write an entry. + + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + The created writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Asynchronously creates an to write an entry. + + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + A running task for the created writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Creates an to write a collection of primitive or complex values (as result of a service operation invocation). + + The item type of the collection being written or null if no metadata is available. + The created collection writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Asynchronously creates an to write a collection of primitive or complex values (as result of a service operation invocation). + + The item type of the collection being written or null if no metadata is available. + A running task for the created collection writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Creates an to write a parameter payload. + + The function import whose parameters will be written. + The created parameter writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Asynchronously creates an to write a parameter payload. + + The function import whose parameters will be written. + A running task for the created parameter writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Writes a service document with the specified + as message payload. + + The default workspace to write in the service document. + It is the responsibility of this method to flush the output before the method returns. + + + + Asynchronously writes a service document with the specified + as message payload. + + The default workspace to write in the service document. + A task representing the asynchronous operation of writing the service document. + It is the responsibility of this method to flush the output before the task finishes. + + + + Writes an as message payload. + + The property to write. + It is the responsibility of this method to flush the output before the method returns. + + + + Asynchronously writes an as message payload. + + The property to write + A task representing the asynchronous operation of writing the property. + It is the responsibility of this method to flush the output before the task finishes. + + + + Writes an as the message payload. + + The error to write. + + A flag indicating whether debug information (e.g., the inner error from the ) should + be included in the payload. This should only be used in debug scenarios. + + It is the responsibility of this method to flush the output before the method returns. + + + + Asynchronously writes an as the message payload. + + The error to write. + + A flag indicating whether debug information (e.g., the inner error from the ) should + be included in the payload. This should only be used in debug scenarios. + + A task representing the asynchronous operation of writing the error. + It is the responsibility of this method to flush the output before the task finishes. + + + + Writes the result of a $links query as the message payload. + + The entity reference links to write as message payload. + The entity set of the navigation property. + The navigation property for which the entity reference links are being written, or null if none is available. + It is the responsibility of this method to flush the output before the method returns. + + + + Asynchronously writes the result of a $links query as the message payload. + + The entity reference links to write as message payload. + The entity set of the navigation property. + The navigation property for which the entity reference links are being written, or null if none is available. + A task representing the asynchronous writing of the entity reference links. + It is the responsibility of this method to flush the output before the task finishes. + + + + Writes a singleton result of a $links query as the message payload. + + The entity reference link to write as message payload. + The entity set of the navigation property. + The navigation property for which the entity reference link is being written, or null if none is available. + It is the responsibility of this method to flush the output before the method returns. + + + + Asynchronously writes a singleton result of a $links query as the message payload. + + The link result to write as message payload. + The entity set of the navigation property. + The navigation property for which the entity reference link is being written, or null if none is available. + A running task representing the writing of the link. + It is the responsibility of this method to flush the output before the task finishes. + + + + Creates an to write a feed. + + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + The created writer. + + + + Creates an to write an entry. + + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + The created writer. + + + + Creates an to write a collection of primitive or complex values (as result of a service operation invocation). + + The item type of the collection being written or null if no metadata is available. + The created collection writer. + + + + Creates an to write a parameter payload. + + The function import whose parameters will be written. + The created parameter writer. + + + + Writes an in-stream error. + + The error to write. + + A flag indicating whether debug information (e.g., the inner error from the ) should + be included in the payload. This should only be used in debug scenarios. + + + + + Writes an as message payload. + + The property to write. + + + + Writes a service document with the specified + as message payload. + + The default workspace to write in the service document. + + + + Writes an as the message payload. + + The error to write. + + A flag indicating whether debug information (e.g., the inner error from the ) should + be included in the payload. This should only be used in debug scenarios. + + + + + Writes the result of a $links query as the message payload. + + The entity reference links to write as message payload. + The entity set of the navigation property. + The navigation property for which the entity reference links are being written, or null if none is available. + + + + Writes a singleton result of a $links query as the message payload. + + The entity reference link to write as message payload. + The entity set of the navigation property. + The navigation property for which the entity reference link is being written, or null if none is available. + + + + Returns the oracle to use when determining the type name to write for entries and values. + + + + + The json metadata level (i.e., fullmetadata, nometadata, minimalmetadata) being written. + + + + + OData parameter reader for the Json Light format. + + + + The input to read the payload from. + + + The parameter deserializer to read the parameter input with. + + + The duplicate property names checker to use for the parameter payload. + + + + Constructor. + + The input to read the payload from. + The function import whose parameters are being read. + + + + Implementation of the reader logic when in state 'Start'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.None: assumes that the JSON reader has not been used yet. + Post-Condition: When the new state is Value, the reader is positioned at the closing '}' or at the name of the next parameter. + When the new state is Entry, the reader is positioned at the starting '{' of the entry payload. + When the new state is Feed or Collection, the reader is positioned at the starting '[' of the feed or collection payload. + + + + + Implementation of the parameter reader logic when in state 'Start'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.None: assumes that the JSON reader has not been used yet. + Post-Condition: When the new state is Value, the reader is positioned at the closing '}' or at the name of the next parameter. + When the new state is Entry, the reader is positioned at the starting '{' of the entry payload. + When the new state is Feed or Collection, the reader is positioned at the starting '[' of the feed or collection payload. + + + + + Implementation of the reader logic on the subsequent reads after the first parameter is read. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.Property or JsonNodeType.EndObject: assumes the last read puts the reader at the begining of the next parameter or at the end of the payload. + Post-Condition: When the new state is Value, the reader is positioned at the closing '}' or at the name of the next parameter. + When the new state is Entry, the reader is positioned at the starting '{' of the entry payload. + When the new state is Feed or Collection, the reader is positioned at the starting '[' of the feed or collection payload. + + + + + Implementation of the reader logic when in state Value, Entry, Feed or Collection state. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.Property or JsonNodeType.EndObject: assumes the last read puts the reader at the begining of the next parameter or at the end of the payload. + Post-Condition: When the new state is Value, the reader is positioned at the closing '}' or at the name of the next parameter. + When the new state is Entry, the reader is positioned at the starting '{' of the entry payload. + When the new state is Feed or Collection, the reader is positioned at the starting '[' of the feed or collection payload. + + + + + Creates an to read the collection with type . + + Expected item type reference of the collection to read. + An to read the collection with type . + + Pre-Condition: Any: the reader should be on the start array node of the collection value; if it is not we let the collection reader fail. + Post-Condition: Any: the reader should be on the start array node of the collection value; if it is not we let the collection reader fail. + NOTE: this method does not move the reader. + + + + + Creates an to read the collection with type . + + Expected item type reference of the collection to read. + An to read the collection with type . + + Pre-Condition: Any: the reader should be on the start array node of the collection value; if it is not we let the collection reader fail. + Post-Condition: Any: the reader should be on the start array node of the collection value; if it is not we let the collection reader fail. + NOTE: this method does not move the reader. + + + + + Implementation of the reader logic when in state 'Start'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.None: assumes that the JSON reader has not been used yet. + Post-Condition: When the new state is Value, the reader is positioned at the closing '}' or at the name of the next parameter. + When the new state is Entry, the reader is positioned at the starting '{' of the entry payload. + When the new state is Feed or Collection, the reader is positioned at the starting '[' of the feed or collection payload. + + + + + Implementation of the reader logic on the subsequent reads after the first parameter is read. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.Property or JsonNodeType.EndObject: assumes the last read puts the reader at the begining of the next parameter or at the end of the payload. + Post-Condition: When the new state is Value, the reader is positioned at the closing '}' or at the name of the next parameter. + When the new state is Entry, the reader is positioned at the starting '{' of the entry payload. + When the new state is Feed or Collection, the reader is positioned at the starting '[' of the feed or collection payload. + + + + + Creates an to read the collection with type . + + Expected item type reference of the collection to read. + An to read the collection with type . + + Pre-Condition: Any: the reader should be on the start array node of the collection value; if it is not we let the collection reader fail. + Post-Condition: Any: the reader should be on the start array node of the collection value; if it is not we let the collection reader fail. + NOTE: this method does not move the reader. + + + + + ODataParameterWriter for the JsonLight format. + + + + + Base class for OData parameter writers that verifies a proper sequence of write calls on the writer. + + + + Base class for OData collection writers. + + + Start writing a parameter payload. + + + Asynchronously start writing a parameter payload. + A task instance that represents the asynchronous write operation. + + + Start writing a value parameter. + The name of the parameter to write. + The value of the parameter to write. + + + Asynchronously start writing a value parameter. + A task instance that represents the asynchronous write operation. + The name of the parameter to write. + The value of the parameter to write. + + + Creates an to write the value of a collection parameter. + The newly created . + The name of the collection parameter to write. + + + Asynchronously creates an to write the value of a collection parameter. + The asynchronously created . + The name of the collection parameter to write. + + + Finish writing a parameter payload. + + + Asynchronously finish writing a parameter payload. + A task instance that represents the asynchronous write operation. + + + Flushes the write buffer to the underlying stream. + + + Asynchronously flushes the write buffer to the underlying stream. + A task instance that represents the asynchronous operation. + + + The output context to write to. + + + The function import whose parameters will be written. + + + Stack of writer scopes to keep track of the current context of the writer. + + + Parameter names that have already been written, used to detect duplicate writes on a parameter. + + + Checker to detect duplicate property names on complex parameter values. + + + + Constructor. + + The output context to write to. + The function import whose parameters will be written. + + + + Flushes the write buffer to the underlying stream. + + + + + Asynchronously flushes the write buffer to the underlying stream. + + A task instance that represents the asynchronous operation. + + + + Start writing a parameter payload. + + + + + Asynchronously start writing a parameter payload. + + A task instance that represents the asynchronous write operation. + + + + Start writing a value parameter. + + The name of the parameter to write. + The value of the parameter to write. + + + + Asynchronously start writing a value parameter. + + The name of the parameter to write. + The value of the parameter to write. + A task instance that represents the asynchronous write operation. + + + + Creates an to write the value of a collection parameter. + + The name of the collection parameter to write. + The newly created . + + + + Asynchronously creates an to write the value of a collection parameter. + + The name of the collection parameter to write. + A running task for the created writer. + + + + Finish writing a parameter payload. + + + + + Asynchronously finish writing a parameter payload. + + A task instance that represents the asynchronous write operation. + + + + This method notifies the implementer of this interface that the created reader is in Exception state. + + + + + This method notifies the implementer of this interface that the created reader is in Completed state. + + + + + This method notifies the listener, that an in-stream error is to be written. + + + This listener can choose to fail, if the currently written payload doesn't support in-stream error at this position. + If the listener returns, the writer should not allow any more writing, since the in-stream error is the last thing in the payload. + + + + + Check if the object has been disposed; called from all public API methods. Throws an ObjectDisposedException if the object + has already been disposed. + + + + + Flush the output. + + + + + Flush the output. + + Task representing the pending flush operation. + + + + Start writing an OData payload. + + + + + Writes a value parameter (either primitive or complex). + + The name of the parameter to write. + The value of the parameter to write. + The expected type reference of the parameter value. + + + + Creates a format specific to write the value of a collection parameter. + + The name of the collection parameter to write. + The type reference of the expected item type or null if no expected item type exists. + The newly created . + + + + Finish writing an OData payload. + + + + + Verifies that calling WriteStart is valid. + + true if the call is to be synchronous; false otherwise. + + + + Start writing a parameter payload - implementation of the actual functionality. + + + + + Verifies that the parameter with name can be written and returns the + type reference of the parameter. + + true if the call is to be synchronous; false otherwise. + The name of the parameter to be written. + The type reference of the parameter; null if no function import was specified to the writer. + + + + Verify that calling WriteValue is valid. + + true if the call is to be synchronous; false otherwise. + The name of the parameter to be written. + The value of the parameter to write. + The type reference of the parameter; null if no function import was specified to the writer. + + + + Verify that calling CreateCollectionWriter is valid. + + true if the call is to be synchronous; false otherwise. + The name of the parameter to be written. + The expected item type of the items in the collection or null if no item type is available. + + + + Gets the type reference of the parameter in question. Returns null if no function import was specified to the writer. + + The name of the parameter in question. + The type reference of the parameter; null if no function import was specified to the writer. + + + + Write a value parameter - implementation of the actual functionality. + + The name of the parameter to write. + The value of the parameter to write. + The expected type reference of the parameter value. + + + + Creates an to write the value of a collection parameter. + + The name of the collection parameter to write. + The type reference of the expected item type or null if no expected item type exists. + The newly created . + + + + Verifies that calling WriteEnd is valid. + + true if the call is to be synchronous; false otherwise. + + + + If an is specified, then this method ensures that all parameters present in the + function import are written to the payload. + + The binding parameter is optional in the payload. Hence this method will not check for missing binding parameter. + + + + Finish writing a parameter payload - implementation of the actual functionality. + + + + + Verifies that the current state is not Error or Completed. + + + + + Verifies that calling Flush is valid. + + true if the call is to be synchronous; false otherwise. + + + + Verifies that a call is allowed to the writer. + + true if the call is to be synchronous; false otherwise. + + + + Catch any exception thrown by the action passed in; in the exception case move the writer into + state ExceptionThrown and then rethrow the exception. + + The action to execute. + + + + Catch any exception thrown by the function passed in; in the exception case move the writer into + state ExceptionThrown and then rethrow the exception. + + The return type of . + The function to execute. + Returns the return value from executing . + + + + Enters the Error scope if we are not already in Error state. + + + + + Verifies that the transition from the current state into new state is valid and enter a new writer scope. + + The writer state to transition into. + + + + Leave the current writer scope and return to the previous scope. + When reaching the top-level replace the 'Start' scope with a 'Completed' scope. + + Note that this method is never called once the writer is in 'Error' state. + + + + Replaces the current scope with a new scope; checks that the transition is valid. + + The new state to transition into. + + + + Verify that the transition from the current state into new state is valid. + + The new writer state to transition into. + + + Checker to detect duplicate property names on complex parameter values. + + + + The current state of the writer. + + + + + An enumeration representing the current state of the writer. + + + + The writer is at the start; nothing has been written yet. + + + + The writer is in a state where the next parameter can be written. + The writer enters this state after WriteStart() or after the previous parameter is written. + + + + One of the create writer method has been called and the created sub writer is not in Completed state. + + + The writer has completed; nothing can be written anymore. + + + An error had occured while writing the payload; nothing can be written anymore. + + + + The output context to write to. + + + + + The JsonLight property and value serializer to use. + + + + + Constructor. + + The output context to write to. + The function import whose parameters will be written. + + + + Check if the object has been disposed; called from all public API methods. Throws an ObjectDisposedException if the object + has already been disposed. + + + + + Flush the output. + + + + + Flush the output. + + Task representing the pending flush operation. + + + + Start writing an OData payload. + + + + + Finish writing an OData payload. + + + + + Writes a value parameter (either primitive or complex) + + The name of the parameter to write. + The value of the parameter to write. + The expected type reference of the parameter value. + + + + Creates a format specific to write the value of a collection parameter. + + The name of the collection parameter to write. + The type reference of the expected item type or null if no expected item type exists. + The newly created . + + + + OData JsonLight deserializer for detecting the payload kind of a JsonLight payload. + + + + + Constructor. + + The JsonLight input context to read from. + + + + Detects the payload kind(s). + + Additional information available for the payload kind detection. + An enumerable of zero, one or more payload kinds that were detected from looking at the payload in the message stream. + + + + Detects the payload kind(s). + + Additional information available for the payload kind detection. + A task which returns an enumerable of zero, one or more payload kinds that were detected from looking at the payload in the message stream. + + + + Detects the payload kind(s). + + Additional information available for the payload kind detection. + An enumerable of zero, one or more payload kinds that were detected from looking at the payload in the message stream. + + + + OData reader for the JsonLight format. + + + + The input to read the payload from. + + + The entry and feed deserializer to read input with. + + + The scope associated with the top level of this payload. + + + + Constructor. + + The input to read the payload from. + The entity set we are going to read entities for. + The expected entity type for the entry to be read (in case of entry reader) or entries in the feed to be read (in case of feed reader). + true if the reader is created for reading a feed; false when it is created for reading an entry. + If not null, the Json reader will notify the implementer of the interface of relevant state changes in the Json reader. + + + + Implementation of the reader logic when in state 'Start'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.None: assumes that the JSON reader has not been used yet when not reading a nested payload. + Post-Condition: when reading a feed: the reader is positioned on the first item in the feed or the end array node of an empty feed + when reading an entry: the first node of the first navigation link value, null for a null expanded link or an end object + node if there are no navigation links. + + + + + Implementation of the reader logic when in state 'Start'. + + A task which returns true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.None: assumes that the JSON reader has not been used yet when not reading a nested payload. + Post-Condition: when reading a feed: the reader is positioned on the first item in the feed or the end array node of an empty feed + when reading an entry: the first node of the first navigation link value, null for a null expanded link or an end object + node if there are no navigation links. + + + + + Implementation of the reader logic when in state 'FeedStart'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: Any start node - The first entry in the feed + JsonNodeType.EndArray - The end of the feed + Post-Condition: The reader is positioned over the StartObject node of the first entry in the feed or + on the node following the feed end in case of an empty feed + + + + + Implementation of the reader logic when in state 'FeedStart'. + + A task which returns true if more items can be read from the reader; otherwise false. + + Pre-Condition: Any start node - The first entry in the feed + JsonNodeType.EndArray - The end of the feed + Post-Condition: The reader is positioned over the StartObject node of the first entry in the feed or + on the node following the feed end in case of an empty feed + + + + + Implementation of the reader logic when in state 'FeedEnd'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.Property if the feed has further instance or property annotations after the feed property + JsonNodeType.EndObject if the feed has no further instance or property annotations after the feed property + Post-Condition: JsonNodeType.EndOfInput for a top-level feed when not reading a nested payload + JsonNodeType.Property more properties exist on the owning entry after the expanded link containing the feed + JsonNodeType.EndObject no further properties exist on the owning entry after the expanded link containing the feed + JsonNodeType.EndArray end of expanded link in request, in this case the feed doesn't actually own the array object and it won't read it. + Any in case of expanded feed in request, this might be the next item in the expanded array, which is not an entry + + + + + Implementation of the reader logic when in state 'FeedEnd'. + + A task which returns true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.Property if the feed has further instance or property annotations after the feed property + JsonNodeType.EndObject if the feed has no further instance or property annotations after the feed property + Post-Condition: JsonNodeType.EndOfInput for a top-level feed when not reading a nested payload + JsonNodeType.Property more properties exist on the owning entry after the expanded link containing the feed + JsonNodeType.EndObject no further properties exist on the owning entry after the expanded link containing the feed + JsonNodeType.EndArray end of expanded link in request, in this case the feed doesn't actually own the array object and it won't read it. + Any in case of expanded feed in request, this might be the next item in the expanded array, which is not an entry + + + + + Implementation of the reader logic when in state 'EntryStart'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.StartObject Start of the expanded entry of the navigation link to read next. + JsonNodeType.StartArray Start of the expanded feed of the navigation link to read next. + JsonNodeType.PrimitiveValue (null) Expanded null entry of the navigation link to read next. + JsonNodeType.Property The next property after a deferred link or entity reference link + JsonNodeType.EndObject If no (more) properties exist in the entry's content + Post-Condition: JsonNodeType.StartObject Start of the expanded entry of the navigation link to read next. + JsonNodeType.StartArray Start of the expanded feed of the navigation link to read next. + JsonNodeType.PrimitiveValue (null) Expanded null entry of the navigation link to read next. + JsonNodeType.Property The next property after a deferred link or entity reference link + JsonNodeType.EndObject If no (more) properties exist in the entry's content + + + + + Implementation of the reader logic when in state 'EntryStart'. + + A task which returns true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.StartObject Start of the expanded entry of the navigation link to read next. + JsonNodeType.StartArray Start of the expanded feed of the navigation link to read next. + JsonNodeType.PrimitiveValue (null) Expanded null entry of the navigation link to read next. + JsonNodeType.Property The next property after a deferred link or entity reference link + JsonNodeType.EndObject If no (more) properties exist in the entry's content + Post-Condition: JsonNodeType.StartObject Start of the expanded entry of the navigation link to read next. + JsonNodeType.StartArray Start of the expanded feed of the navigation link to read next. + JsonNodeType.PrimitiveValue (null) Expanded null entry of the navigation link to read next. + JsonNodeType.Property The next property after a deferred link or entity reference link + JsonNodeType.EndObject If no (more) properties exist in the entry's content + + + + + Implementation of the reader logic when in state 'EntryEnd'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.EndObject end of object of the entry + JsonNodeType.PrimitiveValue (null) end of null expanded entry + Post-Condition: The reader is positioned on the first node after the entry's end-object node + + + + + Implementation of the reader logic when in state 'EntryEnd'. + + A task which returns true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.EndObject end of object of the entry + JsonNodeType.PrimitiveValue (null) end of null expanded entry + Post-Condition: The reader is positioned on the first node after the entry's end-object node + + + + + Implementation of the reader logic when in state 'NavigationLinkStart'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.StartObject start of an expanded entry + JsonNodeType.StartArray start of an expanded feed + JsonNodeType.PrimitiveValue (null) expanded null entry + JsonNodeType.Property deferred link with more properties in owning entry + JsonNodeType.EndObject deferred link as last property of the owning entry + Post-Condition: JsonNodeType.StartArray: start of expanded entry + JsonNodeType.StartObject start of expanded feed + JsonNodeType.PrimitiveValue (null) expanded null entry + JsonNodeType.Property deferred link with more properties in owning entry + JsonNodeType.EndObject deferred link as last property of the owning entry + + + + + Implementation of the reader logic when in state 'NavigationLinkStart'. + + A task which returns true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.StartObject start of an expanded entry + JsonNodeType.StartArray start of an expanded feed + JsonNodeType.PrimitiveValue (null) expanded null entry + JsonNodeType.Property deferred link with more properties in owning entry + JsonNodeType.EndObject deferred link as last property of the owning entry + Post-Condition: JsonNodeType.StartArray: start of expanded entry + JsonNodeType.StartObject start of expanded feed + JsonNodeType.PrimitiveValue (null) expanded null entry + JsonNodeType.Property deferred link with more properties in owning entry + JsonNodeType.EndObject deferred link as last property of the owning entry + + + + + Implementation of the reader logic when in state 'NavigationLinkEnd'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.EndObject: navigation link is last property in owning entry + JsonNodeType.Property: there are more properties after the navigation link in the owning entry + Post-Condition: JsonNodeType.StartObject start of the expanded entry navigation link to read next + JsonNodeType.StartArray start of the expanded feed navigation link to read next + JsonNoteType.Primitive (null) expanded null entry navigation link to read next + JsonNoteType.Property property after deferred link or entity reference link + JsonNodeType.EndObject end of the parent entry + + + + + Implementation of the reader logic when in state 'NavigationLinkEnd'. + + A task which returns true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.EndObject: navigation link is last property in owning entry + JsonNodeType.Property: there are more properties after the navigation link in the owning entry + Post-Condition: JsonNodeType.StartObject start of the expanded entry navigation link to read next + JsonNodeType.StartArray start of the expanded feed navigation link to read next + JsonNoteType.Primitive (null) expanded null entry navigation link to read next + JsonNoteType.Property property after deferred link or entity reference link + JsonNodeType.EndObject end of the parent entry + + + + + Implementation of the reader logic when in state 'EntityReferenceLink'. + + true if more items can be read from the reader; otherwise false. + + This method doesn't move the reader + Pre-Condition: JsonNodeType.EndObject: expanded link property is last property in owning entry + JsonNodeType.Property: there are more properties after the expanded link property in the owning entry + Any: expanded collection link - the node after the entity reference link. + Post-Condition: JsonNodeType.EndObject: expanded link property is last property in owning entry + JsonNodeType.Property: there are more properties after the expanded link property in the owning entry + Any: expanded collection link - the node after the entity reference link. + + + + + Implementation of the reader logic when in state 'EntityReferenceLink'. + + A task which returns true if more items can be read from the reader; otherwise false. + + This method doesn't move the reader + Pre-Condition: JsonNodeType.EndObject: expanded link property is last property in owning entry + JsonNodeType.Property: there are more properties after the expanded link property in the owning entry + Any: expanded collection link - the node after the entity reference link. + Post-Condition: JsonNodeType.EndObject: expanded link property is last property in owning entry + JsonNodeType.Property: there are more properties after the expanded link property in the owning entry + Any: expanded collection link - the node after the entity reference link. + + + + + Implementation of the reader logic when in state 'Start'. + + The duplicate property names checker to use for the top-level scope. + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.None: assumes that the JSON reader has not been used yet when not reading a nested payload. + Post-Condition: when reading a feed: the reader is positioned on the first item in the feed or the end array node of an empty feed + when reading an entry: the first node of the first navigation link value, null for a null expanded link or an end object + node if there are no navigation links. + + + + + Implementation of the reader logic when in state 'FeedStart'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: Any start node - The first entry in the feed + JsonNodeType.EndArray - The end of the feed + Post-Condition: The reader is positioned over the StartObject node of the first entry in the feed or + on the node following the feed end in case of an empty feed + + + + + Implementation of the reader logic when in state 'FeedEnd'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.Property if the feed has further instance or property annotations after the feed property + JsonNodeType.EndObject if the feed has no further instance or property annotations after the feed property + Post-Condition: JsonNodeType.EndOfInput for a top-level feed when not reading a nested payload + JsonNodeType.Property more properties exist on the owning entry after the expanded link containing the feed + JsonNodeType.EndObject no further properties exist on the owning entry after the expanded link containing the feed + JsonNodeType.EndArray end of expanded link in request, in this case the feed doesn't actually own the array object and it won't read it. + Any in case of expanded feed in request, this might be the next item in the expanded array, which is not an entry + + + + + Implementation of the reader logic when in state 'EntryStart'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.StartObject Start of the expanded entry of the navigation link to read next. + JsonNodeType.StartArray Start of the expanded feed of the navigation link to read next. + JsonNodeType.PrimitiveValue (null) Expanded null entry of the navigation link to read next. + JsonNodeType.Property The next property after a deferred link or entity reference link + JsonNodeType.EndObject If no (more) properties exist in the entry's content + Post-Condition: JsonNodeType.StartObject Start of the expanded entry of the navigation link to read next. + JsonNodeType.StartArray Start of the expanded feed of the navigation link to read next. + JsonNodeType.PrimitiveValue (null) Expanded null entry of the navigation link to read next. + JsonNodeType.Property The next property after a deferred link or entity reference link + JsonNodeType.EndObject If no (more) properties exist in the entry's content + + + + + Implementation of the reader logic when in state 'EntryEnd'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.EndObject end of object of the entry + JsonNodeType.PrimitiveValue (null) end of null expanded entry + Post-Condition: The reader is positioned on the first node after the entry's end-object node + + + + + Implementation of the reader logic when in state 'NavigationLinkStart'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.StartObject start of an expanded entry + JsonNodeType.StartArray start of an expanded feed + JsonNodeType.PrimitiveValue (null) expanded null entry + JsonNodeType.Property deferred link with more properties in owning entry + JsonNodeType.EndObject deferred link as last property of the owning entry or + reporting projected navigation links missing in the payload + Post-Condition: JsonNodeType.StartArray: start of expanded entry + JsonNodeType.StartObject start of expanded feed + JsonNodeType.PrimitiveValue (null) expanded null entry + JsonNodeType.Property deferred link with more properties in owning entry + JsonNodeType.EndObject deferred link as last property of the owning entry or + reporting projected navigation links missing in the payload + + + + + Implementation of the reader logic when in state 'NavigationLinkEnd'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.EndObject: navigation link is last property in owning entry or + reporting projected navigation links missing in the payload + JsonNodeType.Property: there are more properties after the navigation link in the owning entry + Post-Condition: JsonNodeType.StartObject start of the expanded entry navigation link to read next + JsonNodeType.StartArray start of the expanded feed navigation link to read next + JsonNoteType.Primitive (null) expanded null entry navigation link to read next + JsonNoteType.Property property after deferred link or entity reference link + JsonNodeType.EndObject end of the parent entry + + + + + Implementation of the reader logic when in state 'EntityReferenceLink'. + + true if more items can be read from the reader; otherwise false. + + This method doesn't move the reader + Pre-Condition: JsonNodeType.EndObject: expanded link property is last property in owning entry + JsonNodeType.Property: there are more properties after the expanded link property in the owning entry + Any: expanded collection link - the node after the entity reference link. + Post-Condition: JsonNodeType.EndObject: expanded link property is last property in owning entry + JsonNodeType.Property: there are more properties after the expanded link property in the owning entry + Any: expanded collection link - the node after the entity reference link. + + + + + Reads the start of the JSON array for the content of the feed and sets up the reader state correctly. + + The feed to read the contents for. + The selected properties node capturing what properties should be expanded during template evaluation. + + Pre-Condition: The first node of the feed property value; this method will throw if the node is not + JsonNodeType.StartArray + Post-Condition: The reader is positioned on the first item in the feed, or on the end array of the feed. + + + + + Reads the end of the current feed. + + + + + Reads the start of an expanded entry (null or non-null). + + The navigation link that is being expanded. + + Pre-Condition: JsonNodeType.StartObject The start of the entry object + JsonNodeType.PrimitiveValue (null) The null entry value + Post-Condition: JsonNodeType.StartObject Start of expanded entry of the navigation link to read next + JsonNodeType.StartArray Start of expanded feed of the navigation link to read next + JsonNodeType.PrimitiveValue (null) Expanded null entry of the navigation link to read next, or the null value of the current null entry + JsonNodeType.Property Property after deferred link or expanded entity reference + JsonNodeType.EndObject If no (more) properties exist in the entry's content + + + + + Reads the start of an entry and sets up the reader state correctly + + The duplicate property names checker to use for the entry; + or null if a new one should be created. + The selected properties node capturing what properties should be expanded during template evaluation. + + Pre-Condition: JsonNodeType.StartObject If the entry is in a feed - the start of the entry object + JsonNodeType.Property If the entry is a top-level entry and has at least one property + JsonNodeType.EndObject If the entry is a top-level entry and has no properties + Post-Condition: JsonNodeType.StartObject Start of expanded entry of the navigation link to read next + JsonNodeType.StartArray Start of expanded feed of the navigation link to read next + JsonNodeType.PrimitiveValue (null) Expanded null entry of the navigation link to read next + JsonNodeType.Property Property after deferred link or expanded entity reference + JsonNodeType.EndObject If no (more) properties exist in the entry's content + + + + + Verifies that the current item is an instance, + sets the cardinality of the link (IsCollection property) and moves the reader + into state 'NavigationLinkEnd'. + + A flag indicating whether the link represents a collection or not. + + + + Reads the next item in a navigation link content in a request payload. + + + + + Starts the entry, initializing the scopes and such. This method starts a non-null entry only. + + The duplicate property names checker to use for the entry; + or null if a new one should be created. + The selected properties node capturing what properties should be expanded during template evaluation. + + + + Starts the navigation link. + Does metadata validation of the navigation link and sets up the reader to report it. + + The navigation link info for the navigation link to start. + + + + Replaces the current scope with a new scope with the specified and + the item of the current scope. + + The to use for the new scope. + + + + Called to transition into the EntryEnd state. + + + + + Returns the current entry state. + + + + + Returns current scope cast to JsonLightFeedScope + + + + + Returns current scope cast to JsonLightNavigationLinkScope + + + + + A reader top-level scope; keeping track of the current reader state and an item associated with this state. + + + + + Constructor creating a new reader scope. + + The entity set we are going to read entities for. + The expected type for the scope. + The has the following meaning + it's the expected base type of the top-level entry or entries in the top-level feed. + In all cases the specified type must be an entity type. + + + + The duplicate property names checker for the top level scope represented by the current state. + + + + + A reader entry scope; keeping track of the current reader state and an item associated with this state. + + + + The set of names of the navigation properties we have read so far while reading the entry. + + + + Constructor creating a new reader scope. + + The reader state of the new scope that is being created. + The item attached to this scope. + The entity set we are going to read entities for. + The expected type for the scope. + The duplicate property names checker for this entry scope. + The selected properties node capturing what properties should be expanded during template evaluation. + The has the following meaning + it's the expected base type of the entry. If the entry has no type name specified + this type will be assumed. Otherwise the specified type name must be + the expected type or a more derived type. + In all cases the specified type must be an entity type. + + + + The metadata builder instance for the entry. + + + + + Flag which indicates that during parsing of the entry represented by this state, + any property which is not an instance annotation was found. This includes property annotations + for property which is not present in the payload. + + + This is used to detect incorrect ordering of the payload (for example odata.id must not come after the first property). + + + + + If the reader finds a navigation link to report, but it must first report the parent entry + it will store the navigation link info in this property. So this will only ever store the first navigation link of an entry. + + + + + The duplicate property names checker for the entry represented by the current state. + + + + + The selected properties that should be expanded during template evaluation. + + + + + The set of names of the navigation properties we have read so far while reading the entry. + true if we have started processing missing projected navigation links, false otherwise. + + + + + true if we have started processing missing projected navigation links, false otherwise. + + + + + The entry being read. + + + + + The entity type for the entry (if available). + + + + + A reader feed scope; keeping track of the current reader state and an item associated with this state. + + + + + Constructor creating a new reader scope. + + The item attached to this scope. + The entity set we are going to read entities for. + The expected type for the scope. + The selected properties node capturing what properties should be expanded during template evaluation. + The has the following meaning + it's the expected base type of the entries in the feed. + note that it might be a more derived type than the base type of the entity set for the feed. + In all cases the specified type must be an entity type. + + + + The selected properties that should be expanded during template evaluation. + + + + + A reader scope; keeping track of the current reader state and an item associated with this state. + + + + + Constructor creating a new reader scope. + + The navigation link info attached to this scope. + The entity set we are going to read entities for. + The expected type for the scope. + The has the following meaning + it's the expected base type the entries in the expanded link (either the single entry + or entries in the expanded feed). + In all cases the specified type must be an entity type. + + + + The navigation link info for the navigation link to report. + This is only used on a StartNavigationLink scope in responses. + + + + + Helper methods used by the OData reader for the JsonLight format. + + + + + Converts the given JSON value to the expected type as per OData conversion rules for JSON values. + + Value to the converted. + Type reference to which the value needs to be converted. + The message reader settings used for reading. + The version of the OData protocol used for reading. + true to validate null values; otherwise false. + The name of the property whose value is being read, if applicable (used for error reporting). + Object which is in sync with the property type (modulo the V1 exception of converting numbers to non-compatible target types). + + + + Ensure that the is not null; if so create a new instance. + + The type of the instance to check. + The instance to check for null. + + + + Determines if the specified is an OData annotation property name. + + The property name to test. + true if the property name is an OData annotation property name, false otherwise. + + + + Determines if the specified property name is a name of an annotation property. + + The name of the property. + true if is a name of an annotation property, false otherwise. + + This method returns true both for normal annotation as well as property annotations. + + + + + Validates that the annotation string value is valid. + + The value of the annotation. + The name of the (instance or property) annotation (used for error reporting). + + + + Gets the payload type name for an OData OM instance for JsonLight. + + The payload item to get the type name for. + The type name as read from the payload item (or constructed for primitive items). + + + + Converts the given JSON string value to the expected type as per OData conversion rules for JSON values. + + String value to the converted. + Target type to which the string value needs to be converted. + Object which is in sync with the target type. + + + + Converts the given JSON int value to the expected type as per OData conversion rules for JSON values. + + Int32 value to the converted. + Target type to which the int value needs to be converted. + Type reference to which the value needs to be converted. + Object which is in sync with the property type. + + + + OData JsonLight deserializer for service documents. + + + + + Constructor. + + The JsonLight input context to read from. + + + + Read a service document. + This method reads the service document from the input and returns + an that represents the read service document. + + An representing the read service document. + + Pre-Condition: JsonNodeType.None: assumes that the JSON reader has not been used yet. + Post-Condition: JsonNodeType.EndOfInput + + + + + Read a service document. + This method reads the service document from the input and returns + an that represents the read service document. + + A task which returns an representing the read service document. + + Pre-Condition: JsonNodeType.None: assumes that the JSON reader has not been used yet. + Post-Condition: JsonNodeType.EndOfInput + + + + + Read a service document. + This method reads the service document from the input and returns + an that represents the read service document. + + The duplicate property names checker to use for the top-level scope. + An representing the read service document. + + Pre-Condition: JsonNodeType.Property The property right after the metadata URI property. + JsonNodeType.EndObject The EndObject of the service document. + Post-Condition: Any The node after the EndObject of the service document. + + + + + Reads a resource collection within a service document. + + The to use for parsing annotations within the resource collection object. + A representing the read resource collection. + + Pre-Condition: JsonNodeType.StartObject: The beginning of the JSON object representing the resource collection. + other: Will throw with an appropriate message on any other node type encountered. + Post-Condition: JsonNodeType.StartObject: The beginning of the next resource collection in the array. + JsonNodeType.EndArray: The end of the array. + other: Any other node type occuring after the end object of the current resource collection. (Would be invalid). + + + + + OData JsonLight serializer for service documents. + + + + The metadata uri builder to use. + + + + Constructor. + + The output context to write to. + + + + Writes a service document in JsonLight format. + + The default workspace to write in the service document. + + + + Implementation of the ODataWriter for the JsonLight format. + + + + + Base class for OData writers that verifies a proper sequence of write calls on the writer. + + + + + Base class for OData writers. + + + + Starts the writing of a feed. + The feed or collection to write. + + + Asynchronously start writing a feed. + A task instance that represents the asynchronous write operation. + The feed or collection to write. + + + Starts the writing of an entry. + The entry or item to write. + + + Asynchronously start writing an entry. + A task instance that represents the asynchronous write operation. + The entry or item to write. + + + Starts the writing of a navigation link. + The navigation link to write. + + + Asynchronously start writing a navigation link. + A task instance that represents the asynchronous write operation. + The navigation link to writer. + + + Finishes the writing of a feed, an entry, or a navigation link. + + + Asynchronously finish writing a feed, entry, or navigation link. + A task instance that represents the asynchronous write operation. + + + Writes an entity reference link, which is used to represent binding to an existing resource in a request payload. + The entity reference link to write. + + This method can only be called for writing request messages. The entity reference link must be surrounded + by a navigation link written through WriteStart/WriteEnd. + The will be ignored in that case and the Uri from the will be used + as the binding URL to be written. + + + + Asynchronously writes an entity reference link, which is used to represent binding to an existing resource in a request payload. + A task instance that represents the asynchronous write operation. + The entity reference link to write. + + This method can only be called for writing request messages. The entity reference link must be surrounded + by a navigation link written through WriteStart/WriteEnd. + The will be ignored in that case and the Uri from the will be used + as the binding URL to be written. + + + + Flushes the write buffer to the underlying stream. + + + Flushes the write buffer to the underlying stream asynchronously. + A task instance that represents the asynchronous operation. + + + The output context to write to. + + + True if the writer was created for writing a feed; false when it was created for writing an entry. + + + Stack of writer scopes to keep track of the current context of the writer. + + + + The to use for entries in this feed. + Only applies when writing a top-level feed; otherwise null. + + + + The number of entries which have been started but not yet ended. + + + + Constructor. + + The output context to write to. + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + True if the writer is created for writing a feed; false when it is created for writing an entry. + + + + Flushes the write buffer to the underlying stream. + + + + + Asynchronously flushes the write buffer to the underlying stream. + + A task instance that represents the asynchronous operation. + + + + Start writing a feed. + + Feed/collection to write. + + + + Asynchronously start writing a feed. + + Feed/collection to write. + A task instance that represents the asynchronous write operation. + + + + Start writing an entry. + + Entry/item to write. + + + + Asynchronously start writing an entry. + + Entry/item to write. + A task instance that represents the asynchronous write operation. + + + + Start writing a navigation link. + + Navigation link to write. + + + + Asynchronously start writing a navigation link. + + Navigation link to writer. + A task instance that represents the asynchronous write operation. + + + + Finish writing a feed/entry/navigation link. + + + + + Asynchronously finish writing a feed/entry/navigation link. + + A task instance that represents the asynchronous write operation. + + + + Writes an entity reference link, which is used to represent binding to an existing resource in a request payload. + + The entity reference link to write. + + This method can only be called for writing request messages. The entity reference link must be surrounded + by a navigation link written through WriteStart/WriteEnd. + The will be ignored in that case and the Uri from the will be used + as the binding URL to be written. + + + + + Asynchronously writes an entity reference link, which is used to represent binding to an existing resource in a request payload. + + The entity reference link to write. + A task instance that represents the asynchronous write operation. + + This method can only be called for writing request messages. The entity reference link must be surrounded + by a navigation link written through WriteStart/WriteEnd. + The will be ignored in that case and the Uri from the will be used + as the binding URL to be written. + + + + + This method notifies the listener, that an in-stream error is to be written. + + + This listener can choose to fail, if the currently written payload doesn't support in-stream error at this position. + If the listener returns, the writer should not allow any more writing, since the in-stream error is the last thing in the payload. + + + + + Determines whether a given writer state is considered an error state. + + The writer state to check. + True if the writer state is an error state; otherwise false. + + + + Gets the projected properties annotation for the specified scope. + + The scope to get the projected properties annotation for. + The projected properties annotation for . + + + + Check if the object has been disposed; called from all public API methods. Throws an ObjectDisposedException if the object + has already been disposed. + + + + + Flush the output. + + + + + Flush the output. + + Task representing the pending flush operation. + + + + Start writing an OData payload. + + + + + Start writing an entry. + + The entry to write. + + + + Finish writing an entry. + + The entry to write. + + + + Start writing a feed. + + The feed to write. + + + + Finish writing an OData payload. + + + + + Finish writing a feed. + + The feed to write. + + + + Write a deferred (non-expanded) navigation link. + + The navigation link to write. + + + + Start writing a navigation link with content. + + The navigation link to write. + + + + Finish writing a navigation link with content. + + The navigation link to write. + + + + Write an entity reference link into a navigation link content. + + The parent navigation link which is being written around the entity reference link. + The entity reference link to write. + + + + Create a new feed scope. + + The feed for the new scope. + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + true if the content of the scope to create should not be written. + The selected properties of this scope. + The newly create scope. + + + + Create a new entry scope. + + The entry for the new scope. + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + true if the content of the scope to create should not be written. + The selected properties of this scope. + The newly create scope. + + + + Gets the serialization info for the given entry. + + The entry to get the serialization info for. + The serialization info for the given entry. + + + + Creates a new navigation link scope. + + The writer state for the new scope. + The navigation link for the new scope. + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + true if the content of the scope to create should not be written. + The selected properties of this scope. + The newly created navigation link scope. + + + + Place where derived writers can perform custom steps before the entry is writen, at the begining of WriteStartEntryImplementation. + + Entry to write. + The context object to answer basic questions regarding the type of the entry or feed. + The selected properties of this scope. + + + + Validates the media resource on the entry. + + The entry to validate. + The entity type of the entry. + + + + Gets the type of the entry and validates it against the model. + + The entry to get the type for. + The validated entity type. + + + + Validates that the ODataFeed.DeltaLink is null for the given expanded feed. + + The expanded feed in question. + + + + Verifies that calling WriteStart feed is valid. + + true if the call is to be synchronous; false otherwise. + Feed/collection to write. + + + + Start writing a feed - implementation of the actual functionality. + + The feed to write. + + + + Verifies that calling WriteStart entry is valid. + + true if the call is to be synchronous; false otherwise. + Entry/item to write. + + + + Start writing an entry - implementation of the actual functionality. + + Entry/item to write. + + + + Verifies that calling WriteStart navigation link is valid. + + true if the call is to be synchronous; false otherwise. + Navigation link to write. + + + + Start writing a navigation link - implementation of the actual functionality. + + Navigation link to write. + + + + Verify that calling WriteEnd is valid. + + true if the call is to be synchronous; false otherwise. + + + + Finish writing a feed/entry/navigation link. + + + + + Marks the navigation currently being written as processed in the parent entity's metadata builder. + This is needed so that at the end of writing the entry we can query for all the unwritten navigation properties + defined on the entity type and write out their metadata in fullmetadata mode. + + The navigation link being written. + + + + Verifies that calling WriteEntityReferenceLink is valid. + + The entity reference link to write. + true if the call is to be synchronous; false otherwise. + + + + Write an entity reference link. + + The entity reference link to write. + + + + Verifies that calling Flush is valid. + + true if the call is to be synchronous; false otherwise. + + + + Verifies that a call is allowed to the writer. + + true if the call is to be synchronous; false otherwise. + + + + Enters the 'ExceptionThrown' state and then throws an ODataException with the specified error message. + + The error message for the exception. + The OData item to associate with the 'ExceptionThrown' state. + + + + Checks whether we are currently writing the first top-level element; if so call StartPayload + + + + + Checks whether we are currently writing a navigation link and switches to NavigationLinkWithContent state if we do. + + + What kind of payload kind is being written as the content of a navigation link. + Only Feed, Entry or EntityRefernceLink are allowed. + + + + + Catch any exception thrown by the action passed in; in the exception case move the writer into + state ExceptionThrown and then rethrow the exception. + + The action to execute. + + + + Increments the nested entry count by one and fails if the new value exceeds the maxiumum nested entry depth limit. + + + + + Decrements the nested entry count by one. + + + + + Enter a new writer scope; verifies that the transition from the current state into new state is valid + and attaches the item to the new scope. + + The writer state to transition into. + The item to associate with the new scope. + + + + Leave the current writer scope and return to the previous scope. + When reaching the top-level replace the 'Started' scope with a 'Completed' scope. + + Note that this method is never called once an error has been written or a fatal exception has been thrown. + + + + Promotes the current navigation link scope to a navigation link scope with content. + + + + + Verify that the transition from the current state into new state is valid . + + The new writer state to transition into. + + + + Create a new writer scope. + + The writer state of the scope to create. + The item attached to the scope to create. + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + true if the content of the scope to create should not be written. + The selected properties of this scope. + + + + The current scope for the writer. + + + + + The current state of the writer. + + + + + true if the writer should not write any input specified and should just skip it. + + + + + A flag indicating whether the writer is at the top level. + + + + + Returns the immediate parent link which is being expanded, or null if no such link exists + + + + + Returns the entity type of the immediate parent entry for which a navigation link is being written. + + + + + Returns the entity type of the immediate parent entry for which a navigation link is being written. + + + + + Returns the number of entries seen so far on the current feed scope. + + Can only be accessed on a feed scope. + + + + Checker to detect duplicate property names. + + + + + The entity type of the current entry. + + + + + Returns the parent navigation link scope of an entry in an expanded link (if it exists). + The entry can either be the content of the expanded link directly or nested inside a feed. + + The parent navigation scope of an entry in an expanded link (if it exists). + + + + Validator to validate consistency of collection items (or null if no such validator applies to the current scope). + + + + + An enumeration representing the current state of the writer. + + + + The writer is at the start; nothing has been written yet. + + + The writer is currently writing an entry. + + + The writer is currently writing a feed. + + + The writer is currently writing a navigation link (possibly an expanded link but we don't know yet). + + This state is used when a navigation link was started but we didn't see any children for it yet. + + + + The writer is currently writing a navigation link with content. + + This state is used when a navigation link with either an entity reference link or expanded feed/entry was written. + + + + The writer has completed; nothing can be written anymore. + + + The writer is in error state; nothing can be written anymore. + + + + Lightweight wrapper for the stack of scopes which exposes a few helper properties for getting parent scopes. + + + + + Use a list to store the scopes instead of a true stack so that parent/grandparent lookups will be fast. + + + + + Initializes a new instance of the class. + + + + + Pushes the specified scope onto the stack. + + The scope. + + + + Pops the current scope off the stack. + + The popped scope. + + + + Peeks at the current scope on the top of the stack. + + The current scope at the top of the stack. + + + + Gets the count of items in the stack. + + + + + Gets the scope below the current scope on top of the stack. + + + + + Gets the scope below the parent of the current scope on top of the stack. + + + + + Gets the scope below the current scope on top of the stack or null if there is only one item on the stack or the stack is empty. + + + + + A writer scope; keeping track of the current writer state and an item associated with this state. + + + + The writer state of this scope. + + + The item attached to this scope. + + + Set to true if the content of the scope should not be written. + This is used when writing navigation links which were not projected on the owning entry. + + + The selected properties for the current scope. + + + The entity set we are going to write entities for. + + + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + + + + Constructor creating a new writer scope. + + The writer state of this scope. + The item attached to this scope. + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + true if the content of this scope should not be written. + The selected properties of this scope. + + + + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + + + + + The writer state of this scope. + + + + + The item attached to this scope. + + + + The entity set we are going to write entities for. + + + The selected properties for the current scope. + + + + Set to true if the content of this scope should not be written. + + + + + A scope for an feed. + + + + The serialization info for the current feed. + + + The number of entries in this feed seen so far. + + + Maintains the write status for each annotation using its key. + + + The type context to answer basic questions regarding the type info of the entry. + + + + Constructor to create a new feed scope. + + The feed for the new scope. + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + true if the content of the scope to create should not be written. + The selected properties of this scope. + + + + Gets or creates the type context to answer basic questions regarding the type info of the entry. + + The Edm model to use. + True if writing a response payload, false otherwise. + The type context to answer basic questions regarding the type info of the entry. + + + + The number of entries in this feed seen so far. + + + + + Tracks the write status of the annotations. + + + + + A scope for an entry. + + + + Checker to detect duplicate property names. + + + The serialization info for the current entry. + + + The value from ODataEntry.TypeName. + + + The entity type which was derived from the model (may be either the same as entity type or its base type. + + + The type context to answer basic questions regarding the type info of the entry. + + + Maintains the write status for each annotation using its key. + + + + Constructor to create a new entry scope. + + The entry for the new scope. + The serialization info for the current entry. + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + true if the content of the scope to create should not be written. + true if we are writing a response, false if it's a request. + The instance controlling the behavior of the writer. + The selected properties of this scope. + + + + Gets or creates the type context to answer basic questions regarding the type info of the entry. + + The Edm model to use. + True if writing a response payload, false otherwise. + The type context to answer basic questions regarding the type info of the entry. + + + + The entity type which was derived from the model, i.e. the expected entity type, which may be either the same as entity type or its base type. + For example, if we are writing a feed of Customers and the current entry is of DerivedCustomer, this.EntityTypeFromMetadata would be Customer and this.EntityType would be DerivedCustomer. + + + + + The serialization info for the current entry. + + + + + Checker to detect duplicate property names. + + + + + Tracks the write status of the annotations. + + + + + A scope for a navigation link. + + + + + Constructor to create a new navigation link scope. + + The writer state for the new scope. + The navigation link for the new scope. + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + true if the content of the scope to create should not be written. + The selected properties of this scope. + + + + Clones this navigation link scope and sets a new writer state. + + The to set. + The cloned navigation link scope with the specified writer state. + + + + The output context to write to. + + + + + The JsonLight entry and feed serializer to use. + + + + + Constructor. + + The output context to write to. + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + true if the writer is created for writing a feed; false when it is created for writing an entry. + + + + Check if the object has been disposed; called from all public API methods. Throws an ObjectDisposedException if the object + has already been disposed. + + + + + Flush the output. + + + + + Flush the output. + + Task representing the pending flush operation. + + + + Starts writing a payload (called exactly once before anything else) + + + + + Ends writing a payload (called exactly once after everything else in case of success) + + + + + Place where derived writers can perform custom steps before the entry is writen, at the begining of WriteStartEntryImplementation. + + Entry to write. + The context object to answer basic questions regarding the type of the entry or feed. + The selected properties of this scope. + + + + Validates the media resource on the entry. + + The entry to validate. + The entity type of the entry. + + + + Start writing an entry. + + The entry to write. + + + + Finish writing an entry. + + The entry to write. + + + + Start writing a feed. + + The feed to write. + + + + Finish writing a feed. + + The feed to write. + + + + Start writing a deferred (non-expanded) navigation link. + + The navigation link to write. + + + + Start writing a navigation link with content. + + The navigation link to write. + + + + Finish writing a navigation link with content. + + The navigation link to write. + + + + Write an entity reference link. + + The parent navigation link which is being written around the entity reference link. + The entity reference link to write. + + + + Create a new feed scope. + + The feed for the new scope. + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + true if the content of the scope to create should not be written. + The selected properties of this scope. + The newly create scope. + + + + Create a new entry scope. + + The entry for the new scope. + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + true if the content of the scope to create should not be written. + The selected properties of this scope. + The newly create scope. + + + + Creates a new JSON Light navigation link scope. + + The writer state for the new scope. + The navigation link for the new scope. + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + true if the content of the scope to create should not be written. + The selected properties of this scope. + The newly created JSON Light navigation link scope. + + + + Writes the odata.count annotation for a feed if it has not been written yet (and the count is specified on the feed). + + The feed to write the count for. + The name of the expanded nav property or null for a top-level feed. + + + + Writes the odata.nextLink annotation for a feed if it has not been written yet (and the next link is specified on the feed). + + The feed to write the next link for. + The name of the expanded nav property or null for a top-level feed. + + + + Writes the odata.deltaLink annotation for a feed if it has not been written yet (and the delta link is specified on the feed). + + The feed to write the delta link for. + + + + Validates that the ODataFeed.InstanceAnnotations collection is empty for the given expanded feed. + + The expanded feed in question. + + + + Returns the current JsonLightEntryScope. + + + + + Returns the current JsonLightFeedScope. + + + + + A scope for a JSON lite feed. + + + + true if the odata.count was already written, false otherwise. + + + true if the odata.nextLink was already written, false otherwise. + + + true if the odata.deltaLink was already written, false otherwise. + + + + Constructor to create a new feed scope. + + The feed for the new scope. + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + true if the content of the scope to create should not be written. + The selected properties of this scope. + + + + true if the odata.count annotation was already written, false otherwise. + + + + + true if the odata.nextLink annotation was already written, false otherwise. + + + + + true if the odata.deltaLink annotation was already written, false otherwise. + + + + + A scope for an entry in JSON Light writer. + + + + Bit field of the JSON Light metadata properties written so far. + + + + Constructor to create a new entry scope. + + The entry for the new scope. + The serialization info for the current entry. + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + true if the content of the scope to create should not be written. + true if we are writing a response, false if it's a request. + The instance controlling the behavior of the writer. + The selected properties of this scope. + + + + Marks the as written in this entry scope. + + The metadta property which was written. + + + + Determines if the was already written for this entry scope. + + The metadata property to test for. + true if the was already written for this entry scope; false otherwise. + + + + The entry being written. + + + + + Flag which indicates that the odata.editLink metadata property has been written. + + + + + Flag which indicates that the odata.readLink metadata property has been written. + + + + + Flag which indicates that the odata.mediaEditLink metadata property has been written. + + + + + Flag which indicates that the odata.mediaReadLink metadata property has been written. + + + + + Flag which indicates that the odata.mediaContentType metadata property has been written. + + + + + Flag which indicates that the odata.mediaETag metadata property has been written. + + + + + Enumeration of JSON Light metadata property flags, used to keep track of which properties were already written. + + + + The odata.editLink property. + + + The odata.readLink property. + + + The odata.mediaEditLink property. + + + The odata.mediaReadLink property. + + + The odata.mediaContentType property. + + + The odata.mediaETag property. + + + + A scope for a JSON Light navigation link. + + + + true if we have already written an entity reference link for this navigation link in requests; otherwise false. + + + true if we have written at least one feed for this navigation link in requests; otherwise false. + + + + Constructor to create a new JSON Light navigation link scope. + + The writer state for the new scope. + The navigation link for the new scope. + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + true if the content of the scope to create should not be written. + The selected properties of this scope. + + + + Clones this JSON Light navigation link scope and sets a new writer state. + + The writer state to set. + The cloned navigation link scope with the specified writer state. + + + + true if we have already written an entity reference link for this navigation link in requests; otherwise false. + + + + + true if we have written at least one feed for this navigation link in requests; otherwise false. + + + + + Helper methods used by the OData writer for the JsonLight format. + + + + + Writes the odata.type instance annotation with the specified type name. + + The JSON writer to write to. + The type name to write. + + + + Writes the odata.type propert annotation for the specified property with the specified type name. + + The JSON writer to write to. + The name of the property for which to write the odata.type annotation. + The type name to write. + + + + Writes the 'value' property name. + + The JSON writer to write to. + + + + Write a JSON property name which represents a property annotation. + + The JSON writer to write to. + The name of the property to annotate. + The name of the annotation to write. + + + + Enumeration describing the various serialization formats for dates in JSON + + + + + Represents a DateTime value in the OData format of \/Date(ticksrepresentingdatetime)\/ + + + + + Represents a DateTime value in the ISO 8601 format of YYYY-MM-DDThh:mm:ss.sTZD eg 1997-07-16T19:20:30.45+01:00 + + + + + Class with the responsibility of resolving media types (MIME types) into formats and payload kinds. + + + + application/atom+xml media type + + + application/xml media type + + + text/xml media type + + + application/json media type + + + application/json;odata=verbose media type + + + + An array that maps stores the supported media types for all . + + + The set of supported media types is ordered (desc) by their precedence/priority with respect to (1) format and (2) media type. + As a result the default media type for a given payloadKind is the first entry in the MediaTypeWithFormat array. + + + + Cache for MediaTypeResolvers for each version. + + + + The version the media type resolver is used with. + + + + + Array of supported media types and formats for each payload kind. + The index into the array matches the order of the ODataPayloadKind enum. + + + + + The set of payload kinds which are supported for the JSON formats. + + + + + Creates a new media type resolver for writers with the mappings for the specified version. + + The version used to write the payload. + + + + Creates a new media type resolver for readers with the mappings for the specified version and behavior kind. + + The version used to read the payload. + The format behavior kind used. + + + + Creates a new media type resolver for writers with the mappings for the specified version. + + The version used to write the payload. + A new media type resolver for readers with the mappings for the specified version and behavior kind. + + + + Creates a new media type resolver for readers with the mappings for the specified version and behavior kind. + + The version used to read the payload. + The format behavior kind used. + A new media type resolver for readers with the mappings for the specified version and behavior kind. + + + + Gets the supported media types and formats for the given payload kind. + + The payload kind to get media types for. + An array of media type / format pairs, sorted by priority. + + + + Checks for an illegal media type that cannot be caught during content negotiation/resolution + since it would match an unsupported media type. + + The parsed media type to check. + true if the media type is illegal (and we should fail); otherwise false. + + + + Clones the default media types. + + The cloned media type table. + + + + Inserts the specified media type before the first occurrence of . + + The media type list to insert into. + The media type to insert. + The format of the media type before which should be inserted. + + + + Configure the media type tables so that Json Light is the first JSON format in the table. + + + This is only used in V3 and beyond. + + + + + Adds the given media type/format for all the payload kinds which support JSON. + + The media type/format pair to add. + + + + Inserts the given media type/format for all the payload kinds which support JSON before the first media type with the given format. + + The media type/format pair to add. + The format of the media type before which should be inserted. + + + + Additional media types per payload kind for the WCF DS client on pre-v3 payloads. + Anything that normally accepts application/atom+xml should also accept application/xml, and vice versa. + + + + + Accesses the default media type resolver. + + + + + A helper class to associate a with a media type. + + + + The media type. + + + + The for this media type. + + + + + A dictionary implementation with special key-matching semantics; it accepts case-insensitive matches + but prefers a case-sensitive one (if present). + + As an implementation choice we did not use a second dictionary to maintain a cache of case-insensitive + keys since we don't want to pay the price of an extra dictionary for cases where the looked up keys + match case sensitively (as per spec, should be the default case). + + + The backing dictionary using case-sensitive key comparison. + + + + Constructor. + + + + + Adds an element with the provided key and value to the dictionary. + + The object to use as the key of the element to add. + The object to use as the value of the element to add. + + + + Determines whether the dictionary contains an element with the specified key using case-sensitive comparison. + + The key to locate in the dictionary. + true if the dictionary contains an element with the ; otherwise, false. + This method will only try to match the key using case-sensitive comparison. + + + + Removes the entry with the specified from the headers. + + The key of the item to remove. + true if the item with the specified was removed; otherwise false. + + + + Gets the value associated with the specified key. + + The key whose value to get. + When this method returns, the value associated with the specified key, if the key is found; + otherwise, the default value for the type of the value parameter. This parameter is passed uninitialized. + true if the dictionary contains an element with the specified key; otherwise, false. + + + + Returns an enumerator that iterates through the collection. + + An enumerator that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through the collection. + + An enumerator that can be used to iterate through the collection. + + + + Finds in the case sensitive dictionary ignoring the case for comparison. + + The key to find. + The key from the case sensitive dictionary that matched the or null if no match was found. + This method throws if multiple case insensitive matches for the specified exist. + + + + Gets or sets the element with the specified key. + + The key of the element to get or set. + The element with the specified key. + + + + Factory class for the various wrapper streams around the actual message stream. + + + + + Creates a non-disposing stream. + + The inner to wrap. + A stream wrapping the that ignores calls to Dispose. + + + + Creates a stream with a given maximum size. + + The inner to wrap. + The maximum number of bytes to be read from the . + A stream wrapping the that + enforces the maximum number of bytes to be read from the stream. + + + + Creates a non-disposing stream with a given maximum size. + + The inner to wrap. + The maximum number of bytes to be read from the . + A stream wrapping the that ignores calls to Dispose and + enforces the maximum number of bytes to be read from the stream. + + + + Checks whether the provided stream already ignores calls to Dispose. + + The to check. + true if the ignores calls to Dispose; otherwise false. + + + + Stream wrapper that supports counting the total number of bytes read from the stream and ensures + that they don't exceed a specified maximum (used for security purposes) and ignoring calls + to Dispose if the underlying stream should not be disposed. + + + + The maximum number of bytes to be read from the stream before reporting an error. + + + true to not dispose the inner stream when Dispose is called; otherwise false. + + + Stream that is being wrapped. + + + The total number of bytes read from the stream so far. + + + + Constructs an instance of the byte counting stream wrapper class. + + Stream that is being wrapped. + true if calls to Dispose should be ignored; otherwise false. + The maximum number of bytes to be read from the stream before reporting an error. + + + + Flush the stream to the underlying storage. + + + + + Reads data from the stream. + + The buffer to read the data to. + The offset in the buffer to write to. + The number of bytes to read. + The number of bytes actually read. + + + + Begins a read operation from the stream. + + The buffer to read the data to. + The offset in the buffer to write to. + The number of bytes to read. + The async callback. + The async state. + Async result representing the asynchornous operation. + + + + Ends a read operation from the stream. + + The async result representing the read operation. + The number of bytes actually read. + + + + Seeks the stream. + + The offset to seek to. + The origin of the seek operation. + The new position in the stream. + + + + Sets the length of the stream. + + The length in bytes to set. + + + + Writes to the stream. + + The buffer to get data from. + The offset in the buffer to start from. + The number of bytes to write. + + + + Begins an asynchronous write operation to the stream. + + The buffer to get data from. + The offset in the buffer to start from. + The number of bytes to write. + The async callback. + The async state. + Async result representing the write operation. + + + + Ends the asynchronous write operation. + + Async result representing the write operation. + + + + Dispose this wrapping stream and the underlying stream. + + If 'true' this method is called from user code; if 'false' it is called by the runtime. + + + + Increases the number of total bytes read from the stream. + + The number of bytes read from the stream during the last read operation. + Since we don't own the underlying stream we also have to prepare for streams returning < 0 bytes read. + + + + Determines if the stream can read. + + + + + Determines if the stream can seek. + + + + + Determines if the stream can write. + + + + + Returns the length of the stream. + + + + + Gets or sets the position in the stream. + + + + true if the wrapping stream ignores calls to Dispose; otherwise false. + + + + OData Verbose JSON deserializer for detecting the payload kind of a JSON payload. + + + + + OData Verbose JSON deserializer for properties and value types. + + + + + Base class for all OData Verbose JSON deserializers. + + + + The JSON input context to use for reading. + + + + Constructor. + + The JSON input context to read from. + + + + Read the start of the top-level data wrapper in JSON responses. + + true if we are deserializing a nested payload, e.g. an entry, a feed or a collection within a parameters payload. + + Pre-Condition: JsonNodeType.None: assumes that the JSON reader has not been used yet when not reading a nested payload. + Post-Condition: The reader is positioned on the first node of the payload (this can be the first node or the value of the 'd' property node) + + + + + Read the start of the top-level data wrapper in JSON responses. + + true if we are deserializing a nested payload, e.g. an entry, a feed or a collection within a parameters payload. + true if the response "d" wrapper should be in the payload, false otherwise. + + Pre-Condition: JsonNodeType.None: assumes that the JSON reader has not been used yet when not reading a nested payload. + Post-Condition: The reader is positioned on the first node of the payload (this can be the first node or the value of the 'd' property node) + + + + + Reads the end of the top-level data wrapper in JSON responses. + + true if we are deserializing a nested payload, e.g. an entry, a feed or a collection within a parameters payload. + + Pre-Condition: any node: when reading response or a nested payload, will fail if find anything else then EndObject. + JsonNodeType.EndOfInput: otherwise + Post-Condition: JsonNodeType.EndOfInput + + + + + Reads the end of the top-level data wrapper in JSON responses. + + true if we are deserializing a nested payload, e.g. an entry, a feed or a collection within a parameters payload. + true if the response "d" wrapper should be in the payload, false otherwise. + + Pre-Condition: any node: when reading response or a nested payload, will fail if find anything else then EndObject. + JsonNodeType.EndOfInput: otherwise + Post-Condition: JsonNodeType.EndOfInput + + + + + Given a URI from the payload, this method will try to make it absolute, or fail otherwise. + + The URI string from the payload to process. + An absolute URI to report. + + + + Given a URI from the payload, this method will try to make it absolute, or fail otherwise. + + The URI string from the payload to process. + true if the payload URI needs to be translated into an absolute URI; otherwise false. + An absolute URI to report. + + + + Asserts that the JSON reader is positioned on one of the specified node types. + + The node types which should appear at this point. + + + + Returns the which is to be used to read the content of the message. + + + + + The Verbose Json input context to use for reading. + + + + + The current recursion depth of values read by this deserializer, measured by the number of complex, collection, JSON object and JSON array values read so far. + + + + + Constructor. + + The JSON input context to read from. + + + + This method creates an reads the property from the input and + returns an representing the read property. + + The producing the property to be read. + The expected type reference of the property to read. + An representing the read property. + + + + Reads an entry, complex or collection content in buffering mode until it finds the type name in the __metadata object + or hits the end of the object. If called for a primitive value, returns 'null' (since primitive types cannot have + type names in JSON) + + The type name as read from the __metadata object; null if none was found. + + This method does not move the reader. + Pre-Condition: JsonNodeType.PrimitiveValue A primitive value + JsonNodeType.StartObject Any non-primitive value + Post-Condition: JsonNodeType.PrimitiveValue A primitive value + JsonNodeType.StartObject Any non-primitive value + + + + + Reads a primitive value, complex value or collection. + + The expected type reference of the property value. + The duplicate property names checker to use - if null the method should create a new one if necessary. + The collection validator instance if no expected item type has been specified; otherwise null. + true to validate null values; otherwise false. + The name of the property whose value is being read, if applicable (used for error reporting). + The value of the property read. + + Pre-Condition: JsonNodeType.PrimitiveValue - the value of the property is a primitive value + JsonNodeType.StartObject - the value of the property is an object + JsonNodeType.StartArray - the value of the property is an array - method will fail in this case. + Post-Condition: almost anything - the node after the property value. + + Returns the value of the property read, which can be one of: + - null + - primitive value + - + - + + + + + Reads the type name from the value of a __metadata property. All other properties in the __metadata property value are ignored. + + The type name found, or null if none was found. + + This method can be used in buffering and non-buffering mode. + + Pre-Condition: Fails if the current node is not a JsonNodeType.StartObject + Post-Condition: JsonNodeType.Property - the next property after the __metadata property value. + JsonNodeType.EndObject - if the __metadata property was the last property in the object. + + + + + Reads a primitive value. + + The expected type reference of the value. + true to validate null values; otherwise false. + The name of the property whose value is being read, if applicable (used for error reporting). + The value of the primitive value. + + Pre-Condition: none - Fails if the current node is not a JsonNodeType.PrimitiveValue + Post-Condition: almost anything - the node after the primitive value. + + Made internal only for testability. + + + + + Reads a collection value. + + The collection type reference of the value. + The type name read from the payload. + The serialization type name for the collection value (possibly null). + The value of the collection. + + Pre-Condition: Fails if the current node is not a JsonNodeType.StartObject + Post-Condition: almost anything - the node after the collection value (after the EndObject) + + + + + Reads a complex value. + + The expected type reference of the value. + The type name read from the payload. + The serialization type name for the collection value (possibly null). + The duplicate property names checker to use - if null the method should create a new one if necessary. + The value of the complex value. + + Pre-Condition: Fails if the current node is not a JsonNodeType.StartObject or JsonNodeType.PrimitiveValue (with null value) + Post-Condition: almost anything - the node after the complex value (after the EndObject) + + + + + Reads a primitive, complex or collection value. + + The expected type reference of the property value. + The duplicate property names checker to use - if null the method should create a new one if necessary. + The collection validator instance if no expected item type has been specified; otherwise null. + true to validate null values; otherwise false. + The name of the property whose value is being read, if applicable. + The value of the property read. + + Pre-Condition: JsonNodeType.PrimitiveValue - the value of the property is a primitive value + JsonNodeType.StartObject - the value of the property is an object + JsonNodeType.StartArray - the value of the property is an array - method will fail in this case. + Post-Condition: almost anything - the node after the property value. + + Returns the value of the property read, which can be one of: + - null + - primitive value + - + - + + + + + Determines the value kind for a non-entity value (that is top-level property value, property value on a complex type, item in a collection) + + The type kind of the property value. + + Doesn't move the JSON reader. + Pre-Condition: JsonNodeType.PrimitiveValue + JsonNodeType.StartObject + Post-Condition: JsonNodeType.PrimitiveValue + JsonNodeType.StartObject + + + + + Determines if the top-level property payload should be read as usual, or without the property wrapper. + + The expected type reference for the property value to read. + true if the property payload should be read without the property wrapper, false if it should be read as usual with the property wrapper. + This method is to support backward compat behavior for WCF DS Server, which can read open property values without property wrapper. + + + + Increases the recursion depth of values by 1. This will throw if the recursion depth exceeds the current limit. + + + + + Decreases the recursion depth of values by 1. + + + + + Asserts that the current recursion depth of values is zero. This should be true on all calls into this class from outside of this class. + + + + The set of detected payload kinds. + + + + Constructor. + + The Verbose JSON input context to read from. + + + + Detects the payload kind(s). + + An enumerable of zero, one or more payload kinds that were detected from looking at the payload in the message stream. + + + + Detects whether a JSON payload where the current node is a start array node represents + a feed, a set of entity reference links, a collection or a combination of them. + + true if the array is a top-level array; if it is a property value false. + + This method does not move the reader. + Pre-Condition: JsonNodeType.StartArray The StartArray node of the feed or entity reference links array (if at the top-level) + Post-Condition: JsonNodeType.StartArray The StartArray node of the feed or entity reference links array (if at the top-level) + + + + + Read the value of the __metadata property and compute the payload kind based on the type name. + + This method checks whether it can determine the type kind from the type name; if we + find a primitive or collection type we set the result to empty since such payloads are not supported. + Otherwise we'll treat the payload as an entry since top-level complex values are not supported either. + Pre-Condition: Any The first node of the __metadata property value + Post-Condition: Property or EndObject This method reads the entire value of the __metadata object and positions + the reader on the next property or on the EndObject node if this is the last property. + + + + + Process the array value of an 'EntitySets' property to determine whether it should be treated as service document payload. + + + This method does not move the Json reader. + Pre-Condition: StartArray The start of the array value of the 'EntitySets' property + Post-Condition: StartArray The start of the array value of the 'EntitySets' property + + + + + Adds the set of specified payload kinds to the detected payload kinds (if the specified + payload kinds are valid for the current request/response). + + The payload kinds to add. + + + + Removes the set of specified payload kinds from the detected payload kinds (if the specified + payload kinds are valid for the current request/response). + + The payload kinds to remove. + + + + Adds or removes the set of specified payload kinds to/from the detected payload kinds (if the specified + payload kinds are valid for the current request/response). + + The function that implements the 'Add' or 'Remove' action. + The payload kinds to add/remove. + + + Quotas to use for limiting resource consumption when reading or writing OData messages. + + + The maximum number of top level query operations and changesets allowed in a single batch. + + + The maximum number of operations allowed in a single changeset. + + + The maximum depth of nesting allowed when reading or writing recursive payloads. + + + The maximum number of bytes that should be read from the message. + + + The maximum number of entity mapping attributes to be found for an entity type (on the type itself and all its base types). + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + The instance to copy. + + + Gets or sets the maximum number of top level query operations and changesets allowed in a single batch. + The maximum number of top level query operations and changesets allowed in a single batch. + + + Gets or sets the maximum number of operations allowed in a single changeset. + The maximum number of operations allowed in a single changeset. + + + Gets or sets the maximum depth of nesting allowed when reading or writing recursive payloads. + The maximum depth of nesting allowed when reading or writing recursive payloads. + + + Gets or sets the maximum number of bytes that should be read from the message. + The maximum number of bytes that should be read from the message. + + + Gets or sets the maximum number of entity mapping attributes to be found for an entity type (on the type itself and all its base types). + The maximum number of entity mapping attributes to be found for an entity type. + + + + Represents the set of information available for payload kind detection. + + This class is used to represent the input to run payload kind detection using + . See the documentation of that method for more + information. + + + The parsed content type as . + + + The encoding specified in the charset parameter of contentType or the default encoding from MediaType. + + + The being used for reading the message. + + + The for the payload. + + + The possible payload kinds based on content type negotiation. + + + Format specific state created during payload kind detection for that format. + + This instance will be stored on the message reader and passed to the format if it will be used + for actually reading the payload. + Format can store information which was already extracted from the payload during payload kind detection + and which it wants to avoid to recompute again during actual reading. + + + + + Constructor. + + The parsed content type as . + The encoding from the content type or the default encoding from . + The being used for reading the message. + The for the payload. + The possible payload kinds based on content type negotiation. + + + + The encoding derived from the content type or the default encoding. + + The encoding derived from the content type or the default encoding. + + + + Sets a format specific state created during payload kind detection. + + A format specific state, the value is opaque to the message reader, it only stores the reference. + + The state will be stored on the message reader and passed to the format if it will be used + for actually reading the payload. + Format can store information which was already extracted from the payload during payload kind detection + and which it wants to avoid to recompute again during actual reading. + + + + + The being used for reading the message. + + + + + The for the payload. + + + + + The possible payload kinds based on content type negotiation. + + + + + The being used for reading the message. + + + + + The format specific payload kind detection state. + + + + + An enumeration that lists the internal errors that are shared between the OData library and the query library. + + + + Unreachable codepath in EdmLibraryExtensions.ToTypeReference (unsupported type kind). + + + Unreachable codepath in EdmLibraryExtensions.ToClrType (unsupported type kind). + + + Unreachable codepath in EdmLibraryExtensions.PrimitiveTypeReference (unsupported primitive type kind). + + + Unreachable codepath in EdmLibraryExtensions.IsAssignableFrom(IEdmPrimitiveType, IEdmPrimitiveType). + + + Unreachable codepath in EdmLibraryExtensions.IsAssignableFrom(IEdmType, IEdmType). + + + Unreachable codepath in EdmLibraryExtensions.BaseType. + + + Unreachable codepath in EdmLibraryExtensions.Clone for unexpected type kind. + + + Unreachable codepath in EdmLibraryExtensions.Clone for unexpected primitive type kind. + + + Represents the result of running payload kind detection for a specified payload kind and format. + This class is used to represent the result of running payload kind detection using + . See the documentation of that method for more + information. + + + The detected payload kind. + + + The format for the detected payload kind. + + + + Constructor. + + The detected payload kind. + The format for the detected payload kind. + + + Gets the detected payload kind. + The detected payload kind. + + + Gets the format for the detected payload kind. + The format for the detected payload kind. + + + + Helper class to verify that all items of a collection are of the same kind and type. + + This class is only used if no expected item type is specified for the collection; + otherwise all items are already validated against the expected item type. + + + + The base type for all entries in the feed. + + + + + Constructor. + + + + + Validates the type of an entry in a top-level feed. + + The type of the entry. + + + + OData ATOM serializer for ATOM metadata in a service document + + + + + Constructor. + + The output context to write to. + + + + Writes the ATOM metadata for a single workspace element. + + The workspace element to get the metadata for and write it. + + + + Writes the ATOM metadata for a single (resource) collection element. + + The collection element to get the metadata for and write it. + + + + OData ATOM serializer for service documents. + + + + + The serializer for service document ATOM metadata. + + + + + Constructor. + + The output context to write to. + + + + Writes a service document in ATOM/XML format. + + The default workspace to write in the service document. + + + + Extension methods for the JSON writer. + + + + + Writes the json object value to the . + + The to write to. + Writes the given json object value to the underlying json writer. + Called when the top-level object is started to possibly inject first property into the object. + The OData protocol version to be used for writing payloads. + + + + Writes a primitive value. + + The to write to. + The value to write. + The OData protocol version to be used for writing payloads. + + + + Writes the json array value. + + The to write to. + Writes the json array value to the underlying json writer. + The OData protocol version to be used for writing payloads. + + + + Writes the json value (primitive, IDictionary or IEnumerable) to the underlying json writer. + + The to write to. + value to write. + The OData protocol version to be used for writing payloads. + + + + OData Verbose JSON serializer for collections. + + + + + OData Verbose JSON serializer for properties and value types. + + + + + Base class for all OData Verbose JSON serializers. + + + + + The Verbose JSON output context to write to. + + + + + Constructor. + + The output context to write to. + + + + Writes the start of the entire JSON payload. + + + + + Writes the start of the entire JSON payload. + + When set to true the "d" response wrapper won't be written even in responses + + + + Writes the end of the enitire JSON payload. + + + + + Writes the end of the enitire JSON payload. + + When set to true the "d" response wrapper won't be written even in responses + + + + Helper method to write the data wrapper around a JSON payload. + + The action that writes the actual JSON payload that is being wrapped. + + + + Helper method to write the data wrapper around a JSON payload. + + The action that writes the actual JSON payload that is being wrapped. + When set to true the "d" response wrapper won't be written even in responses + + + + Write a top-level error message. + + The error instance to write. + A flag indicating whether error details should be written (in debug mode only) or not. + + + + Converts the specified URI into an absolute URI. + + The uri to process. + An absolute URI which is either the specified if it was absolute, + or it's a combination of the BaseUri and the relative . + The return value is the string representation of the URI. + This method will fail if the specified is relative and there's no base URI available. + + + + Returns the string representation of the URI; Converts the URI into an absolute URI if the parameter is set to true. + + The uri to process. + true, if the URI needs to be translated into an absolute URI; false otherwise. + If the parameter is set to true, then a string representation of an absolute URI which is either the + specified if it was absolute, or it's a combination of the BaseUri and the relative ; + otherwise a string representation of the specified . + + This method will fail if is set to true and the specified is relative and there's no base URI available. + + + + Returns the which is to be used to write the content of the message. + + + + + Returns the which is to be used to write the content of the message. + + + + + The current recursion depth of values written by this serializer. + + + + + Constructor. + + The output context to write to. + + + + Write an to the given stream. This method creates an + async buffered stream and writes the property to it. + + The property to write. + + + + Writes property names and value pairs. + + The of the entry (or null if not metadata is available). + The enumeration of properties to write out. + + Whether the properties are being written for complex value. Also used for detecting whether stream properties + are allowed as named stream properties should only be defined on ODataEntry instances + + The checker instance for duplicate property names. + Set of projected properties, or null if all properties should be written. + + + + Writes a primitive value. + Uses a registered primitive type converter to write the value if one is registered for the type, otherwise directly writes the value. + + The value to write. + The collection validator instance. + The expected type reference of the primitive value. + + + + Writes out the value of a complex property. + + The complex value to write. + The metadata type for the complex value. + true if the type name belongs to an open property. + The checker instance for duplicate property names. + The collection validator instance to validate the type names and type kinds of collection items; null if no validation is needed. + The current recursion depth should be a value, measured by the number of complex and collection values between + this complex value and the top-level payload, not including this one. + + + + Writes out the value of a collection property. + + The collection value to write. + The metadata type reference for the collection. + true if the type name belongs to an open property. + The current recursion depth is measured by the number of complex and collection values between + this one and the top-level payload, not including this one. + + + + Writes the metadata content for a media resource or a named stream + + The stream reference value for which to write the metadata + + + + Writes the etag property with the given string value. + + The name of the ETag, e.g. media_etag or etag + The value of the ETag + + + + Asserts that the current recursion depth of values is zero. This should be true on all calls into this class from outside of this class. + + + + + Writes a name/value pair for a property. + + The property to write out. + The of the entry or complex type containing the property (or null if not metadata is available). + Should pass in true if we are writing a property of an ODataEntry instance, false otherwise. + Named stream properties should only be defined on ODataEntry instances. + The checker instance for duplicate property names. + Set of projected properties, or null if all properties should be written. + + + + Writes a stream property value. + + The stream reference value to be written + + + + Increases the recursion depth of values by 1. This will throw if the recursion depth exceeds the current limit. + + + + + Decreases the recursion depth of values by 1. + + + + + Constructor. + + The output context to write to. + + + + Writes the start of a collection. + + + + + Writes the end of a collection. + + + + + OData Verbose JSON serializer for entity reference links. + + + + + Constructor. + + The output context to write to. + + + + Writes a single top-level Uri in response to a $links query. + + The entity reference link to write out. + + + + Writes a set of links (Uris) in response to a $links query; includes optional count and next-page-link information. + + The set of entity reference links to write out. + + + + Writes a single Uri in response to a $links query. + + The entity reference link to write out. + + + + Writes a set of links (Uris) in response to a $links query; includes optional count and next-page-link information. + + The set of entity reference links to write out. + true if the 'results' wrapper should be included into the payload; otherwise false. + + + + OData Verbose JSON serializer for entries and feeds. + + + + + Constructor. + + The output context to write to. + + + + Writes the __metadata property and its content for an entry + + The entry for which to write the metadata. + Set of projected properties, or null if all properties should be written. + The entity type of the entry to write. + The duplicate property names checker to use. + + + + Writes "actions" or "functions" metadata. + + The operations to write. + The name of the property used for the operations. + true when writing the entry's actions; false when writing the entry's functions. + true if we're writing JSON lite, false if we're writing verbose JSON. + + + + Writes the metadata content for an association link + + The association link to write. + The checker instance for duplicate property names. + + + + Writes a group of operation (all actions or all functions) that have the same "metadata". + + + Expects the actions or functions scope to already be open. + + A grouping of operations that are all actions or all functions and share the same "metadata". + + + + Writes an operation (an action or a function). + + + Expects the write to already have written the "rel value" and opened an array. + + The operation to write. + + + + Verbose JSON format output context. + + + + + The oracle to use to determine the type name to write for entries and values. + + + + + Constructor. + + The format for this output context. + The text writer to write to. + Configuration settings of the OData writer. + The model to use. + + + + Constructor. + + The format for this output context. + The message stream to write the payload to. + The encoding to use for the payload. + Configuration settings of the OData writer. + true if writing a response message; otherwise false. + true if the output should be written synchronously; false if it should be written asynchronously. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs written to the payload. + + + + Writes an into the message payload. + + The error to write. + + A flag indicating whether debug information (e.g., the inner error from the ) should + be included in the payload. This should only be used in debug scenarios. + + + This method is called if the ODataMessageWriter.WriteError is called once some other + write operation has already started. + The method should write the in-stream error representation for the specific format into the current payload. + Before the method is called no flush is performed on the output context or any active writer. + It is the responsibility of this method to flush the output before the method returns. + + + + + Writes an into the message payload. + + The error to write. + + A flag indicating whether debug information (e.g., the inner error from the ) should + be included in the payload. This should only be used in debug scenarios. + + Task which represents the pending write operation. + + This method is called if the ODataMessageWriter.WriteError is called once some other + write operation has already started. + The method should write the in-stream error representation for the specific format into the current payload. + Before the method is called no flush is performed on the output context or any active writer. + It is the responsibility of this method to make sure that all the data up to this point are written before + the in-stream error is written. + It is the responsibility of this method to flush the output before the task finishes. + + + + + Creates an to write a feed. + + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + The created writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Asynchronously creates an to write a feed. + + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + A running task for the created writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Creates an to write an entry. + + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + The created writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Asynchronously creates an to write an entry. + + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + A running task for the created writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Creates an to write a collection of primitive or complex values (as result of a service operation invocation). + + The item type of the collection being written or null if no metadata is available. + The created collection writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Asynchronously creates an to write a collection of primitive or complex values (as result of a service operation invocation). + + The item type of the collection being written or null if no metadata is available. + A running task for the created collection writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Creates an to write a parameter payload. + + The function import whose parameters will be written. + The created parameter writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Asynchronously creates an to write a parameter payload. + + The function import whose parameters will be written. + A running task for the created parameter writer. + The write must flush the output when it's finished (inside the last Write call). + + + + Writes a service document with the specified + as message payload. + + The default workspace to write in the service document. + It is the responsibility of this method to flush the output before the method returns. + + + + Asynchronously writes a service document with the specified + as message payload. + + The default workspace to write in the service document. + A task representing the asynchronous operation of writing the service document. + It is the responsibility of this method to flush the output before the task finishes. + + + + Writes an as message payload. + + The property to write. + It is the responsibility of this method to flush the output before the method returns. + + + + Asynchronously writes an as message payload. + + The property to write + A task representing the asynchronous operation of writing the property. + It is the responsibility of this method to flush the output before the task finishes. + + + + Writes an as the message payload. + + The error to write. + + A flag indicating whether debug information (e.g., the inner error from the ) should + be included in the payload. This should only be used in debug scenarios. + + It is the responsibility of this method to flush the output before the method returns. + + + + Asynchronously writes an as the message payload. + + The error to write. + + A flag indicating whether debug information (e.g., the inner error from the ) should + be included in the payload. This should only be used in debug scenarios. + + A task representing the asynchronous operation of writing the error. + It is the responsibility of this method to flush the output before the task finishes. + + + + Writes the result of a $links query as the message payload. + + The entity reference links to write as message payload. + The entity set of the navigation property. + The navigation property for which the entity reference links are being written, or null if none is available. + It is the responsibility of this method to flush the output before the method returns. + + + + Asynchronously writes the result of a $links query as the message payload. + + The entity reference links to write as message payload. + The entity set of the navigation property. + The navigation property for which the entity reference links are being written, or null if none is available. + A task representing the asynchronous writing of the entity reference links. + It is the responsibility of this method to flush the output before the task finishes. + + + + Writes a singleton result of a $links query as the message payload. + + The entity reference link to write as message payload. + The entity set of the navigation property. + The navigation property for which the entity reference link is being written, or null if none is available. + It is the responsibility of this method to flush the output before the method returns. + + + + Asynchronously writes a singleton result of a $links query as the message payload. + + The link result to write as message payload. + The entity set of the navigation property. + The navigation property for which the entity reference link is being written, or null if none is available. + A running task representing the writing of the link. + It is the responsibility of this method to flush the output before the task finishes. + + + + Creates an to write a feed. + + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + The created writer. + + + + Creates an to write an entry. + + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + The created writer. + + + + Creates an to write a collection of primitive or complex values (as result of a service operation invocation). + + The item type of the collection being written or null if no metadata is available. + The created collection writer. + + + + Creates an to write a parameter payload. + + The function import whose parameters will be written. + The created parameter writer. + + + + Writes an in-stream error. + + The error to write. + + A flag indicating whether debug information (e.g., the inner error from the ) should + be included in the payload. This should only be used in debug scenarios. + + + + + Writes an as message payload. + + The property to write. + + + + Writes a service document with the specified + as message payload. + + The default workspace to write in the service document. + + + + Writes an as the message payload. + + The error to write. + + A flag indicating whether debug information (e.g., the inner error from the ) should + be included in the payload. This should only be used in debug scenarios. + + + + + Writes the result of a $links query as the message payload. + + The entity reference links to write as message payload. + + + + Writes a singleton result of a $links query as the message payload. + + The entity reference link to write as message payload. + + + + Returns the oracle to use when determining the type name to write for entries and values. + + + + + OData Verbose JSON serializer for service documents. + + + + + Constructor. + + The output context to write to. + + + + Writes a service document in JSON format. + + The default workspace to write in the service document. + + + + Stream wrapper for the message stream to ignore the Stream.Dispose method so that readers/writers on top of + it can be disposed without affecting it. + + + + + Stream that is being wrapped. + + + + + Constructs an instance of the stream wrapper class. + + Stream that is being wrapped. + + + + Flush the stream to the underlying storage. + + + + + Reads data from the stream. + + The buffer to read the data to. + The offset in the buffer to write to. + The number of bytes to read. + The number of bytes actually read. + + + + Begins a read operation from the stream. + + The buffer to read the data to. + The offset in the buffer to write to. + The number of bytes to read. + The async callback. + The async state. + Async result representing the asynchornous operation. + + + + Ends a read operation from the stream. + + The async result representing the read operation. + The number of bytes actually read. + + + + Seeks the stream. + + The offset to seek to. + The origin of the seek operation. + The new position in the stream. + + + + Sets the length of the stream. + + The length in bytes to set. + + + + Writes to the stream. + + The buffer to get data from. + The offset in the buffer to start from. + The number of bytes to write. + + + + Begins an asynchronous write operation to the stream. + + The buffer to get data from. + The offset in the buffer to start from. + The number of bytes to write. + The async callback. + The async state. + Async result representing the write operation. + + + + Ends the asynchronous write operation. + + Async result representing the write operation. + + + + Determines if the stream can read. + + + + + Determines if the stream can seek. + + + + + Determines if the stream can write. + + + + + Returns the length of the stream. + + + + + Gets or sets the position in the stream. + + + + + RAW format output context. + + + + The message output stream. + + + The XmlWriter to write to. + + + + Constructor. + + The format for this output context. + The message stream to write the payload to. + The encoding to use for the payload. + Configuration settings of the OData writer. + true if writing a response message; otherwise false. + true if the output should be written synchronously; false if it should be written asynchronously. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs written to the payload. + + + + Synchronously flush the writer. + + + + + Writes an into the message payload. + + The error to write. + + A flag indicating whether debug information (e.g., the inner error from the ) should + be included in the payload. This should only be used in debug scenarios. + + + This method is called if the ODataMessageWriter.WriteError is called once some other + write operation has already started. + The method should write the in-stream error representation for the specific format into the current payload. + Before the method is called no flush is performed on the output context or any active writer. + It is the responsibility of this method to flush the output before the method returns. + + + + + Writes the metadata document as the message body. + + It is the responsibility of this method to flush the output before the method returns. + + + + Perform the actual cleanup work. + + If 'true' this method is called from user code; if 'false' it is called by the runtime. + + + + RAW format output context. Used by RAW values and batch. + + + + The encoding to use for the output. + + + The message output stream. + + + The asynchronous output stream if we're writing asynchronously. + + + The output stream to write to (both sync and async cases). + + + Listener to notify when writing in-stream errors. + + + RawValueWriter used to write actual values to the stream. + + + + Constructor. + + The format for this output context. + The message stream to write the payload to. + The encoding to use for the payload. + Configuration settings of the OData writer. + true if writing a response message; otherwise false. + true if the output should be written synchronously; false if it should be written asynchronously. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs written to the payload. + + + + Synchronously flush the writer. + + + + + Asynchronously flush the writer. + + Task which represents the pending flush operation. + The method should not throw directly if the flush operation itself fails, it should instead return a faulted task. + + + + Writes an into the message payload. + + The error to write. + + A flag indicating whether debug information (e.g., the inner error from the ) should + be included in the payload. This should only be used in debug scenarios. + + + This method is called if the ODataMessageWriter.WriteError is called once some other + write operation has already started. + The method should write the in-stream error representation for the specific format into the current payload. + Before the method is called no flush is performed on the output context or any active writer. + It is the responsibility of this method to flush the output before the method returns. + + + + + Writes an into the message payload. + + The error to write. + + A flag indicating whether debug information (e.g., the inner error from the ) should + be included in the payload. This should only be used in debug scenarios. + + Task which represents the pending write operation. + + This method is called if the ODataMessageWriter.WriteError is called once some other + write operation has already started. + The method should write the in-stream error representation for the specific format into the current payload. + Before the method is called no flush is performed on the output context or any active writer. + It is the responsibility of this method to make sure that all the data up to this point are written before + the in-stream error is written. + It is the responsibility of this method to flush the output before the task finishes. + + + + + Creates an to write a batch of requests or responses. + + The boundary string for the batch structure itself. + The created batch writer. + We don't plan to make this public! + The write must flush the output when it's finished (inside the last Write call). + + + + Asynchronously creates an to write a batch of requests or responses. + + The boundary string for the batch structure itself. + A running task for the created batch writer. + We don't plan to make this public! + The write must flush the output when it's finished (inside the last Write call). + + + + Writes a single value as the message body. + + The value to write. + It is the responsibility of this method to flush the output before the method returns. + + + + Asynchronously writes a single value as the message body. + + The value to write. + A running task representing the writing of the value. + It is the responsibility of this method to flush the output before the task finishes. + + + + Initialized a new text writer over the message payload stream. + + This can only be called if the text writer was not yet initialized or it has been closed. + It can be called several times with CloseWriter calls in between though. + + + + Closes the text writer. + + + + + Verifies the output context was not yet disposed, fails otherwise. + + + + + Flushes all buffered data to the underlying stream synchronously. + + + + + Flushes all buffered data to the underlying stream asynchronously. + + Task which represents the pending operation. + + + + Perform the actual cleanup work. + + If 'true' this method is called from user code; if 'false' it is called by the runtime. + + + + Writes a single value as the message body. + + The value to write. + Once the method returns all the data should be written, the only other call after this will be Dispose on the output context. + + + + Creates a batch writer. + + The boundary string for the batch structure itself. + The newly created batch writer. + + + + The output stream to write the payload to. + + + + + The text writer to use to write text into the payload. + + + InitializeRawValueWriter must be called before this is used. + + Also, within this class we should be using RawValueWriter for everything. Ideally we wouldn't leak the TextWriter out, but + the Batch writer needs it at the moment. + + + + Represents the behavior of readers when reading property with null value. + + + + The default behavior - this means validate the null value against the declared type + and then report the null value. + + + + + This means to not report the value and not validate it against the model. + + + This setting can be used to correctly work with clients that send null values + for uninitialized properties in requests instead of omitting them altogether. + + + + + This means to report the value, but not validate it against the model. + + + + + The verbose JSON OData format. + + + + + The text representation - the name of the format. + + The name of the format. + + + + Detects the payload kinds supported by this format for the specified message payload. + + The response message with the payload stream. + Additional information available for the payload kind detection. + The set of s that are supported with the specified payload. + + + + Detects the payload kinds supported by this format for the specified message payload. + + The request message with the payload stream. + Additional information available for the payload kind detection. + The set of s that are supported with the specified payload. + + + + Creates an instance of the input context for this format. + + The to read. + The message to use. + The content type of the message to read. + The encoding to use. + Configuration settings of the OData reader. + The OData protocol version to be used for reading the payload. + true if reading a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs read from the payload. + Format specific state stored during payload kind detection + using the . + The newly created input context. + + + + Creates an instance of the output context for this format. + + The message to use. + The specific media type being written. + The encoding to use. + Configuration settings of the OData writer. + true if writing a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs written to the payload. + The newly created output context. + + + + Asynchronously detects the payload kinds supported by this format for the specified message payload. + + The response message with the payload stream. + Additional information available for the payload kind detection. + A task that when completed returns the set of s + that are supported with the specified payload. + + + + Asynchronously detects the payload kinds supported by this format for the specified message payload. + + The request message with the payload stream. + Additional information available for the payload kind detection. + A task that when completed returns the set of s + that are supported with the specified payload. + + + + Asynchronously creates an instance of the input context for this format. + + The to read. + The message to use. + The content type of the message to read. + The encoding to use. + Configuration settings of the OData reader. + The OData protocol version to be used for reading the payload. + true if reading a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs read from the payload. + Format specific state stored during payload kind detection + using the . + Task which when completed returned the newly created input context. + + + + Creates an instance of the output context for this format. + + The message to use. + The specific media type being written. + The encoding to use. + Configuration settings of the OData writer. + true if writing a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs written to the payload. + Task which represents the pending create operation. + + + + Detects the payload kind(s) from the message stream. + + The message stream to read from for payload kind detection. + true if reading a response message; otherwise false. + true if the input should be read synchronously; false if it should be read asynchronously. + Additional information available for the payload kind detection. + An enumerable of zero, one or more payload kinds that were detected from looking at the payload in the message stream. + + + + The $batch OData format. + + + + + The text representation - the name of the format. + + The name of the format. + + + + Detects the payload kinds supported by this format for the specified message payload. + + The response message with the payload stream. + Additional information available for the payload kind detection. + The set of s that are supported with the specified payload. + + + + Detects the payload kinds supported by this format for the specified message payload. + + The request message with the payload stream. + Additional information available for the payload kind detection. + The set of s that are supported with the specified payload. + + + + Creates an instance of the input context for this format. + + The to read. + The message to use. + The content type of the message to read. + The encoding to use. + Configuration settings of the OData reader. + The OData protocol version to be used for reading the payload. + true if reading a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs read from the payload. + Format specific state stored during payload kind detection + using the . + The newly created input context. + + + + Creates an instance of the output context for this format. + + The message to use. + The specific media type being written. + The encoding to use. + Configuration settings of the OData writer. + true if writing a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs written to the payload. + The newly created output context. + + + + Asynchronously detects the payload kinds supported by this format for the specified message payload. + + The response message with the payload stream. + Additional information available for the payload kind detection. + A task that when completed returns the set of s + that are supported with the specified payload. + + + + Asynchronously detects the payload kinds supported by this format for the specified message payload. + + The request message with the payload stream. + Additional information available for the payload kind detection. + A task that when completed returns the set of s + that are supported with the specified payload. + + + + Asynchronously creates an instance of the input context for this format. + + The to read. + The message to use. + The content type of the message to read. + The encoding to use. + Configuration settings of the OData reader. + The OData protocol version to be used for reading the payload. + true if reading a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs read from the payload. + Format specific state stored during payload kind detection + using the . + Task which when completed returned the newly created input context. + + + + Creates an instance of the output context for this format. + + The message to use. + The specific media type being written. + The encoding to use. + Configuration settings of the OData writer. + true if writing a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs written to the payload. + Task which represents the pending create operation. + + + + Detects the payload kind(s) from the message stream. + + The content type of the message. + An enumerable of zero, one or more payload kinds that were detected from looking at the payload in the message stream. + + + + The metadata OData format. + + + + + The text representation - the name of the format. + + The name of the format. + + + + Detects the payload kinds supported by this format for the specified message payload. + + The response message with the payload stream. + Additional information available for the payload kind detection. + The set of s that are supported with the specified payload. + + + + Detects the payload kinds supported by this format for the specified message payload. + + The request message with the payload stream. + Additional information available for the payload kind detection. + The set of s that are supported with the specified payload. + + + + Creates an instance of the input context for this format. + + The to read. + The message to use. + The content type of the message to read. + The encoding to use. + Configuration settings of the OData reader. + The OData protocol version to be used for reading the payload. + true if reading a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs read from the payload. + Format specific state stored during payload kind detection + using the . + The newly created input context. + + + + Creates an instance of the output context for this format. + + The message to use. + The specific media type being written. + The encoding to use. + Configuration settings of the OData writer. + true if writing a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs written to the payload. + The newly created output context. + + + + Asynchronously detects the payload kinds supported by this format for the specified message payload. + + The response message with the payload stream. + Additional information available for the payload kind detection. + A task that when completed returns the set of s + that are supported with the specified payload. + + + + Asynchronously detects the payload kinds supported by this format for the specified message payload. + + The request message with the payload stream. + Additional information available for the payload kind detection. + A task that when completed returns the set of s + that are supported with the specified payload. + + + + Asynchronously creates an instance of the input context for this format. + + The to read. + The message to use. + The content type of the message to read. + The encoding to use. + Configuration settings of the OData reader. + The OData protocol version to be used for reading the payload. + true if reading a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs read from the payload. + Format specific state stored during payload kind detection + using the . + Task which when completed returned the newly created input context. + + + + Creates an instance of the output context for this format. + + The message to use. + The specific media type being written. + The encoding to use. + Configuration settings of the OData writer. + true if writing a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs written to the payload. + Task which represents the pending create operation. + + + + Detects the payload kind(s) from the message stream. + + The message stream to read from for payload kind detection. + Additional information available for the payload kind detection. + An enumerable of zero or one payload kinds depending on whether the metadata payload kind was detected or not. + + + Enumerates the behavior of readers when reading undeclared property. + + + + The default behavior - the reader will fail if it finds a property which is not declared by the model + and the type is not open. + + + + + The reader will skip reading the property if it's not declared by the model and the current type is not open. + + + This flag can only be used when reading responses. + All information about the undeclared property is going to be ignored, so for example ATOM metadata related to that property + will not be reported either. + + + + + The reader will read and report link properties which are not declared by the model. + + + This flag can only be used when reading responses. + If a link property in the payload is defined in the model it will be read as usual. If it is not declared + it will still be read and reported, but it won't be validated against the model. + + Link properties are: + - Navigation links + - Association links + - Stream properties + + + + This type provides constants used in URI query expressions. + + + "$it" keyword for expressions. + + + "add" keyword for expressions. + + + "and" keyword for expressions. + + + "asc" keyword for expressions. + + + "desc" keyword for expressions. + + + "div" keyword for expressions. + + + "mod" keyword for expressions. + + + "mul" keyword for expressions. + + + "not" keyword for expressions. + + + "or" keyword for expressions. + + + "sub" keyword for expressions. + + + '-' constant to represent an negate unary operator. + + + '=' constant to represent an assignment in name=value. + + + ',' constant to represent an value list separator. + + + '/' constant to represent the forward slash used in a query. + + + '(' constant to represent an open parenthesis. + + + ')' constant to represent an closed parenthesis. + + + '?' constant to represent the start of the query part. + + + '&' constant to represent the concatenation of query parts. + + + '\'' constant to represent a single quote as prefix/suffix for literals. + + + "''" constant to represent a single-quote escape character in a string literal. + + + " " constant to represent a space character in a Uri query part. + + + The 'allpages' value for the '$inlinecount' query option + + + The 'none' value for the '$inlinecount' query option + + + "eq" keyword for expressions. + + + "false" keyword for expressions. + + + "gt" keyword for expressions. + + + "ge" keyword for expressions. + + + "lt" keyword for expressions. + + + "le" keyword for expressions. + + + "ne" keyword for expressions. + + + "null" keyword for expressions. + + + "true" keyword for expressions. + + + "cast" function + + + "isof function + + + Spatial length function + + + Spatial intersects function. + + + "INF" literal used to represent infinity. + + + "NaN" literal used to represent not-a-number values. + + + 'datetime' constant prefixed to datetime literals. + + + 'datetimeoffset' constant prefixed to datetimeoffset literals. + + + 'time' constant prefixed to time literals. + + + 'geometry' constant prefixed to geometry literals. + + + 'geography' constant prefixed to geography literals. + + + 'guid' constant prefixed to guid literals. + + + 'X': Prefix to binary type string representation. + + + 'binary' constant prefixed to binary literals. + + + 'L': Suffix for long (int64) type's string representation + + + 'f': Suffix for float (single) type's string representation + + + 'D': Suffix for double (Real) type's string representation + + + 'M': Suffix for decimal type's string representation + + + 'datetime' constant prefixed to datetime literals. + + + the filter query option + + + the orderby query option + + + the top query option + + + the skip query option + + + the inlinecount query option + + + the select query option + + + the expand query option + + + + A stream handed to clients from ODataBatchOperationMessage.GetStream or ODataBatchOperationMessage.GetStreamAsync. + This stream communicates status changes to the owning batch writer (via IODataBatchOperationListener) + to properly flush buffered data and move the batch writer's state machine forward. + + + + + A stream handed to clients from ODataBatchOperationMessage.GetStream or ODataBatchOperationMessage.GetStreamAsync. + This stream communicates status changes to an IODataBatchOperationListener instance. + + + + Listener interface to be notified of operation changes. + + + + Constructor. + + Listener interface to be notified of operation changes. + + + + Seeks the stream. This operation is not supported by this stream. + + The offset to seek to. + The origin of the seek operation. + The new position in the stream. + + + + Disposes the object. + + True if called from Dispose; false if called form the finalizer. + + + + Validates that the stream was not already disposed. + + + + The batch stream underlying this operation stream. + + + + Constructor. + + The underlying stream to write the message to. + Listener interface to be notified of operation changes. + + + + Sets the length of the stream. + + The length in bytes to set. + + + + Writes to the stream. + + The buffer to get data from. + The offset in the buffer to start from. + The number of bytes to write. + + + + Writes to the stream. + + The buffer to get data from. + The offset in the buffer to start from. + The number of bytes to write. + The callback to be called when the asynchronous operation completes. + A custom state object to be associated with the asynchronous operation. + An for the asynchronous writing of the buffer to the stream. + + + + Finish the asynchronous write operation. + + The returned from BaginWrite. + + + + Reads data from the stream. This operation is not supported by this stream. + + The buffer to read the data to. + The offset in the buffer to write to. + The number of bytes to read. + The number of bytes actually read. + + + + Flush the stream to the underlying batch stream. + + + + + Dispose the operation stream. + + If 'true' this method is called from user code; if 'false' it is called by the runtime. + + + + Determines if the stream can read - this one can't + + + + + Determines if the stream can seek - this one can't + + + + + Determines if the stream can write - this one can + + + + + Returns the length of the stream. + + + + + Gets or sets the position in the stream. Setting of the position is not supported since the stream doesn't support seeking. + + + + + A stream handed to clients from ODataBatchOperationMessage.GetStream or ODataBatchOperationMessage.GetStreamAsync. + This stream communicates status changes to the owning batch reader (via IODataBatchOperationListener) + to prevent clients to use the batch reader while a content stream is still in use. + + + + + The batch stream underlying this operation stream. + + + + + Constructor. + + The underlying stream to read from. + Listener interface to be notified of operation changes. + + + + Flush the stream; not supported for a read stream. + + + + + Sets the length of the stream. + + The length in bytes to set. + + + + Writes to the stream. + + The buffer to get data from. + The offset in the buffer to start from. + The number of bytes to write. + + + + Create a batch operation read stream over the specified batch stream with a given content length. + + The batch stream underlying the operation stream to create. + The batch operation listener. + The content length of the operation stream. + A to read the content of a batch operation from. + + + + Create a batch operation read stream over the specified batch stream using the batch delimiter to detect the end of the stream. + + The batch stream underlying the operation stream to create. + The batch operation listener. + A to read the content of a batch operation from. + + + + Determines if the stream can read - this one can + + + + + Determines if the stream can seek - this one can't + + + + + Determines if the stream can write - this one can't + + + + + Returns the length of the stream. Not supported by this stream. + + + + + Gets or sets the position in the stream. Not supported by this stream. + + + + + A batch operation stream with the content length specified. + + + + The length of the operation content. + + + + Constructor. + + The underlying batch stream to write the message to. + Listener interface to be notified of operation changes. + The total length of the stream. + + + + Reads data from the stream. + + The buffer to read the data to. + The offset in the buffer to write to. + The number of bytes to read. + The number of bytes actually read. + + + + A batch operation read stream with no content length so we have to check for the boundary. + + + + true if the stream has been exhausted and no further reads can happen; otherwise false. + + + + Constructor. + + The underlying batch stream to write the message to. + Listener interface to be notified of operation changes. + + + + Reads data from the stream. + + The buffer to read the data to. + The offset in the buffer to write to. + The number of bytes to read. + The number of bytes actually read. + + + + Helper methods used by the ODataBatchWriter and ODataBatchReader (and related classes). + + + + + Creates the URI for a batch request operation. + + The uri to process. + The base Uri to use. + An optional custom URL resolver to resolve URLs for writing them into the payload. + An URI to be used in the request line of a batch request operation. It uses the + first and falls back to the defaullt URI building schema if the no URL resolver is specified or the URL resolver + returns null. In the default scheme, the method either returns the specified if it was absolute, + or it's combination with the if it was relative. + + This method will fail if no custom resolution is implemented and the specified is + relative and there's no base URI available. + + + + + Creates a batch operation stream from the specified batch stream. + + The batch stream to create the operation read stream for. + The headers of the current part; based on the header we create different, optimized stream implementations. + The operation listener to be passed to the newly created read stream. + A new instance. + + + + Creates a batch operation write stream over the specified output stream. + + The output stream to create the operation write stream over. + The operation listener to be passed to the newly created write stream. + A new instance. + + + + Grows the specified byte array by the specified amount. + + The byte array to grow. + The number of bytes currently in the buffer. + The number of bytes to be added to the array. + + + + An enumeration representing the result of a scan operation through + the batch reader stream's buffer. + + + + No match with the requested boundary was found (not even a partial one). + + + A partial match with the requested boundary was found. + + + A complete match with the requested boundary was found. + + This is only returned if we could also check whether the boundary is an end + boundary or not; otherwise a partial match is returned. + + + + + This class represents the internal buffer of the . + + + + The size of the look-ahead buffer. + + + Length of the longest supported line terminator character sequence; makes the code easier to read. + + + The length of two '-' characters to make the code easier to read. + + + The byte array storing the actual bytes of the buffer. + + + The current position inside the buffer. + This is the position of the byte that is the next to be read. + + + The number of (not yet consumed) bytes currently in the buffer. + + + + Skip to the specified position in the buffer. + Adjust the current position and the number of bytes in the buffer. + + The position to skip to. + + + + Refills the buffer from the specified stream. + + The stream to refill the buffer from. + The index in the current buffer starting from which the + currently buffered data should be preserved. + true if the underlying stream got exhausted while refilling. + This method will first shift any data that is to be preserved to the beginning + of the buffer and then refill the rest of the buffer from the . + + + + Scans the current buffer for a line end. + + The start position of the line terminator or -1 if not found. + The end position of the line terminator or -1 if not found. + An enumeration value indicating whether the line termintor was found completely, partially or not at all. + + + + Scans the current buffer for the specified boundary. + + The boundary strings to search for; this enumerable is sorted from the inner-most boundary + to the top-most boundary. The boundary strings don't include the leading line terminator or the leading dashes. + Stop if no boundary (or boundary start) is found after this number of bytes. + The start position of the boundary or -1 if not found. + Note that the start position is the first byte of the leading line terminator. + The end position of the boundary or -1 if not found. + Note that the end position is the last byte of the trailing line terminator. + true if the boundary is an end boundary (followed by two dashes); otherwise false. + true if the detected boundary is the parent boundary; otherwise false. + An enumeration value indicating whether the boundary was completely, partially or not found in the buffer. + + + + Scans the current buffer for a boundary start, which is either a line feed or two dashes (since we don't require the leading line feed). + + The index at which to start scanning for the boundary start. + Stop if no boundary start was found after this number of non end-of-line bytes. + The start position of the line end or -1 if not found. + The start position of the boundary delimiter or -1 if not found. + An enumeration value indicating whether the boundary start was completely, partially or not found in the buffer. + + + + Scans the current buffer for a line end. + + The index at which to start scanning for the line terminator. + Stop if no line end (or beginning of line end) was found after this number of non end-of-line bytes. + true if only whitespace data bytes are expected before the end-of-line characters; otherwise false. + The start position of the line terminator or -1 if not found. + The end position of the line terminator or -1 if not found. + true if the end of the buffer was reached while scanning for the line end; otherwise false. + An enumeration value indicating whether the line termintor was found completely, partially or not at all. + This method only returns if we found the start + of a line terminator at the last character in the buffer. + + + + Check whether the bytes in the buffer at the specified start index match the expected boundary string. + + The start of the line feed preceding the boundary (if present). + The start position of the boundary delimiter. + The boundary string to check for. + If a match is detected, the start of the boundary delimiter, + i.e., either the start of the leading line feed or of the leading dashes. + If a match is detected, the position of the boundary end; otherwise -1. + true if the detected boundary is an end boundary; otherwise false. + An indicating whether a match, a partial match or no match was found. + + + + Try to match the specified boundary string starting at the specified position. + + The boundary string to search for; this does not include + the leading line terminator or the leading dashes. + The index at which to start matching the boundary. + The number of characters to match. + true if the boundary string is used in an end boundary; otherwise false. + true if it was established that the buffer starting at + matches the ; otherwise false. + This method also returns false if the boundary string was completly matched against the + buffer but it could not be determined whether it is used in an end boundary or not. + + + + Shifts all bytes in the buffer after a specified start index to the beginning of the buffer. + + The start index where to start shifting. + + + + The byte array that acts as the actual storage of the buffered data. + + + + + The current position inside the buffer. + + This is the position of the byte that is the next to be read. + + + + The number of (not yet consumed) bytes currently in the buffer. + + + + + Indexer into the byte buffer. + + The position in the buffer to get. + The byte at position in the buffer. + + + + Class used by the to read the various pieces of a batch payload. + + + This stream separates a batch payload into multiple parts by scanning ahead and matching + a boundary string against the current payload. + + + + + The default length for the line buffer byte array used to read lines; expecting lines to normally be less than 2000 bytes. + + + + + The byte array used for reading lines from the stream. We cache the byte array on the stream instance + rather than allocating a new one for each ReadLine call. + + + + The input context to read the content from. + + + The boundary string for the batch structure itself. + + + The buffer used by the batch reader stream to scan for boundary strings. + + + The encoding to use to read from the batch stream. + + + The boundary string for a changeset (or null if not in a changeset part). + + + The encoding for a given changeset. + + + + true if the underlying stream was exhausted during a read operation; we won't try to read from the + underlying stream again once it was exhausted. + + + + + Constructor. + + The input context to read the content from. + The boundary string for the batch structure itself. + The encoding to use to read from the batch stream. + + + + Resets the changeset boundary at the end of the changeset. + + + + + Skips all the data in the stream until a boundary is found. + + true if the boundary that was found is an end boundary; otherwise false. + true if the detected boundary is a parent boundary (i.e., the expected boundary is missing). + true if a boundary was found; otherwise false. + + + + Reads from the batch stream while ensuring that we stop reading at each boundary. + + The byte array to read bytes into. + The offset in the buffer where to start reading bytes into. + The number of bytes to read. + The number of bytes actually read. + + + + Reads from the batch stream without checking for a boundary delimiter since we + know the length of the stream. + + The byte array to read bytes into. + The offset in the buffer where to start reading bytes into. + The number of bytes to read. + The number of bytes actually read. + + + + Reads the headers of a part. + + true if the start of a changeset part was detected; otherwise false. + + + + Reads the headers of a batch part or an operation. + + A dictionary of header names to header values; never null. + + + + Read and return the next line from the batch stream, skipping all empty lines. + + This method will throw if end-of-input was reached while looking for the next line. + The text of the first non-empty line (not including any terminating newline characters). + + + + Parses a header line and validates that it has the correct format. + + The header line to validate. + The name of the header. + The value of the header. + + + + Reads a line (all bytes until a line feed) from the underlying stream. + + Returns the string that was read from the underyling stream (not including a terminating line feed), or null if the end of input was reached. + + + + Ensure that a batch encoding exists; if not, detect it from the first couple of bytes of the stream. + + + + Detect the encoding based data from the stream. + The encoding discovered from the bytes in the buffer or the fallback encoding. + + We don't have to skip a potential preamble of the encoding since the batch reader + will skip over everything (incl. the potential preamble) until it finds the first + boundary. + + + + + Reads and validates the headers of a batch part. + + true if the headers indicate a changset part; otherwise false. + A dictionary of header names to header values; never null. + + + + Validates the headers that have been read for a part. + + The set of headers to validate. + true if the headers indicate a changset part; otherwise false. + The set of validated headers. + + An operation part is required to have content type 'application/http' and content transfer + encoding 'binary'. A changeset is required to have content type 'multipart/mixed'. + Note that we allow additional headers for batch parts; clients of the library can choose + to be more strict. + + + + + Parse the content type header value to retrieve the boundary and encoding of a changeset. + + The content type to parse. + + + + The boundary string for the batch structure itself. + + + + + The boundary string for the current changeset (only set when reading a changeset + or an operation in a changeset). + + When not reading a changeset (or operation in a changeset) this field is null. + + + + The current boundary string to be used for reading with delimiter. + + This is the changeset boundary when reading a changeset or the batch boundary otherwise. + + + + The current encoding to use when reading from the stream. + + This is the changeset encoding when reading a changeset or the batch encoding otherwise. + + + Enumeration with all the states the batch reader can be in. + + + The state the batch reader is in after having been created. + + + The batch reader detected an operation. + In this state the start boundary, the request/response line + and the operation headers have already been read. + + + The batch reader detected the start of a change set. + In this state the start boundary and the change set + headers have already been read. + + + The batch reader completed reading a change set. + + + The batch reader completed reading the batch payload. + The batch reader cannot be used in this state anymore. + + + The batch reader encountered an error reading the batch payload. + The batch reader cannot be used in this state anymore. + + + + ODataParameterWriter for the Verbose JSON format. + + + + + The output context to write to. + + + + + The JSON property and value serializer to use. + + + + + Constructor. + + The output context to write to. + The function import whose parameters will be written. + + + + Check if the object has been disposed; called from all public API methods. Throws an ObjectDisposedException if the object + has already been disposed. + + + + + Flush the output. + + + + + Flush the output. + + Task representing the pending flush operation. + + + + Start writing an OData payload. + + + + + Finish writing an OData payload. + + + + + Writes a value parameter (either primitive or complex) + + The name of the parameter to write. + The value of the parameter to write. + The expected type reference of the parameter value. + + + + Creates a format specific to write the value of a collection parameter. + + The name of the collection parameter to write. + The type reference of the expected item type or null if no expected item type exists. + The newly created . + + + + Class to represent a null value with or without type information for URI paremeters. + + This class is only intended for use as a sentinal for null values in URI parameters. It cannot be used elsewhere. + + + + String representation of the type of this null value. 'null' indicates that no type information was provided. + + + + + Handles serialization and deserialization for types derived from Geometry. + This file is currently compiled by ODataLib and Astoria server, because it contains + functionality related to both serialization and deserialization, but deserialization + is not yet integrated into Astoria. Once that integration happens this functionality + should be fully contained within ODataLib only. + + + + + Interface used for serialization and deserialization of primitive types. + + + + + Create an instance of a primitive type from the value in an Xml reader. + + The Xml reader to use to read the value. + An instance of the primitive type. + + + + Write the Atom representation of an instance of a primitive type to an XmlWriter. + + The instance to write. + The Xml writer to use to write the instance. + + + + Write the Verbose Json representation of an instance of a primitive type to a json writer. + + The instance to write. + Instance of JsonWriter. + Type name of the instance to write. If the type name is null, the type name will not be written in the payload. + The OData protocol version to be used for writing payloads. + + + + Write the Json Lite representation of an instance of a primitive type to a json writer. + + The instance to write. + Instance of JsonWriter. + The OData protocol version to be used for writing payloads. + + + + Create a Geometry instance from the value in an Xml reader. + + The Xml reader to use to read the value. + In order to be consistent with how we are reading other types of property values elsewhere in the product, the reader + is expected to be placed at the beginning of the element when entering this method. After this method call, the reader will be placed + at the EndElement, such that the next Element will be read in the next Read call. The deserializer that uses this value expects + the reader to be in these states when entering and leaving the method. + + Geometry instance that was read. + + + + Write the Atom representation of an instance of a primitive type to an XmlWriter. + + The instance to write. + The Xml writer to use to write the instance. + + + + Write the Verbose Json representation of an instance of a primitive type to a json object. + + The instance to write. + Instance of JsonWriter. + Type name of the instance to write. If the type name is null, the type name will not be written in the payload. + The OData protocol version to be used for writing payloads. + + + + Write the Json Lite representation of an instance of a primitive type to a json object. + + The instance to write. + Instance of JsonWriter. + The OData protocol version to be used for writing payloads. + + + + OData ATOM deserializer for ATOM metadata on feeds. + + + + + Base class for all OData ATOM Metadata deserializers. + + + + The empty namespace used for attributes in no namespace. + + + Schema namespace for Atom. + + + + Constructor. + + The ATOM input context to read from. + + + + Reads a person (author/contributor) element. + + The EPM target path segment for the element to read, or null if no EPM for that element is defined. + The person metadata object with the read values. + + Pre-Condition: XmlNodeType.Element (atom:contributor/atom:author) - the atom:author/atom:contributor element to read. + Post-Condition: Any - the node after the atom:author/atom:contributor element which was read. + + + + + Reads the element value as DateTimeOffset value. + + The DateTimeOffset value of the element. + + Pre-Condition: XmlNodeType.Element - the element which value to read. + Post-Condition: Any - the node after the element. + + This method is not used in WCF DS client mode. + + + + + Reads the element value as of a date construct as string value. + + The string value of the date construct element. + + Pre-Condition: XmlNodeType.Element - the element which value to read. + Post-Condition: Any - the node after the element. + + This method is only used in WCF DS client mode. + + + + + Read the ATOM text construct element. + + The element read represented as ATOM text construct. + + Pre-Condition: XmlNodeType.Element - the element to read. + Post-Condition: Any - the node after the element. + + + + + Reads the value of the current XML element and returns it as a string. + + The string value read. + + Pre-Condition: XmlNodeType.Element - the element which value to read. + Post-Condition: Any - the node after the element. + + + + + Reads an "atom:title" element and returns an . + + An with the title information. + + Pre-Condition: XmlNodeType.Element - The start of the atom:title element. + Post-Condition: Any - The next node after the atom:title element. + + + + + Determines if we need to read a child element (either for EPM or for ATOM metadata). + + The parent EPM target path segment. + The name of the element/segment to read. + The EPM target path subsegment which describes the element, or null if there's none. + true if the subelement should be read, false otherwise. + + + + Flag indicating if ATOM metadata is required to be read by the user. + + + + The empty namespace used for attributes in no namespace. + + + + Constructor. + + The ATOM input context to read from. + Whether this deserializer is reading feed metadata for a source element (true) or a feed element (false). + + + + Reads an element in the ATOM namespace in feed or source content. + + The atom feed metadata object to store metadata details in. + + Pre-Condition: XmlNodeType.Element (atom:*) - the ATOM element to read. + Post-Condition: Any - the node after the ATOM element which was read. + + If the the property InSourceElement is true (i.e., we're reading within source content), then the value + of the atom:id element will be stored in the feed metadata as SourceId, otherwise it will be ignored. + + + + + Reads the atom:link element and returns a new ATOM link metadata object. + + The value of the rel attribute for the link element. + The value of the href attribute for the link element. + An instance storing the information about this link. + + Pre-Condition: XmlNodeType.Element (atom:link) - the atom:link element to read. + Post-Condition: Any - the node after the ATOM element which was read. + + + + + Reads an atom:author element in a feed. + + The feed metadata to augment. + + Pre-Condition: XmlNodeType.Element (atom:author) - the atom:author element to read. + Post-Condition: Any - the node after the atom:author element which was read. + + + + + Reads an atom:category element in a feed. + + The feed metadata to augment. + + Pre-Condition: XmlNodeType.Element (atom:category) - the atom:category element to read. + Post-Condition: Any - the node after the atom:category which was read. + + + + + Reads an atom:contributor element in a feed. + + The feed metadata to augment. + + Pre-Condition: XmlNodeType.Element (atom:contributor) - the atom:contributor element to read. + Post-Condition: Any - the node after the atom:contributor element which was read. + + + + + Reads an atom:generator element in a feed. + + The feed metadata to augment. + + Pre-Condition: XmlNodeType.Element (atom:generator) - the atom:generator element to read. + Post-Condition: Any - the node after the atom:generator element which was read. + + + + + Reads an atom:icon element in a feed. + + The feed metadata to augment. + + Pre-Condition: XmlNodeType.Element (atom:icon) - the atom:icon element to read. + Post-Condition: Any - the node after the atom:icon element which was read. + + + + + Reads an atom:id element in a source element. + + The feed metadata to augment. + + Pre-Condition: XmlNodeType.Element (atom:icon) - the atom:icon element to read. + Post-Condition: Any - the node after the atom:icon element which was read. + + + + + Reads an atom:link element into the Links collection of feed metadata (i.e., links that are not special to the OData protocol). + + The feed metadata to augment. + + Pre-Condition: XmlNodeType.Element (atom:link) - the atom:link element to read. + Post-Condition: Any - the node after the atom:link element which was read. + + + + + Reads an atom:logo element in a feed. + + The feed metadata to augment. + + Pre-Condition: XmlNodeType.Element (atom:logo) - the atom:logo element to read. + Post-Condition: Any - the node after the atom:logo element which was read. + + + + + Reads an atom:rights element in a feed. + + The feed metadata to augment. + + Pre-Condition: XmlNodeType.Element (atom:rights) - the atom:rights element to read. + Post-Condition: Any - the node after the atom:rights element which was read. + + + + + Reads an atom:subtitle element in a feed. + + The feed metadata to augment. + + Pre-Condition: XmlNodeType.Element (atom:subtitle) - the atom:subtitle element to read. + Post-Condition: Any - the node after the atom:subtitle element which was read. + + + + + Reads an atom:title element in a feed. + + The feed metadata to augment. + + Pre-Condition: XmlNodeType.Element (atom:title) - the atom:title element to read. + Post-Condition: Any - the node after the atom:title element which was read. + + + + + Reads an atom:updated element in a feed. + + The feed metadata to augment. + + Pre-Condition: XmlNodeType.Element (atom:updated) - the atom:updated element to read. + Post-Condition: Any - the node after the atom:updated element which was read. + + + + + Reads an atom:* element whose value is a URI. + + The which was read. + + + + Fails with the appropriate exception message if the given value is not null. + + The metadata value to ensure is null. + + + + Whether this deserializer is reading feed metadata for a source element (true) or a feed element (false). + + + + + OData parameter reader for the Verbose JSON format. + + + + The input to read the payload from. + + + The property and value deserializer to read input with. + + + + Constructor. + + The input to read the payload from. + The function import whose parameters are being read. + + + + Implementation of the reader logic when in state 'Start'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.None: assumes that the JSON reader has not been used yet. + Post-Condition: When the new state is Value, the reader is positioned at the closing '}' or at the name of the next parameter. + When the new state is Entry, the reader is positioned at the starting '{' of the entry payload. + When the new state is Feed or Collection, the reader is positioned at the starting '[' of the feed or collection payload. + + + + + Implementation of the reader logic on the subsequent reads after the first parameter is read. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.Property or JsonNodeType.EndObject: assumes the last read puts the reader at the begining of the next parameter or at the end of the payload. + Post-Condition: When the new state is Value, the reader is positioned at the closing '}' or at the name of the next parameter. + When the new state is Entry, the reader is positioned at the starting '{' of the entry payload. + When the new state is Feed or Collection, the reader is positioned at the starting '[' of the feed or collection payload. + + + + + Creates an to read the collection with type . + + Expected item type reference of the collection to read. + An to read the collection with type . + + + + Checks to see if we are at the end of the parameters payload. + + Returns true if we are at the ending '}' of the parameters payload. + + + + Reads the end '}' of the parameters payload. + + + + + Reads the next parameter from the parameters payload. + + + + + OData ATOM deserializer for ATOM metadata in a service document + + + + Schema namespace for Atom. + + + The name of the 'category' element in a service document. + + + The name of the 'href' attribute in an 'app:categories' element. + + + The name of the 'fixed' attribute in an 'app:categories' element. + + + The name of the 'scheme' attribute in an 'app:categories' or 'atom:category' element. + + + The name of the 'term' attribute in an 'atom:category' element. + + + The name of the 'label' attribute in an 'atom:category' element. + + + The empty namespace + + + + Constructor. + + The ATOM input context to read from. + + + + Reads an atom:title element and adds the new information to . + + The non-null workspace metadata object to augment. + + Pre-Condition: XmlNodeType.Element - The start of the atom:title element. + Post-Condition: Any - The next node after the atom:title element. + + + + + Reads an atom:title element and adds the new information to and (if ATOM metadata reading is on) . + + The collection metadata object to augment, or null if metadata reading is not on. + The non-null collection info object being populated. + + Pre-Condition: XmlNodeType.Element - The start of the title element. + Post-Condition: Any - The next node after the title element. + + + + + Reads an app:categories element as well as each atom:category element contained within it, and adds the new information to . + + The non-null collection metadata object to augment. + + Pre-Condition: XmlNodeType.Element - The start of the app:categories element. + Post-Condition: Any - The next node after the app:categories element. + + + + + Reads an "app:accept" element and adds the new information to . + + The non-null collection metadata object to augment. + + Pre-Condition: XmlNodeType.Element - The start of the app:accept element. + Post-Condition: Any - The next node after the app:accept element. + + + + + Reads an "atom:category" element and returns the data as an object. + + An object with its properties filled in according to what was found in the XML. + + Pre-Condition: XmlNodeType.Element - The start of the atom:category element. + Post-Condition: Any - The next node after the atom:category element. + + + + Enumeration of all possible states of an . + + + The reader is at the start; nothing has been read yet. + In this state the Name and Value properties of the returns null. + + + The reader read a primitive or a complex parameter. + In this state the Name property of the returns the name of the parameter + and the Value property of the returns the value read (e.g. a primitive value, an ODataComplexValue or null). + + + The reader is reading a collection parameter. + In this state the Name property of the returns the name of the parameter + and the Value property of the returns null. The CreateCollectionReader() method on the + must be called to get the reader to read the collection value. + + + The reader has thrown an exception; nothing can be read from the reader anymore. + In this state the Name and Value properties of the return null. + + + The reader has completed; nothing can be read anymore. + In this state the Name and Value properties of the return null. + + + + Implementation of the batch-specific URL resolver that resolves cross-referencing URLs properly. + + + + Supports custom resolution of URLs found in the payload. + + This interface can be implemented on messages (see and + ). When a message implementing this interface is + passed to an or , the + message writer/reader will use this interface for custom URL resolution. + On writers this means that whenever a URI is written into the payload the resolution + method on this interface is called to resolve a base URI and a payload URI to the + actual URI to be written to the payload. If the method returns null from a resolution + call the default resolution will be used. + On readers this means that a base URI (either from the payload or the reader settings) and + the URI read from the payload are passed to the method. The result is what is being reported + on the OData OM instances. Again if the resolution method returns null the default resolution + kicks in. + + + + Implements a custom URL resolution scheme. This method returns null if no custom resolution is desired. If the method returns a non-null URL that value will be used without further validation. + An instance that reflects the custom resolution of the method arguments into a URL or null if no custom resolution is desired; in that case the default resolution is used. + The (optional) base URI to use for the resolution. + The URI read from the payload. + + + The URL resolver from the batch message. + + + A hashset with all content IDs used so far in the batch; this is used for cross-referencing URL resolution. + + + + Constructor. + + The URL resolver from the batch message. + + + + Method to implement a custom URL resolution scheme. + This method returns null if not custom resolution is desired. + If the method returns a non-null URL that value will be used without further validation. + + The (optional) base URI to use for the resolution. + The URI read from the payload. + + A instance that reflects the custom resolution of the method arguments + into a URL or null if no custom resolution is desired; in that case the default resolution is used. + + + + + Add the content ID to the hashset of valid content IDs. + + The (non-null) content ID to add. + + + + Checks whether a given (non-null) content ID is already in the content ID cache. + + The content ID to check for. + true if the content ID cache already contains a content ID with value ; otherwise false. + + + + Resets the cache of content IDs. This is called at the end of each changeset + since content IDs are only unique within a changeset. + + + + + The URL resolver from the batch message. + + + + Exception type representing exception when Content-Type of a message is not supported. + + + Creates a new instance of the class. + + The Message property is initialized to a system-supplied message + that describes the error. This message takes into account the + current system culture. + + + + Creates a new instance of the class. + Plain text error message for this exception. + + + Creates a new instance of the class. + Plain text error message for this exception. + Exception that caused this exception to be thrown. + + + Creates a new instance of the class from the specified SerializationInfo and StreamingContext instances. + A SerializationInfo containing the information required to serialize the new ODataException. + A StreamingContext containing the source of the serialized stream associated with the new ODataException. + + + + Utility functions for writing values for use in a URL. + + + + + Converts a primitive to a string for use in a Url. + + Value to convert. + OData version to be compliant with. + A string representation of to be added to a Url. + + + + Converts the given string to an ODataComplexValue or ODataCollectionValue and returns it. + Tries in both JSON light and Verbose JSON. + + Does not handle primitive values. + Value to be deserialized. + ODataVersion to be compliant with. + Model to use for verification. + Expected type reference from deserialization. If null, verification will be skipped. + An ODataComplexValue or ODataCollectionValue that results from the deserialization of . + + + + Verifies that the given is or can be coerced to , and coerces it if necessary. + + An EDM primitive value to verify. + Model to verify against. + Expected type reference. + The version to use for reading. + Coerced version of the . + + + + Converts a to a string for use in a Url. + + Instance to convert. + Model to be used for validation. User model is optional. The EdmLib core model is expected as a minimum. + Version to be compliant with. + ODataFormat to use for the format of the literal. + A string representation of to be added to a Url. + + + + Converts an to a string for use in a Url. + + Instance to convert. + A string representation of to be added to a Url. + + + + Converts a to a string for use in a Url. + + Instance to convert. + Model to be used for validation. User model is optional. The EdmLib core model is expected as a minimum. + Version to be compliant with. Collection requires >= V3. + ODataFormat to use for the format of the literal. + A string representation of to be added to a Url. + + + + Write a literal value in JSON Verbose format. + + EDM Model to use for validation and type lookups. + Settings to use when writing. + TextWriter to use as the output for the value. + Delegate to use to actually write the value. + + + + Write a literal value in JSON Light format. + + EDM Model to use for validation and type lookups. + Settings to use when writing. + TextWriter to use as the output for the value. + Delegate to use to actually write the value. + + + + Coerces the given to the appropriate CLR type based on . + + Primitive value to coerce. + Edm primitive type to check against. + as the corresponding CLR type indicated by , or null if unable to coerce. + + + + URI Utility methods. + + + + + Converts the given to a corresponding CLR type. Expects the + to have already been properly unescaped from an actual Uri. + + Value from a Uri to be converted. + Version to be compliant with. + A CLR object that the represents. + + + + Converts the given to a corresponding CLR type. Expects the + to have already been properly unescaped from an actual Uri. + + Value from a Uri to be converted. + Version to be compliant with. + Optional model to perform verification against. + Optional IEdmTypeReference to perform verification against. + Callers must provide a containing this type if it is specified. + A CLR object that the represents. + + + + Converts the given object to a string for use in a Uri. Does not perform any of the escaping that provides. + No type verification is used. + + Value to be converted. + Version to be compliant with. + A string representation of for use in a Url. + + + + Converts the given object to a string for use in a Uri. Does not perform any of the escaping that provides. + Will perform type verification based on the given model if possible. + + Value to be converted. + Version to be compliant with. + Optional model to perform verification against. + A string representation of for use in a Url. + + + + Converts the given object to a string in the specified format for use in a Uri. Does not perform any of the escaping that provides. + Will perform type verification based on the given model if possible. + + Value to be converted. + Version to be compliant with. + Optional model to perform verification against. + ODataFormat to use for structured values such as complex types and collections. + A string representation of for use in a Url. + + + + The RAW OData format. + + + + + The text representation - the name of the format. + + The name of the format. + + + + Detects the payload kinds supported by this format for the specified message payload. + + The response message with the payload stream. + Additional information available for the payload kind detection. + The set of s that are supported with the specified payload. + + + + Detects the payload kinds supported by this format for the specified message payload. + + The request message with the payload stream. + Additional information available for the payload kind detection. + The set of s that are supported with the specified payload. + + + + Creates an instance of the input context for this format. + + The to read. + The message to use. + The content type of the message to read. + The encoding to use. + Configuration settings of the OData reader. + The OData protocol version to be used for reading the payload. + true if reading a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs read from the payload. + Format specific state stored during payload kind detection + using the . + The newly created input context. + + + + Creates an instance of the output context for this format. + + The message to use. + The specific media type being written. + The encoding to use. + Configuration settings of the OData writer. + true if writing a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs written to the payload. + The newly created output context. + + + + Asynchronously detects the payload kinds supported by this format for the specified message payload. + + The response message with the payload stream. + Additional information available for the payload kind detection. + A task that when completed returns the set of s + that are supported with the specified payload. + + + + Asynchronously detects the payload kinds supported by this format for the specified message payload. + + The request message with the payload stream. + Additional information available for the payload kind detection. + A task that when completed returns the set of s + that are supported with the specified payload. + + + + Asynchronously creates an instance of the input context for this format. + + The to read. + The message to use. + The content type of the message to read. + The encoding to use. + Configuration settings of the OData reader. + The OData protocol version to be used for reading the payload. + true if reading a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs read from the payload. + Format specific state stored during payload kind detection + using the . + Task which when completed returned the newly created input context. + + + + Creates an instance of the output context for this format. + + The message to use. + The specific media type being written. + The encoding to use. + Configuration settings of the OData writer. + true if writing a response message; otherwise false. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs written to the payload. + Task which represents the pending create operation. + + + + Detects the payload kind(s) from the message stream. + + The content type of the message. + An enumerable of zero, one or more payload kinds that were detected from looking at the payload in the message stream. + + + + Semantic node that represents a single-value open property access, which is not bound to an EDM model. + + + + + The value containing this property. + + + + + The name of the open property to be bound outside the EDM model. + + + + + Constructs a . + + The value containing this property. + The name of the open property to be bound outside the EDM model. + Throws if the input source or openPropertyName is null. + + + + Accept a that walks a tree of s. + + Type that the visitor will return after visiting this token. + An implementation of the visitor interface. + An object whose type is determined by the type parameter of the visitor. + Throws if the input visitor is null. + + + + Gets the value containing this property. + + + + + Gets the name of the open property to be bound outside the EDM model. + + + + + Gets the type of the single value this node represents. + + + The value of this property will always be null for open properties. + + + + + Gets the kind of this query node. + + + + Enumeration used to identify text content of syndication item. + + + + Plaintext + + + + + HTML + + + + + XHTML + + + + Enumeration type that is used to identify the syndication item element or attribute in the Open Data Protocol (OData) feed to which an entity property is mapped. + + Potentially the following atom specific elements could also be considered: + * Content? + * Id + * Source? + + + + + User specified a non-syndication property + + + + + author/email + + + + + author/name + + + + + author/uri + + + + + contributor/email + + + + + contributor/name + + + + + contributor/uri + + + + + updated + + + + + published + + + + + rights + + + + + summary + + + + + title + + + + Attribute that specifies a custom mapping between properties of an entity type and elements of an entry in an Open Data Protocol (OData) feed returned by the data service.  + + + + Source property path. + + + + + Target Xml element/attribute. + + + + + If mapping to syndication element, the name of syndication item. + + + + + If mapping to syndication content, the content type of syndication item. + + + + + If mapping to non-syndication element/attribute, the namespace prefix for the + target element/attribute. + + + + + If mapping to non-syndication element/attribute, the namespace for the + target element/attribute. + + + + + The content can optionally be kept in the original location along with the + newly mapping location by setting this option to true, false by default. + + + + Creates a new instance of the . + The name of the property, as string, of the entity type that is mapped to the specified property of the feed item. + A value that represents the element in the feed to which to map the property. This value must be set to None if the is not null. + A value that identifies the format of the content to display in the feed. + Boolean value that is true when the property being mapped must appear both in its mapped-to location and in the content section of the feed. + + + Creates an instance of the to map a property to a custom feed element. + The name of the property of the entity type, as string, that is mapped to the specified property in the feed. + The name of the target, as string, in the resulting feed to which the property is mapped. + This parameter, together with , specifies the namespace in which the element exists. + Specifies the namespace URI of the element, as string, specified by the property. + Boolean value that is true when the property being mapped must appear both in its mapped-to location and in the content section of the feed. + + + Gets the name of the property of the syndication item that will be mapped to the specified element of the feed. + String value that contains property name. + + + Gets the name of the custom target in the feed to which the property is mapped. + String value with target XML element or attribute. + + + Gets the syndication item in the entry targeted by the mapping. + A value that is the target of the mapping. + + + Gets a string value that, together with , specifies the namespace in which the element exists. + String value that contains the target namespace prefix. + + + Gets a string value that specifies the namespace URI of the element specified by the property. + String that contains the namespace URI. + + + Gets the type of content of the property mapped by . + A string that identifies the type of content in the feed element. + + + Gets a Boolean value that indicates whether a property value should be repeated both in the content section of the feed and in the mapped location. + A value that is true when the property is mapped into both locations in the feed; otherwise, false. + + + + Enumeration for the different kinds of reader and writer behaviors + supported in the OData library. + + + + The default behavior of the OData library. + + + The behavior of the WCF Data Services server. + + + The behavior of the WCF Data Services client. + + + + Class that captures all the information needed to make readers behave + differently when used inside of WCF Data Services or outside. + + + + The default reader behavior for the OData library. + + + The API behavior kind of this behavior. + + + Custom type resolver used by the WCF DS Client. + + This function is used instead of calling the IEdmModel.FindType. + The first parameter to the function is the expected type (the type infered from the parent property or specified by the external caller). + The second parameter is the type name from the payload. + The function should return the resolved type, or null if no such type was found. + + + + + If set to true, allows the writers to write duplicate properties of entries and + complex values (i.e., properties that have the same name). Defaults to 'false'. + + + + true if the server uses a V1 provider; otherwise false. + + + Used to specify custom type scheme. Used for compatibility with WCF DS Client. + + + Used to specify custom data namespace. Used for compatibility with WCF DS Client. + + + The format behavior kind of this behavior. + + + Determines whether operations bound to the given type must be container qualified. + + + + Constructor. + + The format behavior kind of this behavior. + The API behavior kind of this behavior. + + If set to true, allows the writers to write duplicate properties of entries and + complex values (i.e., properties that have the same name). Defaults to 'false'. + + true if the server uses a V1 provider; otherwise false. + Custom type resolver which takes both expected type and type name. + This function is used instead of the IEdmModel.FindType is it's specified. + The first parameter to the function is the expected type (the type infered from the parent property or specified by the external caller). + The second parameter is the type name from the payload. + The function should return the resolved type, or null if no such type was found. + Custom data namespace. + Custom type scheme to use when resolving types. + + + + Create the reader behavior for the WCF Data Services client. + + Custom type resolver which takes both expected type and type name. + This function is used instead of the IEdmModel.FindType is it's specified. + The first parameter to the function is the expected type (the type infered from the parent property or specified by the external caller). + The second parameter is the type name from the payload. + The function should return the resolved type, or null if no such type was found. + Custom data namespace. + Custom type scheme to use when resolving types. + The created reader behavior. + + + + Create the reader behavior for the WCF Data Services server. + + true if the server uses a V1 provider; otherwise false. + The created reader behavior. + + + + Resets the format behavior of the current reader behavior to the default format behavior. + + + + + Get the default reader behavior for the OData library. + + The default reader behavior. + + + + Used to specify custom type scheme. Used for compatibility with WCF DS Client. + + + + + Used to specify custom data namespace. Used for compatibility with WCF DS Client. + + + + + If set to true, allows the writers to write duplicate properties of entries and + complex values (i.e., properties that have the same name). Defaults to 'false'. + + + Independently of this setting duplicate property names are never allowed if one + of the duplicate property names refers to a named stream property, + an association link or a collection. + + + + + true if the server is using V1 provider; false otherwise. + + + + + Custom type resolver used by the WCF DS Client. + + + + The format behavior kind of this behavior. + + + The API behavior kind of this behavior. + + + Determines whether operations bound to the given entity type must be container qualified. + + + + Class that captures all the information needed to make writer behave + differently when used inside of WCF Data Services or outside. + + + + The default writer behavior for the OData library. + + + The API behavior kind of this behavior. + + + true if the server uses a V1 provider; otherwise false. + + + true to allow null values for non-nullable primitive types; otherwise false. + + + + If set to true, allows the writers to write duplicate properties of entries and complex values + (i.e., properties that have the same name). Defaults to 'false'. + + + + Used to specify custom type scheme. Used for compatibility with WCF DS Client. + + + Used to specify custom data namespace. Used for compatibility with WCF DS Client. + + + The format behavior kind of this behavior. + + + + Constructor. + + The format behavior kind of this behavior. + The API behavior kind of this behavior. + true if the server uses a V1 provider; otherwise false. + + true to allow null values for non-nullable primitive types; otherwise false. + + + If set to true, allows the writers to write duplicate properties of entries + and complex values (i.e., properties that have the same name). + + Custom data namespace. + Custom type scheme to use when resolving types. + + + + Create the writer behavior for the WCF Data Services client. + + Custom data namespace. + Custom type scheme to use when resolving types. + The created writer behavior. + + + + Create the writer behavior for the WCF Data Services server. + + true if the server uses a V1 provider; otherwise false. + The created writer behavior. + + + + Resets the format behavior of the current writer behavior to the default format behavior. + + + + + Get the default writer behavior. + + The default writer behavior. + + + + Used to specify custom type scheme. Used for compatibility with WCF DS Client. + + + + + Used to specify custom data namespace. Used for compatibility with WCF DS Client. + + + + + EPM mappings are defined on entity types but not on complex types. For entity types, the EPM mapping for each of its primitive properties stay the same. + For complex types however, the EPM mappings changes depending on the entity type each complex property is declared on. + For example, if the "Customer" entity type has the properties Address1 and Address2 both of the complex type "Address". If properties in Address1 + are not mapped while properties in Address2 are mapped with KeepInContent=false, when we serialze the Address type in atom format, we keep properties of + Address1 in content while skipping properties of Address2 from the content. Thus the same complex type can get serialized differently for each instance + of the type. + + Astoria has a bug for V1 providers in which it creates and caches EPM information on the complex type itself the first time it serializes + an instance of the complex type. So subsequent writes will serialize the complex type the same way regardless of its EPM mapping. + This creates the following 2 problems: + 1. If a primitive property of a complex type is not part of a EPM mapping or has KeepInContent=true the first time it's serialized, the property will always + be serialized in the content for the remaining lifetime of the service, even for instances where KeepInContent=false. + 2. If a primitive property of a complex type has KeepInContent=false the first time it's serialized, the property will always be missing in the content + for the remaining lifetime of the service, even for instances that do not belong to a EPM mapping or have KeepInContent=true. + Unfortunately we cannot fix issue 1 because it can break existing third party clients. We have to fix issue 2 because it is a data corruption issue. + + The solution is to remember on the first write whether a primitive property of a complex type is serialized in content or not. On subsequent writes + to the same property, we will always keep it in content if the initial write is in content. Otherwise we calculate whether it should be in content + based on ShouldWritePropertyInContent. + + NOTE: this assumes that the complex type in question does not change throughout the lifetime of the service. + + See bug 174185. + + + + + If set to true, the writers will allow writing null values even if the metadata specifies a non-nullable primitive type. + + + + + If set to true, allows the writers to write duplicate properties of entries and complex values (i.e., properties that have the same name). Defaults to 'false'. + + + Independently of this setting duplicate property names are never allowed if one of the duplicate property names refers to + a named stream property, an association link or a collection. + + + + The format behavior kind of this behavior. + + + The API behavior kind of this behavior. + + + + OData ATOM deserializer for error payloads. + + + + + Constructor. + + The ATOM input context to read from. + + + + Reads the content of an error element. + + The Xml reader to read the error payload from. + The maximumum number of recursive internalexception elements to allow. + The representing the error. + + This method is used to read top-level errors as well as in-stream errors (from inside the buffering Xml reader). + Pre-Condition: XmlNodeType.Element - The m:error start element. + Post-Condition: XmlNodeType.EndElement - The m:error end-element. + XmlNodeType.Element - The empty m:error start element. + + + + + Reads a top-level error. + + An representing the read error. + + Pre-Condition: XmlNodeType.None - assumes that the Xml reader has not been used yet. + Post-Condition: Any - the next node after the m:error end element or the empty m:error element node. + + + + + Verifies that the specified element was not yet found in a top-level error element. + + + The bit field which stores which elements of an error were found so far. + + The bit mask for the element to check. + The name of the element to check (used for error reporting). + + + + Verifies that the specified element was not yet found in an inner error element. + + + The bit field which stores which elements of an inner error were found so far. + + The bit mask for the element to check. + The name of the element to check (used for error reporting). + + + + Reads the content of an inner error element. + + The (buffering) Xml reader to read the error payload from. + The number of times this function has been called recursively. + The maximumum number of recursive internalexception elements to allow. + The representing the inner error. + + Pre-Condition: XmlNodeType.Element - the m:innererror or m:internalexception element + Post-Condition: Any - the node after the m:innererror/m:internalexception end element or the node after the empty m:innererror/m:internalexception element node. + + + + + An enumeration of the various kinds of elements in an m:error element. + + + + No duplicates. + + + The 'code' element of the error element. + + + The 'message' element of the error element. + + + The 'innererror' element of the error element. + + + + An enumeration of the various kinds of elements in an internal error element. + + + + No duplicates. + + + The 'message' element of the inner error element. + + + The 'type' element of the inner error element. + + + The 'stacktrace' element of the inner error element. + + + The 'internalexception' element of the inner error element. + + + + Reader for the EPM custom-only. Read the EPM properties from cached values. + + + + + Base class for EPM readers. + + + + The input context currently in use. + + + The reader entry state to use for the entry to which the EPM is applied. + + + + Constructor. + + The reader entry state to use for the entry to which the EPM is applied. + The input context currently in use. + + + + Sets the value read from EPM to a property on an entry. + + The EPM info for the mapping for which the value was read. + The property value read, if the value was specified as null then this should be null, + if the value was missing the method should not be called at all. + For primitive properties this should be the string value, for all other properties this should be the exact value type. + + + + Sets the value read from EPM to a property on an entry. + + The target list, which is a list of properties (on entry or complex value). + The type of the value on which to set the property (can be entity or complex). + The EPM info for the mapping for which the value was read. + The property value read, if the value was specified as null then this should be null, + if the value was missing the method should not be called at all. + For primitive properties this should be the string value, for all other properties this should be the exact value type. + + + + Sets a property value for a segment of the EPM source path. + + The EPM info according to which we are mapping the value to properties. + The index in the epmInfo.PropertyValuePath for the source segment for which to set the value. + The structural type of the parent segment. + The list of properties of the parent segment, this method may add to this list. + The property value read, if the value was specified as null then this should be null, + if the value was missing the method should not be called at all. + For primitive properties this should be the string value, for all other properties this should be the exact value type. + + + + Creates and adds a new property to the list of properties for an EPM. + + The list of properties to add the property to. + The name of the property to add. + The value of the property to add. + true if the new property should be checked for duplicates against the entry properties; false otherwise. + This should be true if the is the list of properties for the entry, and false in all other cases. + + + The reader entry state to use for the entry to which the EPM is applied. + + + The version of OData protocol to use. + + + The reader settings to use. + + + + Constructor. + + The reader entry state for the entry to which the EPM is applied. + The input context currently in use. + + + + Reads the custom EPM for an entry. + + The reader entry state for the entry to which the EPM is applied. + The input context currently in use. + + + + Reads an EPM for the entire entry. + + + + + Cache for values read during deserialization of custom EPM. + + + + + List of custom EPM values read. + This is a map from EPM info to the value read from the payload. + + + The list order is the order in which the values were read from the payload. + They will be applied to the entry properties in that order (this needs to be maintained). + The key is the EPM info for the mapping according to which the value was read. + The value is the string value read from the content (not converted in any way). + null value means true null value should be used. + If the value was missing from the payload there will be no record of it in this list. + + + + + Constructor. + + + + + Determines if the cache already contains a value for the specified EPM mapping. + + The EPM info for the EPM mapping to look for. + true if the cache already contains a value for this mapping, false otherwise. + + + + Adds a value to cache. + + The EPM info for the mapping according to which the value was read. + The value to cache. + + The method will only store the first value for any given EPM info, since in custom EPM + only the first occurrence of the element/attribute is used, the others are ignored. + + + + + The list of stored custom EPM values (key is the EPM info, value is the string value read for it). + The list is in the order in which the values were read from the payload. + + + + + OData ATOM deserializer for EPM. + + + + + Constructor. + + The ATOM input context to read from. + + + + Reads an extension element in non-ATOM namespace in the content of the entry element. + + The reader entry state for the entry being read. + true if a mapping for the current custom element was found and the element was read; otherwise false. + + Pre-Condition: XmlNodeType.Element - the element in non-ATOM namespace to read. + Post-Condition: Any - the node after the extension element which was read. + + + + + Reads an element for custom EPM. + + The reader entry state for the entry being read. + The EPM target segment for the parent element to which the element belongs. + true if a mapping for the current custom element was found and the element was read; otherwise false. + + Pre-Condition: XmlNodeType.Element - the element to read. + Post-Condition: Any - the node after the element which was read. + + The method works on any element, it checks if the element should be used for EPM or not. + + + + + Reads an attribute for custom EPM. + + The reader entry state for the entry being read. + The EPM target segment for the element to which the attribute belongs. + + Pre-Condition: XmlNodeType.Attribute - the attribute to read. + Post-Condition: XmlNodeType.Attribute - the same attribute, the method doesn't move the reader. + + The method works on any attribute, it checks if the attribute should be used for EPM or not. + + + + + OData ATOM deserializer for entity reference links. + + + + OData element name for the 'links' element + + + OData element name for the 'count' element + + + OData element name for the 'next' element + + + OData element name for the 'uri' element + + + + Constructor. + + The ATOM input context to read from. + + + + Read a set of top-level entity reference links. + + An representing the read links. + + Pre-Condition: PayloadStart - assumes that the XML reader has not been used yet. + Post-Condtion: XmlNodeType.None - The reader must be at the end of the input. + + + + + Reads a top-level entity reference link. + + An instance representing the read entity reference link. + + Pre-Condition: PayloadStart - assumes that the XML reader has not been used yet. + Post-Condtion: XmlNodeType.None - The reader must be at the end of the input. + + + + + Verifies that the specified element was not yet found in the entity reference links element. + + The bit field which stores which elements of an inner error were found so far. + The bit mask for the element to check. + The namespace name of the element ot check (used for error reporting). + The name of the element to check (used for error reporting). + + + + Reads all top-level entity reference links and the (optional) inline count and next link elements. + + An instance representing the read entity reference links. + + Pre-Condition: XmlNodeType.Element - The 'd:links' element. + Post-Condtion: any - The node after the 'd:links' end element (or empty 'd:links' element). + + + + + Read an entity reference link. + + An instance of which was read. + + Pre-Condition: XmlNodeType.Element - the 'd:uri' element to read. + Post-Condition: Any - the node after the 'd:uri' element which was read. + + + + + An enumeration of the various kinds of properties on an entity reference link collection. + + + + No duplicates. + + + The 'm:count' element of the 'links' element. + + + The 'd:next' element of the 'links' element. + + + + Class with utility methods for dealing with OData metadata that are shared with the OData.Query project. + + + + + Checks whether a type reference refers to an OData primitive type (i.e., a primitive, non-stream type). + + The (non-null) to check. + true if the is an OData primitive type reference; otherwise false. + + + + Checks whether a type refers to an OData primitive type (i.e., a primitive, non-stream type). + + The (non-null) to check. + true if the is an OData primitive type; otherwise false. + + + + Checks whether a type reference refers to an OData complex type. + + The (non-null) to check. + true if the is an OData complex type reference; otherwise false. + + + + Checks whether a type refers to an OData complex type. + + The (non-null) to check. + true if the is an OData complex type; otherwise false. + + + + Checks whether a type reference refers to an OData entity type. + + The (non-null) to check. + true if the is an OData entity type reference; otherwise false. + + + + Checks whether a type refers to an OData entity type. + + The (non-null) to check. + true if the is an OData entity type; otherwise false. + + + + Checks whether a type reference is considered a value type in OData. + + The to check. + true if the is considered a value type; otherwise false. + + The notion of value type in the OData space is driven by the IDSMP requirements where + Clr types denote the primitive types. + + + + + Checks whether a type reference refers to a OData collection value type of non-entity elements. + + The (non-null) to check. + true if the is a non-entity OData collection value type; otherwise false. + + + + Checks whether a type refers to a OData collection value type of non-entity elements. + + The (non-null) to check. + true if the is a non-entity OData collection value type; otherwise false. + + + + Casts an to a or returns null if this is not supported. + + The type reference to convert. + An instance or null if the cannot be converted. + + + + Casts an to a or returns null if this is not supported. + + The type reference to convert. + An instance or null if the cannot be converted. + + + + Casts an to a or returns null if this is not supported. + + The type reference to convert. + An instance or null if the cannot be converted. + + + + Determines if a is convertibale according to OData rules to the + . + + The type which is to be converted. + The type to which we want to convert. + true if the source type is convertible to the target type; otherwise false. + + + Represents an annotation to hold information for a particular property. + + + Gets the behavior for readers when reading property with null value. + The behavior for readers when reading property with null value. + + + Represents an OData action. + + + + Represents a function or an action. + + + + the metadata builder for this operation. + + + A human-readable description of the or the . + + + true if a title was provided by the user or seen on the wire, false otherwise. + + + A human-readable description of the or the , computed by the metadata builder. + + + The URI to invoke the or the . + + + true if a target was provided by the user or seen on the wire, false otherwise. + + + The URI to invoke the or the , computed by the metadata builder. + + + The cached full name of the operation to use. + + + The binding parameter type name for this operation. + + + + Sets the metadata builder for this operation. + + The metadata builder used to compute values from model annotations. + The metadata document Uri. + + + + Gets the metadata builder for this operation. + + The metadata builder used to compute values. + + + Gets or sets the URI to get metadata for the . + The URI to get metadata for the . + + + Gets or sets a human-readable description of the . + A human-readable description of the . + + + Gets or sets the URI to invoke the . + The URI to invoke the . + + + Represents an OData function. + + + + Implementation of the OData input for metadata documents. + + + + The XML reader used to parse the input. + Do not use this to actually read the input, instead use the xmlReader. + + + The XML reader to read from. + + + Constructor. + The format for this input context. + The stream to read data from. + The encoding to use to read the input. + Configuration settings of the OData reader. + The OData protocol version to be used for reading the payload. + true if reading a response message; otherwise false. + true if the input should be read synchronously; false if it should be read asynchronously. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs read from the payload. + + + + Read a metadata document. + This method reads the metadata document from the input and returns + an that represents the read metadata document. + + An representing the read metadata document. + + + + Disposes the input context. + + + + + This methods reads the metadata from the input and returns an + representing the read metadata information. + + An instance representing the read metadata. + + + + Class with code that will eventually live in EdmLib. + + This class should go away completely when the EdmLib integration is fully done. + + + The qualifier to turn a type name into a Collection type name. + + + Format string to describe a Collection of a given type. + + + + Map of CLR primitive type to EDM primitive type reference. Doesn't include spatial types since they need assignability and not equality. + + + + Type reference for Edm.Boolean. + + + Type reference for Edm.Byte. + + + Type reference for Edm.DateTime. + + + Type reference for Edm.Decimal. + + + Type reference for Edm.Double. + + + Type reference for Edm.Int16. + + + Type reference for Edm.Int32. + + + Type reference for Edm.Int64. + + + Type reference for Edm.SByte. + + + Type reference for Edm.String. + + + Type reference for Edm.Float. + + + + Constructor. + + + + + A method that determines whether a given model is a user model or one of the built-in core models + that can only used for primitive type resolution. + + The model to check. + true if the is a user model; otherwise false. + + + + Checks whether the provided is a supported primitive type. + + The CLR type to check. + true if the is a supported primitive type; otherwise false. + + + + Returns all the entity types in a model. + + The to get the entity types for (must not be null). + An enumerable of all instances in the . + + + + Creates a collection value type for the specified . + + The for the item type. + The created . + + + + Creates a collection type for the specified . + + The for the item type. + The created . + + + + Checks if the type reference is assignable from the type reference. + In other words, if is a subtype of or not. + + Type of the base type. + Type of the sub type. + true, if the is assignable to . Otherwise returns false. + Note that this method only checks the type definition for assignability; it does not consider nullability + or any other facets of the type reference. + + + + Checks if the type is assignable from the type. + In other words, if is a subtype of or not. + + Type of the base type. + Type of the sub type. + true, if the is assignable to . Otherwise returns false. + + + + Checks if the structured type and the structured type + have a common base type. + In other words, if is a subtype of or not. + + Type of the base type. + Type of the sub type. + The common base type or null if no common base type exists. + + + + Checks if the primitive type and the primitive type + have a common base type. + In other words, if is a subtype of or not. + + Type of the base type. + Type of the sub type. + The common base type or null if no common base type exists. + + + + Returns the base type of a primitive type. + + The to get the base type for. + The base type of the or null if no base type exists. + + + + Casts an to a or returns null if this is not supported. + + The type reference to convert. + An instance or null if the cannot be converted. + + + + Casts an to a or returns null if this is not supported. + + The type reference to convert. + An instance or null if the cannot be converted. + + + + Resolves the name of a primitive type. + + The name of the type to resolve. + The representing the type specified by the ; + or null if no such type could be found. + + + + Get the of the item type of the . + + The collection type to get the item type for. + The item type of the . + + + + Returns the IEdmCollectionType implementation with the given IEdmType as element type. + + IEdmType instance which is the element type. + An instance using the as Collection item type. + + + + Returns the IEdmCollectionType implementation with the given IEdmTypeReference as element type. + + IEdmTypeReference instance which is the element type. + An instance using the as Collection item type. + + + + Checks whether a type reference is a Geography type. + + The to check. + true if the is a Geography type; otherwise false. + + + + Checks whether a type reference is a Geometry type. + + The to check. + true if the is a Geometry type; otherwise false. + + + + Returns CollectionValue item type name or null if the provided type name is not a collectionValue. + + CollectionValue type name read from payload. + CollectionValue element type name or null if not a collectionValue. + + + + Gets the name of a function import group. + + The function import group in question. + The name of the function import group. + + + + Gets the full name of a function import group. + + The function import group in question. + The full name of the function import group. + + + + Name of the function import with parameters. + + Function import in question. + Name of the function import with parameters. + + + + Full name of the function import with parameters. + + Function import in question. + Full name of the function import with parameters. + + + + Determines whether operations bound to this type must be qualified with the operation they belong to when appearing in a $select clause. + + The entity type the operations are bound to. + True if the operations must be container qualified, otherwise false. + + + + Gets the full name of the definition referred to by the type reference. + + The type reference to get the full name for. + The full name of this . + + Note that this method is different from the EdmLib FullName extension method in that it also returns + names for collection types. For EdmLib, collection types are functions and thus don't have a full name. + The name/string they use in CSDL is just shorthand for them. + + + + + Gets the full name of the type. + + The type to get the full name for. + The full name of the . + + Note that this method is different from the EdmLib FullName extension method in that it also returns + names for collection types. For EdmLib, collection types are functions and thus don't have a full name. + The name/string they use in CSDL is just shorthand for them. + + + + + Clones the specified type reference. + + The type reference to clone. + true to make the cloned type reference nullable; false to make it non-nullable. + The cloned instance. + + + + Gets the multiplicity of a navigation property. + + Reference to the calling object. + The multiplicity of the navigation property in question. + This has been added to EdmLib, but EdmLib won't be released for a while. + If you need to use this functionality before we release EdmLib, then use this method. Change your calls + to use the real method whenever we release EdmLib again. + + + + Checks if the is assignable to . + In other words, if is a subtype of or not. + + Type of the base type. + Type of the sub type. + true, if the is assignable to . Otherwise returns false. + + + + Checks if the primitive type is a geography or geometry type. + + The type to check. + true, if the is a geography or geometry type. + + + + Checks if the primitive type is assignable to primitive type. + In other words, if is a subtype of or not. + + Type of the base type. + Type of the sub type. + true, if the is assignable to . Otherwise returns false. + + + + Returns the primitive CLR type for the specified primitive type reference. + + The primitive type to resolve. + The CLR type for the primitive type reference. + + + + Turns a into the corresponding non-nullable . + + The type to convert. + A non-nullable type reference for the . + + + + Determines whether the provided is an open type. + + The type to check. + true if the is an open type; otherwise false. + + + + Determines whether the provided is a stream. + + The type to check. + true if the represents a stream; otherwise false. + + + + Checks whether the specified is defined for the type . + + The type to check the properties on. + The property to check for. + true if the is defined for the ; otherwise false. + + + + Checks whether the specified is defined for the type . + + The type to check the properties on. + The property to check for. + true if the is defined for the ; otherwise false. + + + + Returns the fully qualified name of an entity container element. + + The container element to get the full name for. + The full name of the owning entity container, slash, name of the container element. + + + + Returns the primitive type reference for the given Clr type. + + The Clr type to resolve. + The primitive type reference for the given Clr type. + + + + Turns a into the corresponding . + + The type to convert. + true if the returned type reference should be nullable; otherwise false. + A type reference for the . + + + + Creates the EDM type name for a collection of the specified item type name. E.g. Collection(Edm.String) + + Type name of the items in the collection. + Type name for a collection of the specified item type name. + + + + Finds the entity set with the specified container and name. + + The model to find the entity set in. + The container qualified name of the entity set. + The with the specified name or null if no such entity set exists. + + + + Finds the function import group with the specified container and name. If the name contains the function parameters, this + method will return the function import with matching parameters. + + The model to find the function import in. + The container qualified name of the function import. + The group with the specified name or null if no such function import exists. + + + + Finds the function import group with the specified container and name. If the name contains the function parameters, this + method will return the function import with matching parameters. + + The model to find the function import in. + The container qualified name of the function import. May contain parameter type names, e.g. Function1(P1Type,P2Type) only if is true. + Whether parameter type names are allowed to appear in the function import name to resolve. + The group with the specified name or null if no such function import exists. + + + + Resolves a function import or function import group. + + The entity container. + The function import name to resolve. May contain parameter type names, e.g. Function1(P1Type,P2Type) + The resolved function import or function import group. + + + + Resolves a function import or function import group. + + The entity container. + The function import name to resolve. May contain parameter type names, e.g. Function1(P1Type,P2Type) only if is true. + Whether parameter type names are allowed to appear in the function import name to resolve. + The resolved function import or function import group. + + + + Finds all function imports with the given name which are bindable to an instance of the giving binding type or a more derived type. + + The model to find the function import in. + The binding entity type. + The name of the function imports to find. May be qualified with an entity container name. + The function imports that match the search criteria. + + + + Finds all function imports with the given name which are bindable to an instance of the giving binding type or a more derived type. + + The model to find the function import in. + The binding entity type. + The name of the function imports to find. May be qualified with an entity container name. + The function imports that match the search criteria. + + + + Returns the primitive CLR type for the specified primitive type reference. + + The primitive type to resolve. + Whether the returned type should be a nullable variant or not. + The CLR type for the primitive type reference. + + + + Returns Collection item type name or null if the provided type name is not a collection. + + Collection type name. + Whether it is a nested (recursive) call. + Collection element type name or null if not a collection. + + The following rules are used for collection type names: + - it has to start with "Collection(" and end with ")" - trailing and leading whitespaces make the type not to be recognized as collection. + - there is to be no characters (including whitespaces) between "Collection" and "(" - otherwise it won't berecognized as collection + - collection item type name has to be a non-empty string - i.e. "Collection()" won't be recognized as collection + - nested collection - e.g. "Collection(Collection(Edm.Int32))" - are not supported - we will throw + Note the following are examples of valid type names which are not collection: + - "Collection()" + - " Collection(Edm.Int32)" + - "Collection (Edm.Int32)" + - "Collection(" + + + + + Gets the function import parameter types in string. + + Function import in question. + Comma separated function import parameter types enclosed in parantheses. + + + + Gets a reference to a primitive kind definition of the appropriate kind. + + Primitive type to create a reference for. + Flag specifying if the referenced type should be nullable per default. + A new primitive type reference. + + + + Gets the single entity container or the default one if there are multiple containers. + + Model to find entity containers in. + Single container that was found. + Entity Container found in the model + + + + Finds the container elements with the specified container and name. + + The model to find the element in. + The container qualified name of the elements. + The resolver method to resolve the elements. + The enumeration of with the specified name or null if no such element exists. + + + + Constant values used related to EPM (entity property mapping). + + + + Attribute name for the FC_KeepInContent attribute used for EPM. + + + Attribute name for the FC_ContentKind attribute used for EPM. + + + Attribute name for the FC_SourcePath attribute used for EPM. + + + Attribute name for the FC_TargetPath attribute used for EPM. + + + Attribute name for the target namespace prefix (FC_NsPrefix) attribute used for custom EPM. + + + Attribute name for the target namespace Uri (FC_NsUri) attribute used for custom EPM. + + + Target path for author/email + + + Target path for author/name + + + Target path for author/uri + + + Target path for contributor/email + + + Target path for contributor/name + + + Target path for contributor/uri + + + Target path for updated + + + Target path for published + + + Target path for rights + + + Target path for summary + + + Target path for title + + + Target path for author/email + + + Target path for author/name + + + Target path for author/uri + + + Target path for contributor/email + + + Target path for contributor/name + + + Target path for contributor/uri + + + Target path for updated + + + Target path for published + + + Target path for rights + + + Target path for summary + + + Target path for title + + + String value for the syndication content kind 'text'. + + + String value for the syndication content kind 'HTML'. + + + String value for the syndication content kind 'XHTML'. + + + + Builder class for the name of EPM attributes as serialized in CSDL. + This class keeps track of the number of mappings for a given type/property and appends post fixes to the names as needed. + + + + Separator character for building attribute names. + + + Current index. + The first time the name builder is used the names have no suffix. + The second time (after calling MoveNext once) + the name builder will use suffix '_1', then suffix '_2' and so on. + + + + Suffix for current attribute names. + + + Constructor + + + Move to next attribute name generation. + + + Current keep-in-content attribute name. + + + Current source path attribute name. + + + Current target path attribute name. + + + Current content kind attribute name. + + + Current namespace prefix attribute name. + + + Current namespace Uri attribute name. + + + + Annotation stored on an entity type to hold entity property mapping information. + + + + + A list of the EPM mappings this cache was constructed for. + Used to determine whether the cache is dirty or not. + + + + + Inherited EntityPropertyMapping attributes. + + + + + Own EntityPropertyMapping attributes. + + + + + EPM source tree for the type this annotation belongs to. + + + + + EPM target tree for the type this annotation belongs to. + + + + + EDM model. + + + + The total number of entity property mappings for the entity type that this cache is created for (on the type itself and all its base types). + + + + Constructor. + + The EPM mappings to create the cache for. + The EDM model. + The total number of entity property mappings + for the entity type that this cache is created for (on the type itself and all its base types). + + + + Initializes the EPM annotation with EPM information from the specified type. + + Entity type to use the EPM infromation from. + Entity type for this the EPM information is being built. + + + + Checks whether the current cache is dirty with respect to the . + + The EPM mappings to check this cache against. + true if the are not the same as the ones the cache has been created for (or have changed). + + + + Does given property in the attribute exist in the specified type. + + The type to inspect. + Attribute which has PropertyName. + true if property exists in the specified type, false otherwise. + + + + Inherited EntityPropertyMapping attributes. + + + + + Own EntityPropertyMapping attributes. + + + + + EPM source tree for the type this annotation belongs to. + + + + + EPM target tree for the type this annotation belongs to. + + + + + All EntityPropertyMapping attributes. + + + + + The total number of entity property mappings for the entity type that this cache is created for (on the type itself and all its base types). + + + + + Represents an enumerable of that new items can be added to. + + + + List of the mappings represented by this enumerable. + + + Creates a new instance of the class. + + + Creates a new instance of the class. + An enumerable of used to initialize the instance. This argument must not be null. + + + Adds the mapping to the list of all mappings represented by this class. + The to add to the enumerable represented by this class. + + + Returns an enumerator for the instances in this enumerable. + An enumerator for the instances in this enumerable. + + + Returns a non-generic enumerator for the instances in this enumerable. + A non-generic enumerator for the instances in this enumerable. + + + + The count of mappings stored in this collection. + + + + + Helper methods used by the OData reader for the Verbose JSON format. + + + + + Compares the against the list of supported feed-level properties and + returns the kind of property. + + The name of the property to check. + The kind of feed-level property of the property with name . + + + + Converts the given JSON value to the expected type as per OData conversion rules for JSON values. + + Value to the converted. + Type reference to which the value needs to be converted. + The message reader settings used for reading. + The version of the OData protocol used for reading. + true to validate null values; otherwise false. + The name of the property whose value is being read, if applicable (used for error reporting). + Object which is in sync with the property type (modulo the V1 exception of converting numbers to non-compatible target types). + + + + Ensure that the is not null; if so create a new instance. + + The type of the instance to check. + The instance to check for null. + + + + Checks whether the specified property has already been found before. + + + The bit field which stores which properties of an error or inner error were found so far. + + The bit mask for the property to check. + true if the property has not been read before; otherwise false. + + + + Validates that the string property in __metadata is valid. + + The value of the property. + The name of the property (used for error reporting). + + + + Verifies that the specified property was not yet found. + + The bit field which stores which metadata properties were found so far. + The bit mask for the property to check. + The name of the property to check (used for error reporting). + + + + Validates that the string property in an entity reference links collection is valid. + + The value of the property. + The name of the property (used for error reporting). + + + + Validates that the count property in an OData-owned object wrapper is valid. + + The value of the property. + + + + Verifies that the specified property was not yet found. + + + The bit field which stores which properties of an entity reference link collection were found so far. + + The bit mask for the property to check. + The name of the property to check (used for error reporting). + + + + Verifies that the specified property was not yet found. + + + The bit field which stores which properties of an error or inner error were found so far. + + The bit mask for the property to check. + The name of the property to check (used for error reporting). + + + + Validates that the string property in __mediaresource is valid. + + The value of the property. + The name of the property (used for error reporting). + + + + Validates that the property in feed wrapper is valid. + + The value of the property. + The name of the property (used for error reporting). + + + + Gets the payload type name for an OData OM instance for JSON. + + The payload item to get the type name for. + The type name as read from the payload item (or constructed for primitive items). + + + + Converts the given JSON string value to the expected type as per OData conversion rules for JSON values. + + String value to the converted. + Target type to which the string value needs to be converted. + The version of the payload being read. + Object which is in sync with the target type. + + + + Converts the given JSON int value to the expected type as per OData conversion rules for JSON values. + + Int32 value to the converted. + Target type to which the int value needs to be converted. + Type reference to which the value needs to be converted. + true if the conversion should use the V1 provider behavior, false if the default behavior should be used. + Object which is in sync with the property type (modulo the V1 exception of converting numbers to non-compatible target types). + + + + Converts the given datetime value into the allowed target types. + + DateTime value as read by the JsonReader. + Target type to which the datetime value needs to be converted. + Type reference to which the value needs to be converted. + ODataReaderBehavior instance. + Object which is in sync with the target type. + + + + Checks if the given type is a V1 primitive type or not. + + Type instance. + True if the given target type is a V1 primitive type otherwise returns false. + + + + An enumeration of the various kinds of properties on a feed wrapper object. + + + + An unsupported property at the feed level. + + + The inline count property of a feed. + + + The results property of a feed. + + + The next page link property of a feed. + + + + An enumeration of the various kinds of properties on an entity reference link collection. + + + + An unsupported property at the wrapper level. + + + The inline count property of an entity reference links wrapper. + + + The results property of an entity reference links wrapper. + + + The next page link property of an entity reference links wrapper. + + + + Enumeration of all properties in error payloads, the value of the enum is the bitmask which identifies + a bit per property. + + + We only use a single enumeration for both top-level as well as inner errors. + This means that some bits are never set for top-level (or inner errors). + + + + No property found yet. + + + The "error" of the top-level object. + + + The "code" property. + + + The "message" property of either the error object or the inner error object. + + + The "lang" property of the message object. + + + The "value" property of the message object. + + + The "innererror" or "internalexception" property of the error object or an inner error object. + + + The "type" property of an inner error object. + + + The "stacktrace" property of an inner error object. + + + + Enumeration of all properties in __metadata, the value of the enum is the bitmask which identifies + a bit per property. + + + + No property found yet. + + + The "uri" property. + + + The "type" property. + + + The "etag" property. + + + The "media_src" property. + + + The "edit_media" property. + + + The "content_type" property. + + + The "media_etag" property. + + + The "properties" property. + + + The "id" property. + + + The "actions" property. + + + The "functions" property. + + + + OData reader for the Verbose JSON format. + + + + The input to read the payload from. + + + The entry and feed deserializer to read input with. + + + + Constructor. + + The input to read the payload from. + The entity set we are going to read entities for. + The expected entity type for the entry to be read (in case of entry reader) or entries in the feed to be read (in case of feed reader). + true if the reader is created for reading a feed; false when it is created for reading an entry. + If not null, the Json reader will notify the implementer of the interface of relevant state changes in the Json reader. + + + + Implementation of the reader logic when in state 'Start'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.None: assumes that the JSON reader has not been used yet when not reading a nested payload. + Post-Condition: when reading a feed: the reader is positioned on the first item in the feed or the end array node of an empty feed + when reading an entry: the first node of the first navigation link value, null for a null expanded link or an end object + node if there are no navigation links. + + + + + Implementation of the reader logic when in state 'FeedStart'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: Any start node - The first entry in the feed + JsonNodeType.EndArray - The end of the feed + Post-Condition: The reader is positioned over the StartObject node of the first entry in the feed or + on the node following the feed end in case of an empty feed + + + + + Implementation of the reader logic when in state 'FeedEnd'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.EndArray if the feed is not wrapped in the 'results' wrapper + JsonNodeType.EndObject if the feed is wrapped in the 'results' wrapper + Post-Condition: JsonNodeType.EndOfInput for a top-level feed when not reading a nested payload + JsonNodeType.Property more properties exist on the owning entry after the expanded link containing the feed + JsonNodeType.EndObject no further properties exist on the owning entry after the expanded link containing the feed + JsonNodeType.EndArray end of expanded link in request, in this case the feed doesn't actually own the array object and it won't read it. + Any in case of expanded feed in request, this might be the next item in the expanded array, which is not an entry + + + + + Implementation of the reader logic when in state 'EntryStart'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.StartObject The first node of the navigation link property value to read next (feed wrapped in 'results' wrapper) + JsonNodeType.StartArray The first node of the navigation link property value to read next (feed not wrapped in 'results' wrapper) + JsonNodeType.PrimitiveValue (null) The null expanded entry value (representing the end of that entry) + JsonNodeType.EndObject If no (more) properties exist in the entry's content + Post-Condition: JsonNodeType.StartObject The first node of the navigation link property value to read next (feed wrapped in 'results' wrapper) + JsonNodeType.StartArray The first node of the navigation link property value to read next (feed not wrapped in 'results' wrapper) + JsonNodeType.PrimitiveValue (null) The null expanded entry value (representing the end of that entry) + JsonNodeType.EndObject If no (more) properties exist in the entry's content + + + + + Implementation of the reader logic when in state 'EntryEnd'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.EndObject end of object of the entry + JsonNodeType.PrimitiveValue (null) end of null expanded entry + Post-Condition: The reader is positioned on the first node after the entry's end-object node + + + + + Implementation of the reader logic when in state 'NavigationLinkStart'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.StartObject The first node of the navigation link property value to read next + (deferred link or entry inside expanded link or wrapped feed inside expanded link) + JsonNodeType.StartArray feed not wrapped with 'results' wrapper inside of expanded link + JsonNodeType.PrimitiveValue (null) expanded null entry + Post-Condition: JsonNodeType.StartArray: expanded link with a feed that is not wrapped with 'results' wrapper + JsonNodeType.StartObject expanded link with a feed that is warpped with 'results' wrapper + JsonNodeType.PrimitiveValue (null) expanded null entry + JsonNodeType.Property deferred link with more properties in owning entry + JsonNodeType.EndObject deferred link as last property of the owning entry + + + + + Implementation of the reader logic when in state 'NavigationLinkEnd'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.EndObject: expanded link property is last property in owning entry + JsonNodeType.Property: there are more properties after the expanded link property in the owning entry + Post-Condition: JsonNodeType.StartObject The first node of the navigation link property value to read next + JsonNodeType.StartArray The first node of the navigation link property value with a non-wrapped feed to read next + JsonNodeType.EndObject If no (more) properties exist in the entry's content + JsonNoteType.Primitive (null) If an expanded link with null entity instance was found. + + + + + Implementation of the reader logic when in state 'EntityReferenceLink'. + + true if more items can be read from the reader; otherwise false. + + This method doesn't move the reader + Pre-Condition: JsonNodeType.EndObject: expanded link property is last property in owning entry + JsonNodeType.Property: there are more properties after the expanded link property in the owning entry + Any: expanded collection link - the node after the entity reference link. + Post-Condition: JsonNodeType.EndObject: expanded link property is last property in owning entry + JsonNodeType.Property: there are more properties after the expanded link property in the owning entry + Any: expanded collection link - the node after the entity reference link. + + + + + Reads the start of a feed and sets up the reader state correctly. + + true if the feed is inside an expanded link. + + Pre-Condition: The first node of the feed; this method will throw if the node is not + JsonNodeType.StartArray: a feed without 'results' wrapper + JsonNodeType.StartObject: a feed with 'results' wrapper + Post-Condition: The reader is positioned on the first item in the feed, or on the end array of the feed. + + + + + Reads the next node in the content of an expanded navigation link which represents a collection and is in a request payload. + + + This method deals with all the special cases in request payload expanded navigation link for collections. + It should be called when the array start of the content of such a link was already read. + It should be called in these cases: + - Start of the navigation link (to report the first content item of it) + - Entity reference link was reported (to report the next item of the navigation link content) + - Feed end was reported, to report the next non-entry item in the navigation link content + - Entry end was reported, to determine if the next entry should be reported, or if the feed should be closed. + + + + + Reads the start of an entry and sets up the reader state correctly + + + Pre-Condition: JsonNodeType.StartObject Will fail if it's anything else + Post-Condition: JsonNodeType.StartObject The first node of the navigation link property value to read next (deferred link or entry or >=v2 feed wrapper) + JsonNodeType.StartArray The first node of the navigation link property value with a non-wrapped feed to read next + JsonNodeType.PrimitiveValue (null) The null value of the navigation link property value to read next (expanded null entry) + JsonNodeType.EndObject If no (more) properties exist in the entry's content + + + + + Reads the __metadata property for an entry and resolves its type. + + + + + Verifies that the current item is an instance, + sets the cardinality of the link (IsCollection property) and moves the reader + into state 'NavigationLinkEnd'. + + A flag indicating whether the link represents a collection or not. + + + + Starts the entry, initializing the scopes and such. This method starts a non-null entry only. + + + + + Starts the navigation link. + Does metadata validation of the navigation link and sets up the reader to report it. + + The navigation link to start. + The navigation property for the navigation link to start. + + + + Creates a new for the specified and + with the provided and pushes it on the stack of scopes. + + The to use for the new scope. + The item to attach with the state in the new scope. + The expected type for the new scope. + + + + Replaces the current scope with a new with the specified and + the item of the current scope. + + The to use for the new scope. + + + + Called to transition into the EntryEnd state. + + + + + Returns the current entry state. + + + + + Returns current scope cast to JsonScope + + + + + A reader scope; keeping track of the current reader state and an item associated with this state. + + + + + Interface representing a state of the Verbose JSON reader for entry. + + + + + The entry being read. + + + + + The entity type for the entry (if available) + + + + + Flag which indicates that during parsing of the entry represented by this state, + the __metadata property was already found. + + + + + If the reader finds a navigation link to report, but it must first report the parent entry + it will store the navigation link in this property. So this will only ever store the first navigation link of an entry. + + + + + If the reader finds a navigation link to report, but it must first report the parent entry + it will store the navigation property in this property. So this will only ever store the first navigation proeprty of an entry. + + + + + The duplicate property names checker for the entry represented by the current state. + + + + + Constructor creating a new reader scope. + + The reader state of this scope. + The item attached to this scope. + The expected type for the scope. + The has the following meanings for given state: + Start - it's the expected base type of the top-level entry or entries in the top-level feed. + FeedStart - it's the expected base type of the entries in the feed. + note that it might be a more derived type than the base type of the entity set for the feed. + EntryStart - it's the expected base type of the entry. If the entry has no type name specified + this type will be assumed. Otherwise the specified type name must be + the expected type or a more derived type. + NavigationLinkStart - it's the expected base type the entries in the expanded link (either the single entry + or entries in the expanded feed). + In all cases the specified type must be an entity type. + + + + Flag which indicates that during parsing of the entry represented by this scope, + the __metadata property was already found. + + + + + If the reader finds a navigation link to report, but it must first report the parent entry + it will store the navigation link in this property. So this will only ever store the first navigation link of an entry. + + + + + If the reader finds a navigation link to report, but it must first report the parent entry + it will store the navigation property in this property. So this will only ever store the first navigation proeprty of an entry. + + + + + The duplicate property names checker for the entry represented by the current state. + + + + + Flag which is only used on a StartFeed scope. + true - if the feed is the special feed reported as content of an expanded navigation link in request. + false - if the feed is any other (regular) feed. + + + + + Flag which is used to remember whether the feed was wrapped in with 'results' wrapper and which indicates + whether to expect (and read) '}' character at the end of the feed. Used on StartFeed scope for top level + feeds and on NavigationLinkStart scope for nested expanded feed. + true - if the feed was wrapped in results wrapper + false - if the feed was not wrapped in results wrapper + + + + + Flag which is only used on a StartNavigationLink scope in requests. + true - we already found some content for the navigation link in question and it was (or is going to be) reported to the caller. + false - we haven't found any content for the navigation link yet. + + + + + The entry being read. + + + + + The entity type for the entry (if available). + + + + + Extension methods to make it easier to work with EPM. + + + + + All supported base names for serializable EPM annotations. + + + + + FC_TargetPath to enum mapping. + + + + + Ensures that an up-to-date EPM cache exists for the specified . + If no cache exists, a new one will be created based on the public mappings (if any). + If the public mappings have changed (and the cache is thus dirty), the method re-constructs the cache. + If all public mappings have been removed, the method also removes the EPM cache. + + IEdmModel containing the annotations. + IEdmEntityType instance for which to ensure the EPM cache. + The maximum allowed number of entity property mappings + for a given entity type (on the type itself and all its base types). + An instance of , if there are any EPM mappings for the given entity type, otherwise returns null. + + + + Determines if the has any EPM defined on it (or its base types). + + The model containing the annotations. + The entity type to test for presence of EPM. + true if the has EPM; false otherwise. + + + + Returns the EPM information for an entity type. + + The model containing the annotations. + The entity type to get the EPM information for. + Returns the EPM information for an entity type. If there's no such information, this returns null. + + + + Returns the cached EPM information for an entity type. + + The model containing the annotations. + The entity type to get the cached EPM information for. + Returns the cached EPM information for an entity type. If there's no cached information, this returns null. + + + + Gets all the annotations bindings in order to remove all EPM related annotations from a given . + + The model containing the annotations. + The annotatable to get the EPM annotations for. + A dictionary of local annotation name to annotation binding mappings for all serializable EPM annotations on . + + + + Removes the in-memory EPM annotations from an entity type; potentially also drops an existing EPM cache. + + The containing the annotation. + The to remove the EPM annotation from. + + + + Saves the EPM annotations on the given . + + The containing the annotations. + The to save the EPM annotations for. + The EPM cache for the owning entity type. + + + + Saves the EPM annotations on the given . + + The containing the annotations. + The to save the EPM annotations on. + All the EPM annotations to be saved. + true if the source path should be saved explicitly; otherwise false. + true if the prefix of the source path should be removed; otherwise false. + + + + Returns the cached keep-in-content annotation for the primitive properties of a complex type. + + The model containing the annotation. + The complex type to get the cached keep-in-content annotation for. + Returns the keep-in-content annotation for a type. If there's no such annotation this returns null. + + + + Maps the enumeration of allowed values to their string representations. + + Value of the given in + the contstructor. + String representing the xml element path in the syndication property. + + + + Loads the serializable EPM annotations on the given into their in-memory representation. + + The model the entity type belongs to. + The to load the EPM annotations for. + + + + Loads the serializable EPM annotations on the given into their in-memory representation. + + The model the annotatable belongs to. + The to load the EPM annotations for. + The collection of EPM annotations to add newly loaded annotations to. + The name of the type for which to load the annotations or that declares the . Only used in error messages. + The property to parse the EPM annotations for. + + + + Given a gets the corresponding syndication property. + + Target path in the form of a syndication property name. + + Enumeration value of a or SyndicationItemProperty.CustomProperty + if the does not map to any syndication property name. + + + + + Translates a content kind enumeration value to the corresponding string attribute value for serialization to CSDL. + + The content kind to translate. + A string corresponding to the value. + + + + Translates a syndication item property enumeration value to the corresponding string attribute value for serialization to CSDL. + + The syndication item property to translate. + A string corresponding to the value. + + + + Maps the string to an enumeration value of the enumeration. + + The content kind string to map. + The suffix of the attribute name currently being parsed or validated.Only used in error messages. + The name of the type for which to load the annotations or that declares the . Only used in error messages. + The name of the property to parse the EPM annotations for. Only used in error messages. + An value if the could be successfully mapped; otherwise throws. + + + + Parses the serializable EPM annotations of the , groups them by suffix + and translates them into a set of structs. + + The containing the annotations. + The to parse the EPM annotations for. + The name of the type for which the annotations are parsed or that declares the . Only used in error messages. + The property to parse the EPM annotations for. + An enumerable of that represents all the parsed annotations grouped by their suffix. + + + + Validates the annotation values parsed for an EPM mapping. + + The to validate. + The name of the type for which the annotations are validated or that declares the . Only used in error messages. + The property for which the annotations are validated; null if the annotations are for a type. + An instance that represents the mapping created from the . + + + + Removes an existing EPM cache annotation. + + The containing the annotations. + The to remove the EPM cache from. + + + + Checks whether a given OData annotation is an EPM related annotation. + + The instance to check. + true if the annotation is EPM related; otherwise false. + + + + Checks whether a given serializable annotation represents part of an EPM mapping. + + The annotation to check. + The base name of the EPM annotation. + The suffix of the EPM annotation or null if not an EPM annotation. + true if the is an EPM annotation; otherwise false. + + + + Converts the value of the to a string. + + The to convert. + The string representation of the converted annotation value. + + + + Checks that two strings are the same references (and asserts that if they are not they also + don't have the same value). + + The first string to compare. + The second string to compare. + true if the and are the same reference; otherwise false; + + + + Checks whether the has EPM defined for it (either directly + on the type or on one of the base types). + + The containing the annotation. + The to check. + true if the has EPM defined; otherwise false. + + + + Gets the annotation binding with the OData metadata namespace and the specified for the . + + The to set the annotation on. + The local name of the annotation to set. + The value of the annotation to set. + An instance that represnets the annotation with the specified name and value. + + + + Ensures that an up-to-date EPM cache exists for the specified . + If no cache exists, a new one will be created based on the public mappings (if any). + If the public mappings have changed (and the cache is thus dirty), the method re-constructs the cache. + If all public mappings have been removed, the method also removes the EPM cache. + + IEdmModel instance containing the annotations. + IEdmEntityType instance for which to ensure the EPM cache. + The maximum allowed number of entity property mappings + for a given entity type (on the type itself and all its base types). + true if the cache was modified; otherwise false. + An instance of , if there are any EPM mappings for the given entity type, otherwise returns null. + + + + Private struct to store the values of the serializable EPM annotations during loading. + + + + The string value of the FC_SourcePath attribute (or null if not present). + + + The string value of the FC_TargetPath attribute (or null if not present). + + + The string value of the FC_KeepInContent attribute (or null if not present). + + + The string value of the FC_ContentKind attribute (or null if not present). + + + The string value of the FC_NsUri attribute (or null if not present). + + + The string value of the FC_NsPrefix attribute (or null if not present). + + + The attribute suffix used for the attribute names. + + + + Representation of each node in the EpmSourceTree. + + + + + Name of the property under the parent type. + + This fields is used to differentiate between some special node types as well. + - null - this is the root node of the source tree. + - "" (empty string) - this is a node representing a value of a primitive item in a collection property. + - anything else - this is a node representing a property with the name of this field. + + + + List of sub-properties if this segment corresponds to a complex type. + + + + + Corresponding EntityPropertyMappingInfo. + + + + + Constructor creates a root source path segment + + + + + Constructor creates a source path segment with the name set to + + StartPath property name + + + + Name of the property under the parent type. + + This property is used to differentiate between some special node types as well. + - null - this is the root node of the source tree. + - "" (empty string) - this is a node representing a value of a primitive item in a collection property. + - anything else - this is a node representing a property with the name of this property. + These values should not be compared directly, instead use the IsCollectionValueItemValue property to differentiate between the last two. + The root node itself should never be accessed directly so far. + + + + List of sub-properties if this segment corresponds to a complex type. + + + + + Corresponding EntityPropertyMappingInfo. + + + + + Tree representing the sourceName properties in all the EntityPropertyMappingAttributes for a type. + + + + + Root of the tree. + + + + + corresponding to this tree. + + + + + Constructor which creates an empty root. + + Target xml tree + + + + Adds a path to the source and target tree which is obtained by looking at the EntityPropertyMappingAttribute in the + + EnitityPropertyMappingInfo holding the source path + + + + Validates the source tree. + + The entity type for which the validation is performed. + + + + Validates the specified segment and all its subsegments. + + The path segment to validate. + The type of the property represented by this segment (null for open properties). + + + + Returns the type of the property on the specified type. + + The type to look for the property on. + The name of the property to look for. + The type of the property specified. + + + + Root of the tree + + + + + Representation of each node in the EpmTargetTree. + + + + + Name of the xml element/attribute. + + This field is used to differentiate between special nodes as well. + - null - this is the root of the target tree. + - anything else (doesn't start with @) - this node represents an element with the specified name. + - anything else (starts with @) - this node represents an attribute with the specified name. + + + + Cached attribute name if the segment represents an attribute. + + + + + URI of the namespace to which the belongs. + + + + + Prefix to be used in xml document for . + + + + + If this is a non-leaf element, the child elements/attributes collection. + + + + + Parent element of this element/attribute. + + + + + The EPM info object for this target segment, if there's any. + + + + + Constructor initializes the list of sub-nodes to be empty, used for creating root nodes + in the EpmTargetTree. + + + + + Used for creating non-root nodes in the syndication/custom trees. + + Name of xml element/attribute + URI of the namespace for + Namespace prefix to be used for + Reference to the parent node if this is a sub-node, useful for traversals in visitors + + + + Name of the xml element/attribute. + + This property is used to differentiate between special nodes as well. + - null - this is the root of the target tree. + - anything else (doesn't start with @) - this node represents an element with the specified name. + - anything else (starts with @) - this node represents an attribute with the specified name. + The value of the property should not be compared directly to differentiate between these cases, instead + properties IsAttribute and IsElementContentSegment should be used. The root node should not be accessed directly + from anywhere so far. + + + + Retruns name of the attribute the property is mapped to. Must not be called if a property is mapped to an element. + + + + + URI of the namespace to which the belongs. + + + + + Prefix to be used in xml document for . + + + + + EntityPropertyMappingInfo corresponding to current segement. + + + + + Whether this node corresponds to ResourceType or ClientType property values. + + + + + Does this node correspond to xml attribute. + + + + + Parent node in the tree (always an element if present). + + + + + Sub-nodes of this node. Only exist if current node is an element node. + + + + + Tree representing the targetName properties in all the EntityPropertyMappingAttributes for a type. + + + + + Root of the sub-tree for syndication content. + + + + + Root of the sub-tree for custom content. + + + + + Number of properties that have V2 mapping with KeepInContent false. + + + + + Initializes the sub-trees for syndication and non-syndication content. + + + + + Adds a path to the tree which is obtained by looking at the EntityPropertyMappingAttribute in the . + + EnitityPropertyMappingInfo holding the target path + + + + Removes a path in the tree which is obtained by looking at the EntityPropertyMappingAttribute in the . + + EnitityPropertyMappingInfo holding the target path + + + + Validates the target tree. + + This also cleans up the tree if necessary. + + + + Checks if mappings could potentially result in mixed content and dis-allows it. + + StartPath being processed. + A list of ancestor attributes that have content. + Can contain a maximum of one attribute when the method is called, must never contain more than two. + boolean indicating if the tree is valid or not. + + + + Given an gives the correct target path for it + + Given + string with the correct value for the target path + + + + Root of the sub-tree for syndication content. + + + + + Root of the sub-tree for custom content. + + + + + Minimum protocol version required to serialize this target tree. + + + + + Class with utility methods for reading ATOM metadata. + + + + + Creates a new instance of ATOM entry metadata. + + The newly created ATOM entry metadata. + + + + Creates a new instance of ATOM feed metadata. + + The newly created ATOM feed metadata. + + + + Adds a new author to entry metadata. + + The entry metadata to add the author to. + The author metadata to add. + + + + Adds a new contributor to entry metadata. + + The entry metadata to add the contributor to. + The contributor metadata to add. + + + + Adds a new link to entry metadata. + + The entry metadata to add the link to. + The link metadata to add. + + + + Adds a new link to feed metadata. + + The feed metadata to add the link to. + The link metadata to add. + + + + Adds a new category to entry metadata. + + The entry metadata to add the category to. + The category metadata to add. + + + + Adds a new category to feed metadata. + + The feed metadata to add the category to. + The category metadata to add. + + + + Adds a new author to feed metadata. + + The feed metadata to add the author to. + The author metadata to add. + + + + Adds a new contributor to feed metadata. + + The feed metadata to add the contributor to. + The author metadata to add. + + + + Reader for the EPM syndication-only. Read the EPM properties from ATOM metadata OM. + + + + + Constructor. + + The reader entry state for the entry to which the EPM is applied. + The input context currently in use. + + + + Reads the syndication EPM for an entry. + + The reader entry state for the entry to which the EPM is applied. + The input context currently in use. + + + + Reads an EPM for the entire entry. + + + + + Reads a leaf segment which maps to a property value. + + The segment being read. + The ATOM entry metadata to read from. + + + + Reads a non-leaf segment which has sub segments. + + The segment being read. + The ATOM entry metadata to read from. + + + + Reads EPM values from a person construct (author or contributor). + + The target list, this can be either a list of properties (on entry or complex value), + or a list of items (for a collection of primitive types). + The type of the value on which to set the property (can be entity, complex or primitive). + The target segment which points to either author or contributor element. + The person ATOM metadata to read from. + + + + Reads the value of the ATOM text construct and sets it to the EPM. + + The EPM target segment for the value to read. + The text construct to read it from (can be null). + + + + Base class for EPM writers. + + + + The output context currently in use. + + + + Constructor. + + The output context currently in use. + + + + Reads a property value starting on an entry. + + The EPM info which describes the mapping for which to read the property value. + The EPM value cache for the entry to read from. + The type of the entry. + The value of the property (may be null), or null if the property itself was not found due to one of its parent properties being null. + + + + Reads a property value starting on a complex value. + + The EPM info which describes the mapping for which to read the property value. + The complex value to start with. + The EPM value cache to use. + The index in the property value path to start with. + The type of the complex value. + The value of the property (may be null), or null if the property itself was not found due to one of its parent properties being null. + + + + Reads a property value starting with the specified index to the property value path. + + The EPM info which describes the mapping for which to read the property value. + The enumeration of properties to search for the first property in the property value path. + The index in the property value path to start with. + The type of the entry or complex value the enumeration belongs to. + The EPM value cache to use. + The value of the property (may be null), or null if the property itself was not found due to one of its parent properties being null. + + + The version of OData protocol to use. + + + The settings to control the behavior of the writer. + + + + Interface representing a state of the ATOM reader for entry. + + + + + The entry being read. + + + + + The entity type for the entry (if available) + + + + + Flag which indicates that the ATOM entry element representing the entry is empty. + + + + + Flag which indicates whether we have found a read link for this empty (even if it had a null URI value). + + + + + Flag which indicates whether we have found an edit link for this empty (even if it had a null URI value). + + + + + Flag which indicates whether we have found an edit-media link for this empty (even if it had a null URI value). + + + + + Flag which indicates whether we have found an id element. + + + + + Flag which indicates whether we have found a content element . + + + + + Flag which indicates whether we have found a category element with the required type name. + + + + + Flag which indicates whether we have found a m:properties element. + + + + + Flag indicating if we have already made a decision about the current entry and its being MLE or not. + If this property has a null value, we don't know for sure yet (both are possible), if it has non-null value + then we already know for sure and if we find something different we should fail. + + + + + If the reader finds a navigation link to report, but it must first report the parent entry + it will store the navigation link descriptor in this property. So this will only ever store the first navigation link of an entry. + + + + + The duplicate property names checker for the entry represented by the current state. + + + + + The EPM information for the entry, or null if there's no EPM for this entry. + + + + + The ATOM entry metadata to fill as we read the content of the entry. + + + + + The cache for values read from custom EPM. + + + This should only be accessed if there's CachedEpm available for this entry. + + + + + Interface representing a state of the ATOM reader for feed. + + + + + The feed being read. + + + + + Flag which indicates that the ATOM feed element representing the feed is empty. + + + + + The ATOM feed metadata to fill as we read the content of the feed. + + + + + Flag which indicates if a m:count element was found. + + + + + Flag which indicates if a link[@rel='next'] element was found. + + + + + Flag which indicates if a link[@rel='self'] element was found. + + + + + Flag which indicates if a link[@rel='http://docs.oasis-open.org/odata/ns/delta'] element was found. + + + + + OData ATOM deserializer for collections. + + + + Cached duplicate property names checker to use if the items are complex values. + + + + Constructor. + + The ATOM input context to read from. + + + + Reads the start element of a collection. + + true, if the collection element is empty; false otherwise. + An representing the collection-level information. Currently this only contains + the name of the collection. + + Pre-Condition: XmlNodeType.Element - The start element of the collection. + Post-Condition: Any - The next node after the start element node of the collection or the + empty collection element node. + + + + + Reads the end of a collection. + + + Pre-condition: XmlNodeType.EndElement - The end element of the collection. + XmlNodeType.Element - The start element of the collection, if the element is empty. + Post-condition: Any - Next node after the end element of the collection. + + + + + Reads an item in the collection. + + The expected type of the item to read. + The collection validator instance if no expected item type has been specified; otherwise null. + The value of the collection item that was read; this can be an ODataComplexValue, a primitive value or 'null'. + + Pre-Condition: XmlNodeType.Element - The start element node of the item in the collection. + Post-Condition: Any - The next node after the end tag of the item. + + + + + Reads from the Xml reader skipping all nodes until an Element or an EndElement in the OData namespace + is found or the reader.EOF is reached. + + + + + Possible content types of expanded navigation link in ATOM. + + + + No content found, no m:inline. + + + Empty content found, m:inline without anything in it. Usually represents null entry. + + + Expanded entry found. + + + Expanded feed found. + + + + OData ATOM deserializer for entries and feeds. + + + + Schema namespace for Atom. + + + XML element name to mark entry element in Atom. + + + 'category' - XML element name for ATOM 'category' element for entries. + + + 'term' - XML attribute name for ATOM 'term' attribute for categories. + + + 'scheme' - XML attribute name for ATOM 'scheme' attribute for categories. + + + XML element name to mark content element in Atom. + + + XML element name to mark link element in Atom. + + + Element containing property values when 'content' is used for media link entries + + + XML element name to mark feed element in Atom. + + + XML element name to mark id element in Atom. + + + XML attribute name of the link relation attribute in Atom. + + + XML attribute name of the href attribute of a link in Atom. + + + Atom source attribute name for the content of media link entries. + + + OData attribute which indicates the etag value for the declaring entry element. + + + OData element name for the 'count' element + + + 'Inline' - wrapping element for inlined entry/feed content. + + + Element name for m:action. + + + Element name for m:function. + + + Attribute name for m:action|m:function/@metadata. + + + Attribute name for m:action|m:function/@title. + + + Attribute name for m:action|m:function/@target. + + + + The reader used to parse annotation elements. + + + + + ATOM deserializer for ATOM metadata on entries. + This is created on-demand only when needed, but then it's cached. + + + + + ATOM deserializer for ATOM metadata on feeds. + This is created on-demand only when needed, but then it's cached. + + + + + Constructor. + + The ATOM input context to read from. + + + + Ensure a media resource is created for the specified entry. + + The reader entry state for the entry being read. + If set to true, this method will validate that marking the entry as MLE + doesn't collide with it already being marked as non-MLE. + + + + Verified that the reader is positioned on the atom:entry start element node. + + + + + Read the start of the entry. + This method verifies that the current element is atom:entry and it reads the ETag from it. + + The entry instance to fill the properties on. + + Pre-Condition: XmlNodeType.Element - The method will fail if it's not element called atom:entry + Post-Condition: XmlNodeType.Element - The atom:entry element + + + + + Reads the content of an entry (child nodes of the atom:entry, not the atom:content element). + + The reader entry state for the entry being read. + A descriptor representing the navigation link detected; + null if no navigation link was found and the end of the entry was reached. + + Pre-Condition: Anything but Attribute - the child node of the atom:entry element, can be pretty much anything, the method will skip over insignificant nodes and text nodes if found. + Post-Condition: XmlNodeType.EndElement atom:entry - The end of the atom:entry element if no nav. link was found and the end of the entry was reached. + XmlNodeType.Element atom:link - The start tag of the atom:link element representing a navigation link. + + + + + Read the end of the entry. + + + Pre-Condition: XmlNodeType.Element (empty) atom:entry - The atom:entry empty element to read end of. + XmlNodeType.EndElement atom:entry - The end element of atom:entry to read. + Post-Condition: Any - The node right after the entry element. + + + + + Read the start of the feed. + This method verifies that the current element is atom:feed. + + + Pre-Condition: XmlNodeType.Element - The method will fail if it's not called atom:feed (but won't validate that it's an element) + Post-Condition: XmlNodeType.Element - The atom:feed element + + + + + Reads the content of a feed (child nodes of the atom:feed). + + The reader feed state for the feed being read. + true if the feed is inside an expanded link. + true if an entry was found or false if no more entries were found in the feed. + + Pre-Condition: Anything but Attribute - the child node of the atom:feed element, can be pretty much anything, the method will skip over insignificant nodes and text nodes if found. + Post-Condition: XmlNodeType.EndElement atom:feed - The end of the atom:feed element if no entry was found and the end of the feed was reached. + XmlNodeType.Element atom:entry - The start tag of the atom:entry element representing an entry in the feed. + + + + + Read the end of the feed. + + + Pre-Condition: XmlNodeType.Element (empty) atom:feed - The atom:feed empty element to read end of. + XmlNodeType.EndElement atom:feed - The end element of atom:feed to read. + Post-Condition: Any - The node right after the entry element. + + + + + Read the content of the navigation link before any expansion was found. + + + An enumeration value indicating what content was found: + None - no m:inline was found, the link is deferred. The reader is positioned on the atom:link end element. + Empty - empty m:inline was found - usually means null entry. The reader is positioned on empty start m:inline or end element m:inline. + Entry - expanded entry was found. The reader is positioned on the atom:entry element. + Feed - expanded feed was found. The reader is positioned on the atom:feed element. + + + Pre-Condition: Any - a node in the atom:link content. + Post-Condition: XmlNodeType.EndElement atom:link - the end of the navigation link was reached. + XmlNodeType.Element atom:feed - an expanded feed was found. + XmlNodeType.Element atom:entry - an expanded entry was found. + XmlNodeType.Element (empty) m:inline - empty inline was found. + XmlNodeType.EndElement m:inline - empty inline was found. + + + + + Determines if the reader is positioned on the m:inline end element or empty m:inline start element. + + true if the reader is on m:inline end element or m:inline empty start element; false otherwise. + + + + Skips everything until an end-element for atom:link is found. + + + This method should only be used to skip the rest of the link content after the ReadNavigationLinkContentBeforeExpansion was called. + Pre-Condition: XmlNodeType.Element atom:entry - start of the expanded entry + XmlNodeType.Element atom:feed - start of the expanded feed + XmlNodeType.Element (empty) m:inline - empty m:inline element (emptyInline = true) + XmlNodeType.EndElement m:inline - end of the m:inline element. + Post-Condition: XmlNodeType.EndElement atom:link - the end element of the navigation link. + + + + + Read the content of the navigation link after the expansion was found. + The method returns when the entire atom:link was read. + + + true if the reader is positioned on the empty start tag or end tag of the m:inline element. + false if the reader is inside m:inline (or on the end tag of m:inline). + + + Pre-Condition: Any - child node of the m:inline element (emptyInline == false) + XmlNodeType.Element (empty) m:inline - empty m:inline element (emptyInline = true) + XmlNodeType.EndElement m:inline - end of the m:inline element. + Post-Condition: XmlNodeType.EndElement atom:link - the end element of the navigation link. + + + + + Read the end of the navigation link. + + + Pre-Condition: XmlNodeType.Element (empty) atom:link - the empty atom:link element of a deferred navigation link. + XmlNodeType.EndElement atom:link - the end element atom:link. + Post-Condition: Any - The node right after the link element. + + + + + Reads the entry content in buffering mode and looks for the type name (the category element with the right attributes). + + The type name if one of found or null if none was found. + + Pre-Condition: XmlNodeType.Element - the atom:entry element + Post-Condition: XmlNodeType.Element - the atom:entry element on which the reader started. + + + + + Returns an existing stream property value if it already exists in the list of OData properties otherwise creates a new + ODataProperty for the stream property and returns the value of that property. + + The reader entry state for the entry being read. + The name of the stream property to return. + A new or an existing stream property value. + + + + If the is true, then the default behavior should throw. + + This method assumes the reader is positioned on the duplicated element. + Used to determine if duplicate check should throw an exception. + + + + Reads an ATOM element inside the atom:entry from the input. + + The reader entry state for the entry being read. + + If the atom element is representing a navigation link a descriptor for that link is returned, + otherwise null. + + + Pre-Condition: XmlNodeType.Element in ATOM namespace - The element in ATOM namespace to read. + Post-Condition: Any - The node after the ATOM element if it's not a navigation link. + XmlNodeType.Element atom:link - The start tag of atom:link if it's a navigation link. + + + + + Reads the atom:content element. + + The reader entry state for the entry being read. + + Pre-Condition: XmlNodeType.Element atom:content - The atom:content element to read. + Post-Condition: Any - The node after the atom:content element. + + + + + Reads the attributes of the <atom:content> element. + + The content type attribute value (or null if not found). + The content source attribute value (or null if not found). + + + + Reads the atom:id element in the atom:entry element. + + The reader entry state for the entry being read. + + Pre-Condition: XmlNodeType.Element atom:id - The atom:id element to read. + Post-Condition: Any - The node after the atom:id element. + + + + + Reads the atom:link element in atom:entry. + + The reader entry state for the entry being read. + + If the link is a navigation link the method returns a descriptor representing that link, + otherwise the method returns null. + + + Pre-Condition: XmlNodeType.Element atom:link - The atom:link element to read. + Post-Condition: Any - The node after the atom:link element if it's not a navigation link. + XmlNodeType.Element atom:link - The atom:link start tag if it's a navigation link. + + + + + Reads the atom:link element with one of the standard relation values in the atom:entry element. + + The reader entry state for the entry being read. + The rel attribute value for the link. + The href attribute value for the link (or null if the href attribute was not present). + If the rel was one of the recognized standard relations and this method read the link + the return value is true. Otherwise the method doesn't move the reader and returns false. + + Pre-Condition: XmlNodeType.Element atom:link - The atom:link element to read. + Post-Condition: Any - The node after the atom:link element if the link was read by this method. + XmlNodeType.Element atom:link - The atom:link element to read if the link was not read by this method. + + + + + Reads a navigation link in entry element. + + The reader entry state for the entry being read. + The value of the rel attribute of the link to read, unescaped parsed URI. + The value of the href attribute of the link to read. + A descriptor of a navigation link if a navigation link was found; null otherwise. + + Pre-Condition: XmlNodeType.Element atom:link - the start tag of the atom:link element to read. + Post-Condition: XmlNodeType.Element atom:link - the start tag of the atom:link element - the reader doesn't move + + + + + Reads a stream property edit or read link in an atom:entry. + + The reader entry state for the entry being read. + The rel attribute value for the link, unescaped parsed URI. + The href attribute value for the link (or null if the href attribute was not present). + true if the link is a stream property read or edit link; otherwise false. + true, if the named stream was read successfully, false otherwise. + + Pre-Condition: XmlNodeType.Element atom:link - The atom:link element to read. + Post-Condition: Any - The node after the atom:link element if the link was read by this method. + XmlNodeType.Element atom:link - The atom:link element to read if the link was not read by this method. + + + + + Reads a stream property link in an atom:entry. + + The reader entry state for the entry being read. + The name of the stream property that is being read. + The rel attribute value for the link. + The href attribute value for the link (or null if the href attribute was not present). + true if we are reading an edit link; otherwise false. + true if the stream property link was read; otherwise false. + + Pre-Condition: XmlNodeType.Element atom:link - The atom:link element to read. + Post-Condition: Any - The node after the atom:link element if the link was read by this method. + XmlNodeType.Element atom:link - The atom:link element to read if the link was not read by this method. + + + + + Reads a an association link in atom:entry. + + The reader entry state for the entry being read. + The rel attribute value for the link, unescaped parsed URI. + The href attribute value for the link (or null if the href attribute was not present). + true, if the association link was read succesfully, false otherwise. + + Pre-Condition: XmlNodeType.Element atom:link - The atom:link element to read. + Post-Condition: Any - The node after the atom:link element if the link was read by this method. + XmlNodeType.Element atom:link - The atom:link element to read if the link was not read by this method. + + + + + Reads a an m:action or m:function in atom:entry. + + The reader entry state for the entry being read. + true, if the m:action or m:function was read succesfully, false otherwise. + + Pre-Condition: XmlNodeType.Element m:action|m:function - The m:action or m:function element to read. + Post-Condition: Any - The node after the m:action or m:function element if it was read by this method. + XmlNodeType.Element m:action|m:function - The m:action or m:function element to read if it was not read by this method. + + + + + Reads an ATOM element inside the atom:feed from the input. + + The reader feed state for the feed being read. + true if the feed is inside an expanded link. + true if the atom:entry element was found and the reader was not moved; + false otherwise and the reader is positioned on the next node after the ATOM element. + + Pre-Condition: XmlNodeType.Element in ATOM namespace - The element in ATOM namespace to read. + Post-Condition: Any - The node after the ATOM element which was consumed. + XmlNodeType.Element atom:entry - The start of the atom:entry element (the reader did not move in this case). + + + + + Reads the atom:link element with one of the standard relation values in the atom:feed element. + + The reader feed state for the feed being read. + The rel attribute value for the link. + The href attribute value for the link (or null if the href attribute was not present). + true if the feed is inside an expanded link. + If the rel was one of the recognized standard relations and this method read the link + the return value is true. Otherwise the method doesn't move the reader and returns false. + + Pre-Condition: XmlNodeType.Element atom:link - The atom:link element to read. + Post-Condition: Any - The node after the atom:link element if the link was read by this method. + XmlNodeType.Element atom:link - The atom:link element to read if the link was not read by this method. + + + + + Reads the Atom metadata for the link if metadata is required to be read, skip it otherwise. + + The rel attribute value for the link. + The href attribute value for the link (or null if the href attribute was not present). + Action for adding AtomLinkMetadata to the AtomFeedMetadata + + + + Reads the atom:link element's rel and href attributes. + + The value of the rel attribute or null if no such attribute was found. + The value of the href attribute or null if no such attribute was found. + + Pre-Condition: XmlNodeType.Element atom:link - The atom:link element to read. + Post-Condition: XmlNodeType.Element atom:link - The atom:link element to read - the reader doesn't not move. + + + + + Reads the content of navigation link. + + + true if m:inline was found, + false if the end of the atom:link was found. + + + Pre-Condition: Any - a child node of the atom:link element. + Post-Condition: XmlNodeType.Element m:inline - the m:inline was found, the method returns true. + XmlNodeType.EndElement atom:link - the atom:link end element, end of the navigation link, the method returns false. + + + + + Reads content of the m:inline element. + + + Enumeration denoting what was found in the content. + Empty - The end of the m:inline element was found - the reader is positioned on the m:inline end element. + Entry - An expanded entry was found - the reader is positioned on atom:entry element. + Feed - An expanded feed was found - the reader is positioned on atom:feed element. + None - will never be returned. + + + Pre-Condition: Any - child node of the m:inline element. + Post-Condition: XmlNodeType.Element atom:feed - an expanded feed was found. + XmlNodeType.Element atom:entry - an expanded entry was found. + XmlNodeType.EndElement m:inline - empty inline was found. + + + + + Verifies that the specified content type of an atom:content element matches the expected value. + + The content type value read from the payload. + The verified media type name (without parameters or charset) of the content type. + + + + ATOM deserializer for ATOM metadata on entries. + This is created on-demand only when needed, but then it's cached. + + + + + ATOM deserializer for ATOM metadata on feeds. + This is created on-demand only when needed, but then it's cached. + + + + + Flag indicating if ATOM metadata is required to be read by the user. + + + + + OData ATOM deserializer for ATOM metadata on entries. + + + + The empty namespace used for attributes in no namespace. + + + Schema namespace for Atom. + + + + Feed ATOM metadata deserializer for deserializing the atom:source element in an entry. + This is created on-demand only when needed, but then it's cached. + + + + + Constructor. + + The ATOM input context to read from. + + + + Reads an element in ATOM namespace in the content of the entry element. + + The reader entry state for the entry being read. + + Pre-Condition: XmlNodeType.Element (atom:*) - the ATOM element to read. + Post-Condition: Any - the node after the ATOM element which was read. + + + + + Reads the atom:link element in the entry content. + + The value of the rel attribute for the link element. + The value of the href attribute for the link element. + An instance storing the information about this link, or null if link info doesn't need to be stored. + + Pre-Condition: XmlNodeType.Element (atom:link) - the atom:link element to read. + Post-Condition: XmlNodeType.Element (atom:link) - the atom:link element which was read. + + + + + Reads the atom:category element in the entry content. + + The reader entry state for the entry being read. + + Pre-Condition: XmlNodeType.Element (atom:category) - the atom:category element to read. + Post-Condition: Any - the node after the atom:category which was read. + + + + + Reads the atom:category element. + + The ATOM category metadata read. + + Pre-Condition: XmlNodeType.Element (atom:category) - the atom:category element to read. + Post-Condition: Any - the node after the atom:category which was read. + + + + + Reads the atom:source element in the entry content. + + The information in the source element as . + + Pre-Condition: XmlNodeType.Element (atom:source) - the atom:source element to read. + Post-Condition: Any - the node after the atom:source which was read. + + + + + Reads an author element. + + The reader entry state for the entry being read. + The EPM target path segment for the element to read, or null if no EPM for that element is defined. + + Pre-Condition: XmlNodeType.Element (atom:author) - the atom:author element to read. + Post-Condition: Any - the node after the atom:author element which was read. + + + + + Reads a contributor element. + + The reader entry state for the entry being read. + The EPM target path segment for the element to read, or null if no EPM for that element is defined. + + Pre-Condition: XmlNodeType.Element (atom:contributor) - the atom:contributor element to read. + Post-Condition: Any - the node after the atom:contributor element which was read. + + + + + Determines if a person element should be read or skipped. + + true if some elements from the collection in question already exist; false if this is the first one. + true if the collection element should be read; false if it should be skipped. + + + + Determines if we should read an element which is allowed to appear only once in ATOM. + + true if we already found such element before; false if this is the first occurence. + true if the element should be processed; false if the element should be skipped. + The method may throw if multiple occurences of such element occure and they should be treated as an error. + + + + Feed ATOM metadata deserializer for deserializing the atom:source element in an entry. + This is created on-demand only when needed, but then it's cached. + + + + + /// OData ATOM deserializer for service document. + + + + The name of the top-level service document element. + + + The name of the 'workspace' element of a service document. + + + href attribute name in Atom. + + + The name of the 'collection' element of a service document. + + + The name of the 'categories' element of a service document. + + + The name of the 'accept' element of a service document. + + + The Atom Publishing Protocol (APP) namespace. + + + The ATOM namespace. + + + The name of the 'title' element of a service document. + + + The emtpy namespace used for attributes in no namespace. + + + + ATOM deserializer for ATOM metadata on service documents. + This is created on-demand only when needed, but then it's cached. + + + + + Constructor. + + The ATOM input context to read from. + + + + Reads a service document. + This method reads the service document from the input and returns + an that represents the read service document. + + An representing the read service document. + + Pre-Condition: XmlNodeType.Element - The start element of the service document. + Post-Condtion: XmlNodeType.None - The reader must be at the end of the input. + + + + + Reads a workspace of a service document. + + An representing the workspace of a service document. + + Pre-Condition: Any - the next node after the service element. + Post-Condition: Any - The next node after the workspace element. + + + + + Reads a resource collection element of a workspace of the service document. + + An representing the resource collection in a workspace of a service document. + + Pre-Condition: XmlNodeType.Element - the collection element inside the workspace. + Post-Condition: Any - The next node after the collection element. + + + + + Reads from the Xml reader skipping all nodes until an Element or an EndElement in the ATOM + publishing namespace is found. + + + + + ATOM deserializer for ATOM metadata on service documents. + This is created on-demand only when needed, but then it's cached. + + + + + Handles serialization and deserialization for types derived from Geography. + + + + + Create a geography instance from the value in an Xml reader. + + The Xml reader to use to read the value. + In order to be consistent with how we are reading other types of property values elsewhere in the product, the reader + is expected to be placed at the beginning of the element when entering this method. After this method call, the reader will be placed + at the EndElement, such that the next Element will be read in the next Read call. The deserializer that uses this value expects + the reader to be in these states when entering and leaving the method. + + Geography instance that was read. + + + + Write the Atom representation of an instance of a primitive type to an XmlWriter. + + The instance to write. + The Xml writer to use to write the instance. + + + + Write the Verbose Json representation of an instance of a primitive type to a json writer. + + The instance to write. + Instance of JsonWriter. + Type name of the instance to write. If the type name is null, the type name will not be written in the payload. + The OData protocol version to be used for writing payloads. + + + + Write the Json Lite representation of an instance of a primitive type to a json writer. + + The instance to write. + Instance of JsonWriter. + The OData protocol version to be used for writing payloads. + + + + Annotation which stores a hashset of property names of a complex type that returned KeepInContent == true + when written the first time. See the comments on ODataWriterBehavior.UseV1ProviderBehavior for more details. + + + + + A hash set with the property names of properties that are kept in the content. + + + + + Constructor. + + Enumeration of property names that are kept in content. + + + + Determines if a property is in a list of properties that are kept in the content. + + The name of the property to lookup. + true if the property is kept in the content; false otherwise. + + + + Atom metadata description for a text construct (plain text, html or xhtml). + + + + Converts a string to an instance. + The instance created for text. + The to convert to an . + + + + Implicit conversion from string to . + + The to convert to an . + The result. + + + Gets or sets the kind of the text construct (plain text, html, xhtml). + The kind of the text construct. + + + Gets or sets the text content. + The text content. + + + + Enumeration for classifying the different kinds of text content in ATOM metadata. + + + + Plain text. + + + Html text. + + + XHtml text. + + + + XML reader which supports look-ahead. + + + + The "http://www.w3.org/XML/1998/namespace" namespace for the "xml" prefix. + + + The "base" name for the XML base attribute. + + + The 'lang' attribute local name of the xml:lang attribute. + + + XML namespace for data service annotations. + + + XML namespace for data services. This is to provide compatibility with WCF DS client which accepts custom data namespace value. + + + The 'error' local name of the error element. + + + The underlying XML reader this buffering reader is wrapping. + + + The (possibly empty) list of buffered nodes. + This list stores only non-attribute nodes, attributes are stored in a separate list on an element node. + + + + A special buffered node instance which represents the end of input. + We always have just one instance and compare references. + + + + Flag to control if the xml:base attributes should be processed when reading. + + + The maximumum number of recursive internalexception elements to allow when reading in-stream errors. + + + The base URI for the document. + + + A pointer into the bufferedNodes list to track the most recent position of the current buffered node. + + + + A pointer into the linked list of attribute nodes which is only used if the currentBufferedNodeToReport is the attribute value node (not the attribute itself). + In that case it points to the current attribute node. + In all other cases this node is null. + + + + A pointer either into the bufferedNodes list or into the list of attributes on a buffered element node + which points to the node which should be reported to the user. + + + + A flag indicating whether the reader is in buffering mode or not. + + + + A flag indicating that the last node for non-buffering read was taken from the buffer; we leave the + node in the buffer until the next Read call. + + + + Flag to control whether in-stream errors should be detected when reading. + + + The stack of XML base URI definitions. + + + The XML base stack state when the buffering started. This is only used when in buffering mode. + + + Constructor + The reader to wrap. + If this reader is wrapping an inner reader of some kind, this parameter should pass the xml:base effective value of the parent. + The base URI for the document. + Flag to control if the xml:base attributes should be processed when reading. + The maximum number of recursive internalexception elements to allow when reading in-stream errors. + XML namespace for data services. + + + + Reads the next node from the input. + + true if another node is available and the reader has moved to it; false if end of input was reached. + + + + Moves the reader to the element which owns the current attribute. + + true if the reader has moved (that is the current node was an attribute); + false if the reader didn't move (the reader was already positioned on an element or other node). + + + + Moves the reader to the first attribute of the current element. + + true if the reader moved to the first attribute; false if there are no attribute for the current node (the reader didn't move). + + + + Moves the reader to the next attribute on the current element. + + true if the reader moved to the next attribute (if the node was an element it moves to the first attribute); + false if the reader didn't move (no attributes for the current node). + + + + Reads the next node from the value of an attribute. + + true if next node was available; false if end of the attribute value was reached. + + + + Closes the reader and the underlying input. + + + + + Returns the value of an attribute based on its index. + + The index of the attribute, starts at 0. + The value of the attribute at index . + + + + Returns the value of an attribute based on its fully qualified name. + + The local name of the attribute. + The namespace URI of the attribute. + The value of the attribute with specified and . + + + + Returns the value of an attribute based on its name. + + The name of the attribute. (prefix:localname) + The value of the attribute with specified . + + + + Looks up a namespace URI based on the prefix. + + The prefix to search for. + The namespace URI for the specified . + + + + Moves the reader to the attribute specified by fully qualified name. + + The local name of the attribute. + The namespace URI of the attribute. + true if the attribute specified by and was found and the reader is positioned on it; + false otherwise. + + + + Moves the reader to the attribute specified by name. + + The name of the attribute (prefix:localname). + true if the attribute specified by was found and the reader is positioned on it; + false otherwise. + + + + Resolves the current entity node. + + + + + Puts the reader into the state where it buffers read nodes. + + + + + Puts the reader into the state where no buffering happen on read. + Either buffered nodes are consumed or new nodes are read (and not buffered). + + + + + The actual implementatin of the Read method. Moves the reader to the next node. + + true if the reader should not check for in-stream errors; otherwise false. + true if next node is available and the reader has moved; false if end-of-input was reached. + + + + Reads the next node from the XML reader and if m:error element node is detected starts reading ahead and + tries to parse an in-stream error. + + true if a new node was found, or false if end of input was reached. + + + + Determines if the specified node is the end of input node. + + The buffered node to test. + true if the node is the special end of input node, false otherwise. + + + + Buffers the current reader state into a node. + + The newly created buffered node. + + + + Returns the current element node (or node which acts like an element, it doesn't have to be of type Element). + + The current element node. + + + + Finds the buffered node for the attribute specified by its index. + + The index of the attribute. + The linked list node of the found attribute, or null if no such attribute could be found. + + + + Finds the buffered node for the attribute specified by its local name and namespace URI. + + The local name of the attribute. + The namespace URI of the attribute. + The linked list node of the found attribute, or null if no such attribute could be found. + + + + Finds the buffered node for the attribute specified by its qualified name. + + The qualified name of the attribute to find, that is prefix:localName. + The linked list node of the found attribute, or null if no such attribute could be found. + + + + If the reader is positioned on the attribute value node, this moves it to the owning attribute node. + + + + + Returns the value of an attribute based on its fully qualified name. + + The local name of the attribute. This string must already be atomized against the reader's nametable. + The namespace URI of the attribute. This string must already be atomized against the reader's nametable. + The value of the attribute with specified and . + + Behaves the same as GetAttribute, but it assumes that the parameters are already atomized against our nametable. + This allows the method to be much faster. + + + + + Validates internal state of the reader - debug only. + + + + + Returns the type of the current node. + + + + + Returns true if the reader is positioned on an empty element. + + + + + Returns the local name of the current node. + + + + + Returns the prefix of the current node. + + + + + Returns the namespace URI of the current node. + + + + + Returns the value of the current node. + + + + + Returns the depth of the current node. + + + + + Returns true if the end of input was reached. + + + + + Returns the current state of the reader. + + We need to support ReadState in order for Skip to work without us implementing it again. + + + + Returns the nametable used by the reader. + + + + + Returns the number of attributes on the node. + + + + + Returns the base URI of the node - note that this is not based on the xml:base attribute, just the input streams. + + + + + Returns true if the current node has a value. + + + + + The active XML base URI for the current node. + + + + + The active XML base URI for the parent node (parent element) of the current node. + + + + + Flag to control whether in-stream errors should be detected when reading. + + + + + Class representing one buffered XML node + + + + + The list of attribute nodes, if this node is an element node. + + + + + Constructor. + + The XML reader to get all the interesting values from. The reader + is positioned on the node which the new buffered node should buffer. + + + + Constructor for an attribute value node + + The value of the attribute value node to create. + The parent attribute depth. + The nametable to use. + + + + Constructor for end of input node. + + The atomized instance of an empty string. + + + + Creates a special node which represents the end of input. + + The nametable of the underlying reader. + The newly created node. + + + The type of the buffered node. + + + The namespace URI of the buffered node. + + + The local name of the buffered node. + + + The prefix of the buffered node. + + + The value of the buffered node. + + + The depth of the buffered node. + + + Denotes if the buffered node is an empty element. + + + List of attributes. If the node is not element, this will be null. + + + + Helper class to store XML base URI definition for a specific depth of the reader. + + + + + Constructor. + + The XML base URI for the definition. + The depth of the XML reader for the definition. + + + The base URI for this definition. + + + The depth of the XmlReader on which this XML base is defined. + + + + Atom metadata for stream reference values. + + + + Gets or sets an Atom link metadata for the self link. + An Atom link metadata for the self link. + + + Gets or sets an Atom link metadata for the edit link. + An Atom link metadata for the edit link. + + + + OData collection reader for ATOM format. + + + + The input to read the payload from. + + + The collection deserializer to use to read from the input. + + + + Constructor. + + The input to read the payload from. + The expected type reference for the items in the collection. + + + + Implementation of the collection reader logic when in state 'Start'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: XmlNodeType.None - assumes that the Xml reader has not been used yet. + Post-Condition: Any - the next node after the collection element node or the empty collection element node. + + + + + Implementation of the reader logic when in state 'CollectionStart'. + + true if more nodes can be read from the reader; otherwise false. + + Pre-Condition: Any - the next node after the collection element or the empty collection element node. + Post-Condition: Any - the next node after the end tag of the item or the collection. + + + + + Implementation of the reader logic when in state 'Value'. + + true if more nodes can be read from the reader; otherwise false. + + Pre-Condition: Any - the next node after the end tag of the item. + Post-Condition: Any - the next node after the end tag of the item or the collection. + + + + + Implementation of the reader logic when in state 'CollectionEnd'. + + false since no more nodes can be read from the reader after the collection ends. + + Pre-Condition: Any - the next node after the end tag of the collection element. + Post-Condtion: XmlNodeType.None - the reader is at the end of the input. + + + + + Implementation of the OData input for ATOM OData format. + + + + The XML reader used to parse the input. + Do not use this to actually read the input, instead use the xmlReader. + + + The XML reader to read from. + If entry XML customization is used this is the reader for the current entry. + + + A stack used to track XML customization readers. + + At the beginning the base reader is pushed to the stack. + Each non-null entry has an item on this stack. + If the XML customization was used for a given entry the reader returned by the customization will be pushed to the stack for it. + This is only used from ODataAtomReader, other readers don't use this. + + + + Constructor. + The format for this input context. + The stream to read data from. + The encoding to use to read the input. + Configuration settings of the OData reader. + The OData protocol version to be used for reading the payload. + true if reading a response message; otherwise false. + true if the input should be read synchronously; false if it should be read asynchronously. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs read from the payload. + + + + Creates an to read a feed. + + The entity set we are going to read entities for. + The expected base type for the entries in the feed. + The newly created . + + + + Asynchronously creates an to read a feed. + + The entity set we are going to read entities for. + The expected base type for the entries in the feed. + Task which when completed returns the newly created . + + + + Creates an to read an entry. + + The entity set we are going to read entities for. + The expected entity type for the entry to be read. + The newly created . + + + + Asynchronously creates an to read an entry. + + The entity set we are going to read entities for. + The expected entity type for the entry to be read. + Task which when completed returns the newly created . + + + + Create a . + + The expected type reference for the items in the collection. + Newly create . + + + + Asynchronously create a . + + The expected type reference for the items in the collection. + Task which when completed returns the newly create . + + + + Read a service document. + This method reads the service document from the input and returns + an that represents the read service document. + + An representing the read service document. + + + + Asynchronously read a service document. + This method reads the service document from the input and returns + an that represents the read service document. + + Task which when completed returns an representing the read service document. + + + + This method creates an reads the property from the input and + returns an representing the read property. + + The producing the property to be read. + The expected type reference of the property to read. + An representing the read property. + + + + Asynchronously read the property from the input and + return an representing the read property. + + The or producing the property to be read. + The expected type reference of the property to read. + Task which when completed returns an representing the read property. + + + + Read a top-level error. + + An representing the read error. + + + + Asynchronously read a top-level error. + + Task which when completed returns an representing the read error. + + + + Read a set of top-level entity reference links. + + The navigation property for which to read the entity reference links. + An representing the read links. + + + + Asynchronously read a set of top-level entity reference links. + + The navigation property for which to read the entity reference links. + Task which when completed returns an representing the read links. + + + + Reads a top-level entity reference link. + + The navigation property for which to read the entity reference link. + An representing the read entity reference link. + + + + Asynchronously read a top-level entity reference link. + + The navigation property for which to read the entity reference link. + Task which when completed returns an representing the read entity reference link. + + + + Detects the payload kind(s) of the payload. + + Additional information available for the payload kind detection. + An enumerable of zero or more payload kinds depending on what payload kinds were detected. + + + + Initializes the ability to use customization readers. + + + This needs to be called before any of the reader customization functionality is used. + + + + + Pushes a reader on the top of the customization stack. + + The reader to push. + The xml:base URI to use as the base uri for all of the payload read from that reader. + + + + Pops a reader from the top of the customization stack. + + The popped reader, the one which was on the top of the stack before the operation. + + + + Disposes the input context. + + + + + Creates an to read a feed. + + The entity set we are going to read entities for. + The expected base type for the entries in the feed. + The newly created . + + + + Creates an to read an entry. + + The entity set we are going to read entities for. + The expected entity type for the entry to be read. + The newly created . + + + + Create a . + + The expected type reference for the items in the collection. + Newly create . + + + + This method creates and reads the property from the input and + returns an representing the read property. + + The producing the property to be read. + The expected type reference of the property to read. + An representing the read property. + + + + This methods creates and reads a service document from the input and returns + an representing the service document. + + An representing the service document. + + + + Read a top-level error. + + An representing the read error. + + + + Reads top-level entity reference links. + + An representing the read entity reference link. + + + + Reads a top-level entity reference link. + + An representing the read entity reference link. + + + + Returns the which is to be used to read the content of the message. + + + + + Helper methods used by the OData reader for the ATOM format. + + + + + Creates an Xml reader over the specified stream with the provided settings. + + The stream to create the XmlReader over. + The encoding to use to read the input. + The OData message reader settings used to control the settings of the Xml reader. + An instance configured with the provided settings. + + + + Parses the value of the m:null attribute and returns a boolean. + + The string value of the m:null attribute. + true if the value denotes that the element should be null; false otherwise. + + + + Creates a new XmlReaderSettings instance using the encoding. + + Configuration settings of the OData reader. + The Xml reader settings to use for this reader. + + + + OData reader for the ATOM format. + + + + The input to read the payload from. + + + The deserializer to use to read input. + + + Stack of entry and feed deserializers, we need to create a new one for each XML customization + so that the strings get atomized again and so that we can return to the original one without reatomizing everything. + + + + Constructor. + + The input to read the payload from. + The entity set we are going to read entities for. + The expected entity type for the entry to be read (in case of entry reader) or entries in the feed to be read (in case of feed reader). + true if the reader is created for reading a feed; false when it is created for reading an entry. + + + + Implementation of the reader logic when in state 'Start'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: PayloadStart - assumes that the XML reader has not been used yet. + Post-Condition: XmlNodeType.Element (empty) atom:entry - The entry element when reading top-level entry and the entry element is empty. + XmlNodeType.EndElement atom:entry - The end element of the top-level entry (if there were no nav. links. in it). + XmlNodeType.Element atom:link - the atom:link element representing the first navigation link in the top-level entry. + XmlNodeType.Element (empty) atom:feed - The feed element when reading top-level feed and the feed element is empty. + XmlNodeType.EndElement atom:feed - The end element of the top-level feed (if there were no entries in it). + XmlNodeType.Element atom:entry - if the feed contains an entry (the start tag of the first entry). + + + + + Implementation of the reader logic when in state 'FeedStart'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: XmlNodeType.Element atom:feed (empty) - The empty start tag of atom:feed. + XmlNodeType.EndElement atom:feed - The end tag of the atom:feed. + XmlNodeType.Element atom:entry - The start tag of the first entry element to read. + XmlNodeType.Element m:inline (empty) - The empty start tag of an expanded navigation link m:inline element which we report as empty feed. + XmlNodeType.EndElement m:inline - The end tag of an expanded navigation link m:inline element which we report as empty feed. + Post-Condition: XmlNodeType.Element atom:feed (empty) - The empty start tag of atom:feed. + XmlNodeType.EndElement atom:feed - The end tag of the atom:feed. + XmlNodeType.Element atom:entry (empty) - The empty start tag of the first entry in the feed. + XmlNodeType.EndElement atom:entry - The end tag of the first entry in the feed (if it had no nav. links). + XmlNodeType.Element atom:link - the atom:link element representing the first navigation link in the first entry in the feed. + XmlNodeType.Element m:inline (empty) - The empty start tag of an expanded navigation link m:inline element which we report as empty feed. + XmlNodeType.EndElement m:inline - The end tag of an expanded navigation link m:inline element which we report as empty feed. + + + + + Implementation of the reader logic when in state 'FeedEnd'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: XmlNodeType.Element (empty) atom:feed - The empty start tag of atom:feed + XmlNodeType.EndElement atom:feed - The end element of the atom:feed + XmlNodeType.Element m:inline (empty) - The empty start tag of an expanded navigation link m:inline element which we report as empty feed. + XmlNodeType.EndElement m:inline - The end tag of an expanded navigation link m:inline element which we report as empty feed. + Post-Condition: Any - The node right after the top-level atom:feed element + XmlNodeType.EndElement atom:link - The end of parent expanded link. + + + + + Implementation of the reader logic when in state 'EntryStart'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: XmlNodeType.Element atom:entry (empty) - The empty start tag of atom:entry. + XmlNodeType.EndElement atom:entry - The end tag of the atom:entry. + XmlNodeType.Element atom:link - The start tag of the atom:link which represents the first navigation link. + XmlNodeType.Element (empty) m:inline - the empty m:inline element of an expanded null entry. + XmlNodeType.EndElement m:inline - the end element m:inline of an expanded null entry. + Post-Condition: XmlNodeType.Element atom:entry (empty) - The empty start tag of atom:entry. + XmlNodeType.EndElement atom:entry - The end tag of the atom:entry. + XmlNodeType.Element atom:link - The start tag of the atom:link which represents the first navigation link. + XmlNodeType.Element (empty) m:inline - the empty m:inline element of an expanded null entry. + XmlNodeType.EndElement m:inline - the end element m:inline of an expanded null entry. + + + + + Implementation of the reader logic when in state 'EntryEnd'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: XmlNodeType.Element (empty) atom:entry - The empty start tag of atom:entry. + XmlNodeType.EndElement atom:entry - The end element of the atom:entry. + XmlNodeType.Element (empty) m:inline - the empty m:inline element of an expanded null entry. + XmlNodeType.EndElement m:inline - the end element m:inline of an expanded null entry. + Post-Condition: Any - The node right after the top-level atom:entry element. + XmlNodeType.EndElement atom:feed - The end element of the parent feed for the entry. + XmlNodeType.Element (empty) atom:entry - The empty start tag of the next entry in the parent feed. + XmlNodeType.EndElement atom:entry - The end element of the next entry in the parent feed (if it had no nav. links). + XmlNodeType.Element atom:link - The start tag of the atom:link which represents the first navigation link in the next entry in the parent feed. + XmlNodeType.EndElement atom:link - The end of parent expanded link. + + + + + Implementation of the reader logic when in state 'NavigationLinkStart'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: XmlNodeType.Element atom:link - the atom:link element representing the navigation link. + Post-Condition: XmlNodeType.Element (empty) atom:link - the empty atom:link element of a deferred navigation link. + XmlNodeType.EndElement atom:link - the end element atom:link of a deferred navigation link. + XmlNodeType.Element atom:entry - the atom:entry element of the expanded entry. + XmlNodeType.Element atom:feed - the atom:feed element of the expanded feed. + XmlNodeType.Element (empty) m:inline - the empty m:inline element of an expanded null entry. + XmlNodeType.EndElement m:inline - the end element m:inline of an expanded null entry. + + + + + Implementation of the reader logic when in state 'NavigationLinkEnd'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: XmlNodeType.Element (empty) atom:link - the empty atom:link element of a deferred navigation link. + XmlNodeType.EndElement atom:link - the end element atom:link. + Post-Condition: XmlNodeType.EndElement atom:entry - the end element atom:entry of the parent entry if there are no more navigation links. + XmlNodeType.Element atom:link - the atom:link element of the next navigation link of the parent entry. + + + + + Implementation of the reader logic when in state 'EntityReferenceLink'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: XmlNodeType.Element (empty) atom:link - the empty atom:link element of an entity reference link. + XmlNodeType.EndElement atom:link - the end element atom:link of the entity reference link. + Post-Condition: Unchanged - the reader doesn't change its position. + + + + + Reads the start of a feed and sets up the reader state correctly. + + + Pre-Condition: XmlNodeType.Element - The method will fail if it's not atom:feed. + Post-Condition: XmlNodeType.Element (empty) atom:feed - The feed element when reading top-level feed and the feed element is empty. + XmlNodeType.EndElement atom:feed - The end element of the top-level feed (if there were no entries in it). + XmlNodeType.Element atom:entry - if the feed contains an entry (the start tag of the first entry) + + + + + Reads the start of an entry and sets up the reader state correctly. + + + Pre-Condition: XmlNodeType.Element - The method will fail if it's not atom:entry. + Post-Condition: XmlNodeType.Element (empty) atom:entry - The entry element when reading entry and the entry element is empty. + XmlNodeType.EndElement atom:entry - The end element of the entry (if there were no nav. links. in it) + XmlNodeType.Element atom:link - The start tag of the atom:link which represents the first navigation link in the entry. + + + + + End the entry. + + + + + Starts the navigation link. + Does metadata validation of the navigation link and sets up the reader to report it. + + The navigation link descriptor for the navigation link to start. + + + + Moves the reader from the start state of a non-expanded navigation link. + + + + + Creates a new for the specified and + with the provided and pushes it on the stack of scopes. + + The to use for the new scope. + The item to attach with the state in the new scope. + The expected type for the new scope. + + + + Replaces the current scope with a new with the specified and + the item of the current scope. + + The to use for the new scope. + + + + Replaces the current scope with a new FeedEnd scope and the item of the current scope. + + + + + Returns the current entry state. + + + + + Returns the current feed state. + + + + + A reader scope; keeping track of the current reader state and an item associated with this state. + + + + + Flag indicating if we have already made a decision about the current Entry (represented by this scope) + and its being MLE or not. + If this property have null value, we don't know for sure yet (both are possible), it it has non-null value + then we already know for sure and if we find something different we should fail. + + + + + Bitfield to track the current state of the ATOM scope. + + + + + The ATOM entry metadata to fill as we read the content of the entry. + + + This is lazily initialized only when it's actually needed. + + + + + The ATOM feed metadata to fill as we read the content of the entry. + + + This is lazily initialized only when it's actually needed. + + + + + The cache for values read from custom EPM. + + + This is lazily initialized only when it's actually needed. + + + + + Constructor creating a new reader scope. + + The reader state of this scope. + The item attached to this scope. + The expected type for the scope. + The has the following meanings for given state: + Start - it's the expected base type of the top-level entry or entries in the top-level feed. + FeedStart - it's the expected base type of the entries in the feed. + note that it might be a more derived type than the base type of the entity set for the feed. + EntryStart - it's the expected base type of the entry. If the entry has no type name specified + this type will be assumed. Otherwise the specified type name must be + the expected type or a more derived type. + NavigationLinkStart - it's the expected base type the entries in the expanded link (either the single entry + or entries in the expanded feed). + In all cases the specified type must be an entity type. + + + + Sets the bit identified by the if is true, otherwise clears it. + + Indicates if the should be set + Identifies the bit to set in atomScopeState + + + + Returns true if the bit identified by is set, false otherwise. + + Identifies the bit to set in atomScopeState + True if the bit identified by the is set, false otherwise + + + + Flag which indicates that the element representing the current state is empty. + + + + + Flag indicating if we have already made a decision about the current Entry (represented by this scope) + and its being MLE or not. + If this property has a null value, we don't know for sure yet (both are possible), if it has non-null value + then we already know for sure and if we find something different we should fail. + + + + + If the reader finds a navigation link to report, but it must first report the parent entry + it will store the navigation link descriptor in this property. So this will only ever store the first navigation link of an entry. + + + + + The duplicate property names checker for the entry represented by the current state. + + + + + The EPM information for the entry, or null if there's no EPM for this entry. + + + + + trye if the EpmCustomReaderValueCache has been initialized; false otherwise. + + + + + true if the AtomEntryMetadata has been initialized; false otherwise. + + + + + The navigation property retrieved from the metadata when reading a navigation link. + + + + + The entry being read. + + + + + The entity type for the entry (if available) + + + + + Flag which indicates that the ATOM entry element representing the entry is empty. + + + + + Flag which indicates whether we have found a read link for this entry (even if it had a null URI value). + + + + + Flag which indicates whether we have found an edit link for this entry (even if it had a null URI value). + + + + + Flag which indicates whether we have found an edit-media link for this entry (even if it had a null URI value). + + + + + Flag which indicates whether we have found an id element for this entry. + + + + + Flag which indicates whether we have found a content element for this entry. + + + + + Flag which indicates whether we have found a category element for this entry. + + + + + Flag which indicates whether we have found a m:properties element for this entry. + + + + + Flag which indicates whether we have found a m:count elemnent for this feed. + + + + + Flag which indicates whether we have found a link[@rel='next'] elemnent for this feed. + + + + + Flag which indicates whether we have found a link[@rel='self'] elemnent for this feed. + + + + + Flag which indicates if a link[@rel='http://docs.oasis-open.org/odata/ns/delta'] element was found. + + + + + The ATOM entry metadata to fill as we read the content of the entry. + + + + + The cache for values read from custom EPM. + + + This should only be accessed if there's CachedEpm available for this entry. + + + + + The feed metadata to fill as we read the content of a feed. + + + + + The feed being read. + + + + + Flag which indicates that the ATOM feed element representing the feed is empty. + + + + + An enumeration of the various kinds of properties on an entity reference link collection. + + + + No state information. + + + Empty element. + + + A read link has been detected for this entry. + + + An edit link has been detected for this entry. + + + An id link has been detected for this entry. + + + A content element has been detected for this entry. + + + A category element which has the required type name has been detected for this entry. + + + A m:properties element has been detected for this entry. + + + A m:count link has been detected for this feed. + + + A link[@rel='next'] link has been detected for this feed. + + + A link[@rel='self'] link has been detected for this feed. + + + An edit-media link has been detected for this entry. + + + A link[@rel='http://docs.oasis-open.org/odata/ns/delta'] has been detected for this entry. + + + + Extension methods for the XML reader. + + + + + Asserts that the reader is not buffer. + + The to read from. + + + + Asserts that the reader is buffer. + + The to read from. + + + + Reads the value of the element as a string. + + The reader to read from. + The string value of the element. + + Pre-Condition: XmlNodeType.Element - the element to read the value for. + XmlNodeType.Attribute - an attribute on the element to read the value for. + Post-Condition: Any - the node after the element. + + This method is similar to ReadElementContentAsString with one difference: + - It ignores Whitespace nodes - this is needed for compatiblity, WCF DS ignores insignificant whitespaces + it does that by setting the IgnoreWhitespace option on reader settings, ODataLib can't do that + cause it doesn't always control the creation of the XmlReader, so it has to explicitely ignore + insignificant whitespaces. + + + + + Reads the value of the first text, CDATA or significant whitespace node. + + The reader to read from. + The value of the first text, CDATA or significant whitespace node. + + Pre-Condition: XmlNodeType.Element - the element to read the value for. + Post-Condition: Any - the node after the element. + + + + + Reads the value of the element as a string. + + The reader to read from. + The string value of the element. + + Pre-Condition: XmlNodeType.Element - the element to read the value for. + XmlNodeType.Attribute - an attribute on the element to read the value for. + Post-Condition: XmlNodeType.Element - the element was empty. + XmlNodeType.EndElement - the element had some value. + + This method is similar to ReadElementContentAsString with two differences: + - It ignores Whitespace nodes - this is needed for compatiblity, WCF DS ignores insignificant whitespaces + it does that by setting the IgnoreWhitespace option on reader settings, ODataLib can't do that + cause it doesn't always control the creation of the XmlReader, so it has to explicitely ignore + insignificant whitespaces. + - It leaves the reader positioned on the EndElement node (or the start node if it was empty). + + + + + Reads from the XML reader skipping insignificant nodes. + + The XML reader to read from. + Do not use MoveToContent since for backward compatibility reasons we skip over nodes reported as Text which have + whitespace only content (even though the XmlReader should report those as Whitespace). + + + + Skips the content of the element and leaves the reader on the end element (or empty start element) + + The reader to read from. + + Pre-Condition: XmlNodeType.Element - the element to read + XmlNodeType.Attribute - attribute on the element to read + Post-Condition: XmlNodeType.Element - if the element was empty element with no content. + XmlNodeType.EndElement - if the element was element with empty content. + + + + + Reads from the input until the first element is found. + + The XML reader to read from. + + Pre-Condition: XmlNodeType.None - the reader hasn't been used yet. + Post-Condition: XmlNodeType.Element - the reader is positioned on the root/first element. + Note that the method will fail if the top-level contains any significant node other than the root element + or if no root element is found. + + + + + Reads till the end of the input payload. + + The XML reader to read from. + + Pre-Condition: any - the reader will verify that only insignificant node is present. + Post-Condition: XmlNodeType.None - the reader is at the end of the input. + + + + + Determines if the current node's namespace equals to the specified + + The XML reader to get the current node from. + The namespace URI to compare, this must be a string already atomized in the name table. + true if the current node is in the specified namespace; false otherwise. + + + + Determines if the current node's local name equals to the specified + + The XML reader to get the current node from. + The local name to compare, this must be a string already atomized in the name table. + true if the current node has the specified local name; false otherwise. + + + + Tries to read the current element as an empty element (no or empty content). + + The XML reader to read from. + true if the reader was on an empty element; false otherwise. + + Pre-Condition: XmlNodeType.Element - the element to read + XmlNodeType.Attribute - attribute on the element to read + Post-Condition: XmlNodeType.Element - if the element was empty element with no content. + XmlNodeType.EndElement - if the element was element with empty content. + any other - the first child node of the element, in this case the method returns false. + + + + + Reads to the next element encountered in an Xml payload. + + The to read from. + true if the method reached the next element; otherwise false. + + + + Checks whether the specifies string is null or blank. + + Text to check. + true if text is null, empty, or all whitespace characters. + + + + Helper class to verify that no duplicate properties are specified for entries and complex values. + + + + Special value for the property annotations which is used to mark the annotations as processed. + + + true if duplicate properties are allowed; otherwise false. + + See the comment on ODataWriterBehavior.AllowDuplicatePropertyNames or + ODataReaderBehavior.AllowDuplicatePropertyNames for further details. + + + + true if we're processing a response; false if it's a request. + + + + A cache of property names to detect duplicate property names. The value stored + for a given property name indicates what should happen if another property with the same name is found. + See the comments on for more details. + + + + + Constructor. + + true if duplicate properties are allowed; otherwise false. + true if we're processing a response; false if it's a request. + + + + Check the for duplicate property names in an entry or complex value. + If not explicitly allowed throw when duplicate properties are detected. + If duplicate properties are allowed see the comment on ODataWriterBehavior.AllowDuplicatePropertyNames + or ODataReaderBehavior.AllowDuplicatePropertyNames for further details. + + The property to be checked. + + + + Checks the for duplicate property names in an entry when the navigation link + has started but we don't know yet if it's expanded or not. + + The navigation link to be checked. + + + + Check the for duplicate property names in an entry or complex value. + If not explicitly allowed throw when duplicate properties are detected. + If duplicate properties are allowed see the comment on ODataWriterBehavior.AllowDuplicatePropertyNames + or ODataReaderBehavior.AllowDuplicatePropertyNames for further details. + + The navigation link to be checked. + true if the link is expanded, false otherwise. + true if the navigation link is a collection, false if it's a singleton or null if we don't know. + The association link with the same name if there already was one. + + + + Check the for duplicate property names in an entry or complex value. + If not explicitly allowed throw when duplicate properties are detected. + If duplicate properties are allowed see the comment on ODataWriterBehavior.AllowDuplicatePropertyNames + or ODataReaderBehavior.AllowDuplicatePropertyNames for further details. + + The association link to be checked. + The navigation link with the same name as the association link if there's one. + + + + Clear the internal data structures of the checker so it can be reused. + + + + + Adds an OData annotation to a property. + + The name of the property to add annotation to. string.empty means the annotation is for the current scope. + The name of the annotation to add. + The valud of the annotation to add. + + + + Adds a custom annotation to a property. + + The name of the property to add annotation to. string.empty means the annotation is for the current scope. + The name of the annotation to add. + + + + Returns OData annotations for the specified property with name . + + The name of the property to return the annotations for. + Enumeration of pairs of OData annotation name and and the annotation value, or null if there are no OData annotations for the property. + + + + Marks the property to note that all its annotations were already processed. + + The property name to mark. + + Properties marked like this will fail if there are more annotations found for them in the payload. + + + + + Returns the names of all properties which have not been marked as processed through . + + A set of property names. + + + + Throw if property is processed already. + + Name of the property. + DuplicationRecord of the property. + + + + Indicates whether a property's annotations have not yet been processed. + + The name of the property to check. + true if the property associated with the given name has unprocessed annotations. + + + + Decides whether a the given supports duplicates (if allowed by the settings). + + The property to check. + true if the supports duplicates (if allowed by the settings); otherwise false. + + + + Determines the effective value for the isCollection flag. + + true if the navigation link is expanded, false otherwise. + true if the navigation link is marked as collection, false if it's marked as singletong or null if we don't know. + The effective value of the isCollection flag. Note that we can't rely on singleton links which are not expanded since + those can appear even in cases where the actual navigation property is a collection. + We allow singleton deferred links for collection properties in requests, as that is one way of expressing a bind operation. + + + + Sets the properties on a duplication record for a navigation link. + + The duplication record to modify. + The navigation link found for this property. + true if the navigation link is expanded, false otherwise. + true if the navigation link is marked as collection, false if it's marked as singletong or null if we don't know. + + + + Tries to get an existing duplication record for the specified . + + The property name to look for. + The existing duplication if one was already found. + true if a duplication record already exists, false otherwise. + This method also initializes the cache if it was not initialized yet. + + + + Checks for duplication of a navigation link against an existing duplication record. + + The name of the navigation link. + The existing duplication record. + This only performs checks possible without the knowledge of whether the link was expanded or not. + + + + Gets a duplication record to use for adding property annotation. + + The name of the property to get the duplication record for. + The name of the annotation being added (only for error reporting). + The duplication record to use. This will never be null. + + + + An enumeration to represent the duplication kind of a given property name. + + + This enumeration is used to determine what should happen if two properties with the same name are detected on an entry or complex value. + When the first property is found, the initial value is set based on the kind of property found and the general setting to allow or disallow duplicate properties. + When a second property with the same name is found, the duplication kind can be 'upgraded' (e.g., from association link to navigation property), 'ignored' (e.g. + when finding the association link for an existing navigation property or when duplicate properties are allowed by the settings) or 'fail' + (e.g., when duplicate properties are not allowed). + + + + We don't know enough about the property to determine its duplication kind yet, we've just seen a property annotation for it. + + + Duplicates for this property name are not allowed. + + + This kind indicates that duplicates are allowed (if the settings allow duplicates). + + + A navigation link or association link was reported. + + + + A record of a single property for duplicate property names checking. + + + + + Constructor. + + The duplication kind of the record to create. + + + + The duplication kind of the record to create. + + + + + The navigation link if it was already found for this property. + + + + + The association link if it was already found for this property. + + + + + true if we know for sure that the navigation property with the property name is a collection, + false if we know for sure that the navigation property with the property name is a singleton, + null if we don't know the cardinality of the navigation property for sure (yet). + + + + + Dictionary of OData annotations for the property for which the duplication record is stored. + + + The key of the dictionary is the fully qualified annotation name (i.e. odata.type), + the value is the parsed value of the annotation (this is annotation specific). + + + + + Hashset of custom annotations for the property for which the duplication record is stored. + + + This is just a hashset for now since we don't read custom annotations, we just need to check for duplicates. + + + + + Utility methods serializing the xml error payload + + + + Default language for error messages if not specified. + + This constant is included here since this file is compiled into WCF DS Server as well + so we can't compile in the ODataConstants. + + + + + Extracts error details from an . + + The ODataError instance to extract the error details from. + A data service-defined string which serves as a substatus to the HTTP response code. + A human readable message describing the error. + The language identifier representing the language the error message is in. + + + + Write an error message. + + The Xml writer to write to. + The error instance to write. + A flag indicating whether error details should be written (in debug mode only) or not. + The maximumum number of nested inner errors to allow. + + + + Write an error message. + + The Xml writer to write to. + The code of the error. + The message of the error. + The language of the message. + Inner error details that will be included in debug mode (if present). + The maximumum number of nested inner errors to allow. + + + + Writes the inner exception information in debug mode. + + The Xml writer to write to. + The inner error to write. + The local name of the element representing the inner error. + The number of times this method has been called recursively. + The maximumum number of nested inner errors to allow. + + + + OData JSON deserializer for collections. + + + + Cached duplicate property names checker to use if the items are complex values. + + + + Constructor. + + The JSON input context to read from. + + + + Reads the start of a collection; this includes collection-level properties (e.g., the 'results' property) if the version permits it. + + true if the results wrapper should be in the payload being read; false otherwise. + An representing the collection-level information. Currently this is only the name of the collection in ATOM. + + Pre-Condition: JsonNodeType.StartArray: for a V1 collection + JsonNodeType.StartObject: for a >=V2 collection + Post-Condition: JsonNodeType.StartArray: the start of the array of the collection items + + + + + Reads an item in the collection. + + The expected type of the item to read. + The collection validator instance if no expected item type has been specified; otherwise null. + The value of the collection item that was read; this can be an ODataComplexValue, a primitive value or 'null'. + + Pre-Condition: The first node of the item in the collection + NOTE: this method will throw if the node is not + JsonNodeType.StartObject: for a complex item + JsonNodeType.PrimitiveValue: for a primitive item + Post-Condition: The reader is positioned on the first node of the next item or an EndArray node if there are no more items in the collection + + + + + Reads the end of a collection; this includes collection-level properties if the version permits it. + + true if the results wrapper should be in the payload being read; false otherwise. + + Pre-Condition: EndArray node: End of the collection content array + Post-Condition: EndOfInput: V1 collection + EndObject V1 collection in response + EndObject wrapped collection with no extra properties after the 'results' property + Property wrapped collection with extra properties after the 'results' property + + + + + OData JSON deserializer for entity reference links. + + + + + Constructor. + + The Verbose JSON input context to read from. + + + + Read a set of top-level entity reference links. + + An representing the read links. + + + + Reads a top-level entity reference link - implementation of the actual functionality. + + An representing the read entity reference link. + + + + Reads the properties of an entity reference link. + + The instance to set the read property values on. + The bit field with all the properties already read. + true if the method found the 'results' property; otherwise false. + + + + Read an entity reference link. + + An instance of which was read. + + Pre-Condition: any node - This method will throw if the node type is not a StartObject node + Post-Condition: any node + + + + + OData Verbose JSON deserializer for entries and feeds. + + + + + Constructor. + + The Verbose JSON input context to read from. + + + + Reads the start of a feed; this includes feed-level properties if the version permits it. + + The instance to fill with the data read. + A flag indicating whether we expect the results wrapper for feeds to be present. + true if the feed is inside an expanded link. + + Pre-Condition: JsonNodeType.StartArray: for a feed without 'results' wrapper + JsonNodeType.StartObject: for a feed wrapped with 'results' wrapper + Post-Condition: Any start node The first item in the feed + JsonNodeType.EndArray: The end of the feed + + + + + Reads the end of a feed; this includes feed-level properties if the version permits them. + + The instance to fill with the data read. + A flag indicating whether we expect the results wrapper for feeds to be present. + true if the feed is inside an expanded link. + + Pre-Condition: JsonNodeType.EndArray + Post-Condition: JsonNodeType.EndArray if the feed is not wrapped + JsonNodeType.EndObject if the feed is wrapped + + + + + Reads the start of an entry (non-null) + + + Pre-Condition: JsonNodeType.StartObject Will fail if it's anything else + Post-Condition: JsonNodeType.Property The first property of the entry + JsonNodeType.EndObject The end of the property object + + + + + Reads the entry metadata property. + + The state of the reader for entry to read. + + This method does not move the reader. + Pre-Condition: JsonNodeType.Object The start object of the __metadata property value. + Post-Condition: JsonNodeType.EndObject The end object of the __metadtaa property value. + + + + + Validates entry metadata properties against the model. + + The state of the reader for entry to read. + + This method must be called only after the ReadEntryMetadata was already called. + It should be called always, regardless of whether the __metadata property was found ot not. + + + + + Reads the content of an entry until a navigation link is detected. + + The state of the reader for entry to read. + If a navigation link was found this parameter will hold the navigation property for that link, otherwise it's null. + A instance representing the navigation link detected while reading the entry contents; null if no navigation link was detected. + + Pre-Condition: JsonNodeType.Property The property to read + JsonNodeType.EndObject If no (more) properties exist in the entry's content + Post-Condition: JsonNodeType.EndObject If no (more) properties exist in the entry's content + JsonNodeType.StartObject The first node of the navigation link property value to read next + (deferred link or entry inside expanded link or feed with 'results' wrapper inside expanded link) + JsonNodeType.StartArray feed without 'results' wrapper inside of expanded link + JsonNodeType.PrimitiveValue (null) Expanded null entry + + + + + Reads the Url of a non-expanded link and moves the reader forward to the position after the link. + + The navigation link to set the Url on. + + Pre-Condition: JsonNodeType.StartObject: the start of the object representing the deferred link + Post-Condition: JsonNodeType.Property: the next property after the deferred link + JsonNodeType.EndObject the end of the owning entry if the deferred link is the last property + + + + + Reads the entity reference link and moves the reader forward to the position after the link. + + The entity reference link read from the payload. + + Pre-Condition: JsonNodeType.StartObject: the start of the object representing the entity reference link + Post-Condition: JsonNodeType.Property: the next property after the entity reference link + JsonNodeType.EndObject: the end of the owning entry if the entity reference link is the last property + JsonNodeType.EndArray: the end of the owning array (if the entity reference link is part of expanded feed) + Any: the next item in the owning array (if the entity reference link is part of expanded feed) + + + + + Analyzes the current navigation property node to determine whether it represents a deferred link. + + true if we already detected a navigation link and now determine its kind; false if we are detecting a deferred navigation link. + true if the current navigation property represents a deferred link; false for an expanded navigation link. + + This method does not move the reader. + Pre-Condition: The first node of the property value + Post-Condition: The first node of the property value + + + + + Analyzes the current node to determine whether it represents an entity reference link. + + true if the current node represents an entity reference link; false is it's an entry or something else. + + This method does not move the reader. + Pre-Condition: The first node of the property value + Post-Condition: The first node of the property value + + + + + Adds a new property to an entry. + + The entry state for the entry to add the property to. + The name of the property to add. + The value of the property to add. + + + + Read a feed-level property (e.g., __count, __next, etc.) and check its version compliance. + This method fails on properties that are not recognized as feed-level properties. + + The instance to fill with the data read. + The name of the property being read. + true if the feed is inside an expanded link. + + Pre-Condition: The reader is on the first node of the feed-level property's value. + Post-Condition: JsonNodeType.Property: the next feed property to read or + JsonNodeType.EndObject: the end of the results wrapper + + + + + Read an entry-level property and check its version compliance. + + The state of the reader for entry to read. + The EDM property of the property being read, or null if the property is an open property. + + Pre-Condition: The reader is positioned on the first node of the property value + Post-Condition: JsonNodeType.Property: the next property of the entry + JsonNodeType.EndObject: the end-object node of the entry + + + + + Read an open property. + + The state of the reader for entry to read. + The name of the open property to read. + + Pre-Condition: The reader is positioned on the first node of the property value + Post-Condition: JsonNodeType.Property: the next property of the entry + JsonNodeType.EndObject: the end-object node of the entry + + + + + Read an undeclared property. That is a property which is not declared by the model, but the owning type is not an open type. + + The state of the reader for entry to read. + The name of the open property to read. + + Pre-Condition: The reader is positioned on the first node of the property value + Post-Condition: JsonNodeType.Property: the next property of the entry + JsonNodeType.EndObject: the end-object node of the entry + + A navigation link instance if the propery read is a navigation link which should be reported to the caller. + Otherwise null if the property was either ignored or read and added to the list of properties on the entry. + + + + Reads a stream property value. + + The value of the stream property. + + Pre-Condition: Fails if the current node is not a JsonNodeType.StartObject + Post-Condition: almost anything - the node after the stream reference (after the EndObject) + + + + + Reads the uri property in metadata value. + + The entry being read. + The bit fields with all the properties found in metadata value so far. + + Pre-Condition: first node of the 'uri' property's value + Post-Condition: JsonNodeType.Property: the next metadata property + JsonNodeType.EndObject: the end-object node of the metadata object + + + + + Reads the id property in metadata value. + + The entry being read. + The bit fields with all the properties found in metadata value so far. + + Pre-Condition: first node of the 'id' property's value + Post-Condition: JsonNodeType.Property: the next metadata property + JsonNodeType.EndObject: the end-object node of the metadata object + + + + + Reads the etag property in metadata value. + + The entry being read. + The bit fields with all the properties found in metadata value so far. + + Pre-Condition: first node of the 'etag' property's value + Post-Condition: JsonNodeType.Property: the next metadata property + JsonNodeType.EndObject: the end-object node of the metadata object + + + + + Reads the media_src property in metadata value. + + The bit fields with all the properties found in metadata value so far. + The media resource value for the entry. + + Pre-Condition: first node of the 'media_src' property's value + Post-Condition: JsonNodeType.Property: the next metadata property + JsonNodeType.EndObject: the end-object node of the metadata object + + + + + Reads the edit_media property in metadata value. + + The bit fields with all the properties found in metadata value so far. + The media resource value for the entry. + + Pre-Condition: first node of the 'edit_media' property's value + Post-Condition: JsonNodeType.Property: the next metadata property + JsonNodeType.EndObject: the end-object node of the metadata object + + + + + Reads the content_type property in metadata value. + + The bit fields with all the properties found in metadata value so far. + The media resource value for the entry. + + Pre-Condition: first node of the 'content_type' property's value + Post-Condition: JsonNodeType.Property: the next metadata property + JsonNodeType.EndObject: the end-object node of the metadata object + + + + + Reads the media_etag property in metadata value. + + The bit fields with all the properties found in metadata value so far. + The media resource value for the entry. + + Pre-Condition: first node of the 'media_etag' property's value + Post-Condition: JsonNodeType.Property: the next metadata property + JsonNodeType.EndObject: the end-object node of the metadata object + + + + + Reads the actions property in metadata value. + + The entry being read. + The bit fields with all the properties found in metadata value so far. + + Pre-Condition: first node of the 'actions' property's value + Post-Condition: JsonNodeType.Property: the next metadata property + JsonNodeType.EndObject: the end-object node of the metadata object + + + + + Reads the functions property in metadata value. + + The entry being read. + The bit fields with all the properties found in metadata value so far. + + Pre-Condition: first node of the 'functions' property's value + Post-Condition: JsonNodeType.Property: the next metadata property + JsonNodeType.EndObject: the end-object node of the metadata object + + + + + Read the property metadata for the properties of an entry being read. + + The entry state for the current reader. + The bit fields with all the properties found in metadata value so far. + + Pre-Condition: first node of the 'properties' property's value (we will throw if this is not a start object node) + Post-Condition: JsonNodeType.Property: the next metadata property + JsonNodeType.EndObject: the end-object node of the metadata object + + This method will not validate anything against the model because it will read the type name and thus it can't rely + on knowing the actual type of the entry being read. + + + + + Read the 'actions' or 'functions' metadata for the entry being read. + + The the 'actions' or 'functions' metadata is read for. + When True the 'actions' metadata is being read, otherwise 'functions' metadata is being read. + + Pre-Condition: first node of the 'actions' or 'functions' property's value (we will throw if this is not a start object node) + Post-Condition: JsonNodeType.Property: the next metadata property + JsonNodeType.EndObject: the end-object node of the metadata object + + + + + Reads the stream reference metadata from the value of the __mediaresource property. + + The value of the stream reference with the metadata properties filled. + + Pre-Condition: Fails if the current node is not a JsonNodeType.StartObject + Post-Condition: Either a property node or an EndObject node. + + + + + Tries to resolve the payload URI using the custom URI resolver. If the custom resolver fails, it returns the actual URI from the payload. + + the URI to be resolved. + A resolved URI or the URI from the payload, if the custom resolver fails. + + + + Validates that the value of a JSON property can represent navigation link. + + true if the property is entity set reference property; false for a resource reference property. + + + + Determines whether a property of an entry should be skipped during reading. + + true if the current property should be skipped; otherwise false. + + + + Operations deserializer context to pass to JSON operations reader. + + + + + The entry to add operations to. + + + + + The deserializer to use. + + + + + Constructor. + + The entry to add operations to. + The deserializer to use. + + + + Given a URI from the payload, this method will try to make it absolute, or fail otherwise. + + The URI string from the payload to process. + An absolute URI to report. + + + + Adds the specified action to the current entry. + + The action whcih is fully populated with the data from the payload. + + + + Adds the specified function to the current entry. + + The function whcih is fully populated with the data from the payload. + + + + The JSON reader to read the operations value from. + + + + + OData Verbose JSON deserializer for errors. + + + + + Constructor. + + The Verbose JSON input context to read from. + + + + Read a top-level error. + + An representing the read error. + + + + Reads an inner error payload. + + The number of times this method has been called recursively. + An representing the read inner error. + + Pre-Condition: any - will throw if not StartObject + Post-Condition: JsonNodeType.Property - The next property in the error value + JsonNodeType.EndObject - The end of the error value + + + + + Implementation of the OData input for Verbose JSON OData format. + + + + The text reader created for the input stream. + + The ODataJsonInputContext instance owns the textReader instance and thus disposes it. + We further set this field to null when the input is disposed and use it for checks whether the instance has already been disposed. + + + + The JSON reader to read from. + + + Constructor. + The format for this input context. + The reader to read data from. + Configuration settings of the OData reader. + The OData protocol version to be used for reading the payload. + true if reading a response message; otherwise false. + true if the input should be read synchronously; false if it should be read asynchronously. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs read from the payload. + + + Constructor. + The format for this input context. + The stream to read data from. + The encoding to use to read the input. + Configuration settings of the OData reader. + The OData protocol version to be used for reading the payload. + true if reading a response message; otherwise false. + true if the input should be read synchronously; false if it should be read asynchronously. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs read from the payload. + + + + Creates an to read a feed. + + The entity set we are going to read entities for. + The expected base entity type for the entries in the feed. + The newly created . + + + + Asynchronously creates an to read a feed. + + The entity set we are going to read entities for. + The expected base entity type for the entries in the feed. + Task which when completed returns the newly created . + + + + Creates an to read an entry. + + The entity set we are going to read entities for. + The expected entity type for the entry to be read. + The newly created . + + + + Asynchronously creates an to read an entry. + + The entity set we are going to read entities for. + The expected entity type for the entry to be read. + Task which when completed returns the newly created . + + + + Create a . + + The expected type reference for the items in the collection. + Newly create . + + + + Asynchronously create a . + + The expected type reference for the items in the collection. + Task which when completed returns the newly create . + + + + Create a . + + The function import whose parameters are being read. + The newly created . + + + + Asynchronously create a . + + The function import whose parameters are being read. + Task which when completed returns the newly created . + + + + Read a service document. + This method reads the service document from the input and returns + an that represents the read service document. + + An representing the read service document. + + + + Asynchronously read a service document. + This method reads the service document from the input and returns + an that represents the read service document. + + Task which when completed returns an representing the read service document. + + + + This method creates an reads the property from the input and + returns an representing the read property. + + The producing the property to be read. + The expected type reference of the property to read. + An representing the read property. + + + + Asynchronously read the property from the input and + return an representing the read property. + + The producing the property to be read. + The expected type reference of the property to read. + Task which when completed returns an representing the read property. + + + + Read a top-level error. + + An representing the read error. + + + + Asynchronously read a top-level error. + + Task which when completed returns an representing the read error. + + + + Read a set of top-level entity reference links. + + The navigation property for which to read the entity reference links. + An representing the read links. + + + + Asynchronously read a set of top-level entity reference links. + + The navigation property for which to read the entity reference links. + Task which when completed returns an representing the read links. + + + + Reads a top-level entity reference link. + + The navigation property for which to read the entity reference link. + An representing the read entity reference link. + + + + Asynchronously read a top-level entity reference link. + + The navigation property for which to read the entity reference link. + Task which when completed returns an representing the read entity reference link. + + + + Detects the payload kind(s) from the message stream. + + An enumerable of zero, one or more payload kinds that were detected from looking at the payload in the message stream. + + + + Disposes the input context. + + + + + Helper method to create a TextReader over the message stream. This is needed by the constructor to dispose the message stream if the creation fails + since this is called from the constructor in place where exception handling is not possible. + + The stream to read data from. + The encoding to use to read the input. + The newly created text reader. + + + + Verifies that CreateParameterReader can be called. + + The function import whose parameters are being read. + + + + Creates an to read a feed. + + The entity set we are going to read entities for. + The expected base entity type for the entries in the feed. + The newly created . + + + + Creates an to read an entry. + + The entity set we are going to read entities for. + The expected entity type for the entry to be read. + The newly created . + + + + Create a . + + The expected type reference for the items in the collection. + Newly create . + + + + Create a . + + The function import whose parameters are being read. + The newly created . + + + + This method creates and reads the property from the input and + returns an representing the read property. + + The producing the property to be read. + The expected type reference of the property to read. + An representing the read property. + + + + Read a service document. + This method reads the service document from the input and returns + an that represents the read service document. + + An representing the read service document. + + + + Read a top-level error. + + An representing the read error. + + + + Read a set of top-level entity reference links. + + An representing the read links. + + + + Reads a top-level entity reference link - implementation of the actual functionality. + + An representing the read entity reference link. + + + + Returns the which is to be used to read the content of the message. + + + + + OData JSON deserializer for service documents. + + + + + Constructor. + + The Verbose JSON input context to read from. + + + + Read a service document. + This method reads the service document from the input and returns + an that represents the read service document. + + An representing the read service document. + + + + Class representing implementation specific debugging information to help determine the cause of the error. + + + + Initializes a new instance of the class with default values. + + + Initializes a new instance of the class with exception object. + The used to create the inner error. + + + Gets or sets the error message. + The error message. + + + Gets or sets the type name of this error, for example, the type name of an exception. + The type name of this error. + + + Gets or sets the stack trace for this error. + The stack trace for this error. + + + Gets or sets the nested implementation specific debugging information. + The nested implementation specific debugging information. + + + + OData representation of a top-level collection. + + + + + Provides additional serialization information to the for this . + + + + Gets or sets the name of the collection (ATOM only). + The name of the collection. + + + + Provides additional serialization information to the for this . + + + + + OData collection reader for the Verbose JSON format. + + + + The input to read the payload from. + + + The collection deserializer to use to read from the input. + + + + Constructor. + + The input to read the payload from. + The expected type for the items in the collection. + If not null, the reader will notify the implementer of the interface of relevant state changes in the reader. + + + + Implementation of the collection reader logic when in state 'Start'. + + true if more items can be read from the reader; otherwise false. + + Pre-Condition: JsonNodeType.None: assumes that the JSON reader has not been used yet when not reading a nested payload. + Post-Condition: The reader is positioned on the first node of the first item or the EndArray node of an empty item array + + + + + Implementation of the reader logic when in state 'CollectionStart'. + + true if more nodes can be read from the reader; otherwise false. + + Pre-Condition: The first node of the first item in the collection or the EndArray node of the (empty) item array + NOTE: this method will throw if the node is not + JsonNodeType.EndArray: for an empty item array of the collection + JsonNodeType.StartObject: for a complex value as first item + JsonNodeType.PrimitiveValue: for a primitive value as first item + Post-Condition: The reader is positioned on the first node of the second item or an EndArray node if there are no items in the collection + + + + + Implementation of the reader logic when in state 'Value'. + + true if more nodes can be read from the reader; otherwise false. + + Pre-Condition: The first node of the next item in the collection or the EndArray node of the item array + NOTE: this method will throw if the node is not + JsonNodeType.EndArray: for the end of the item array of the collection + JsonNodeType.StartObject: for a complex item + JsonNodeType.PrimitiveValue: for a primitive item + Post-Condition: The reader is positioned on the first node of the next item or an EndArray node if there are no items in the collection + + + + + Implementation of the reader logic when in state 'CollectionEnd'. + + false since no more nodes can be read from the reader after the collection ended. + + Pre-Condition: JsonNodeType.EndArray the end of the item array of the collection + Post-Condition: JsonNodeType.EndOfInput nothing else to read when not reading a nested payload + + + + + Set to true if collections are expected to have the 'results' wrapper. + Collections are only expected to have a results wrapper if + (a) the protocol version is >= 2 AND + (b) we are reading a response + NOTE: OIPI does not specify a format for >= v2 collections in requests; we thus use the v1 format and consequently do not expect a result wrapper. + + + + + Enumeration of all possible states of an . + + + + The reader is at the start; nothing has been read yet. + In this state, the Item property of the returns null. + + + + The reader has started reading and is reading the start element of the collection wrapper (if any). + No items have been read. + + + In this state, the Item property of the returns + an instance of . + + + + + The reader read an item from the collection. + + In this state, the Item property of the returns the read item (a primitive value, an ODataComplexValue or null). + + + + The reader has finished reading and is reading the end element of the collection wrapper (if any). + All items have been read. + + + In this state, the Item property of the returns the same + instance of as in state CollectionStart. + + + + The reader has thrown an exception; nothing can be read from the reader anymore. + + In this state, the Item property of the returns null. + + + + The reader has completed; nothing can be read anymore. + + In this state, the Item property of the returns null. + + + + + Exception type representing an in-stream error parsed when reading a payload. + + + + The value containing instance representing the error + read from the payload. + + + + Creates a new instance of the class with default values. + + The Message property is initialized to a system-supplied message + that describes the error. This message takes into account the + current system culture. The Error property will be initialized with an empty instance. + + + + Creates a new instance of the class with an error message. + The plain text error message for this exception. + + The Error property will be initialized with an empty instance. + + + + Creates a new instance of the class with an error message and an inner exception. + The plain text error message for this exception. + The inner exception that is the cause of this exception to be thrown. + + The Error property will be initialized with an empty instance. + + + + Creates a new instance of the class with an object. + The instance representing the error read from the payload. + + The Message property is initialized to a system-supplied message + that describes the error. This message takes into account the + current system culture. + + + + Creates a new instance of the class with an error message and an object. + The plain text error message for this exception. + The instance representing the error read from the payload. + + + Creates a new instance of the class with an error message, an inner exception, and an object. + The plain text error message for this exception. + The inner exception that is the cause of this exception to be thrown. + The instance representing the error read from the payload. + + + Gets the instance representing the error read from the payload. + The instance representing the error read from the payload. + + + + Implement the ISafeSerializationData interface to contain custom exception data in a partially trusted assembly. + Use this interface in post-ORCAS to replace the Exception.GetObjectData method, which is marked with the SecurityCriticalAttribute. + + + + + This method is called when deserialization of the exception is complete. + + The exception object. + + + + Gets or sets the object. + + + + + Implementation of the OData input for RAW OData format (raw value and batch). + + + + Use a buffer size of 4k that is read from the stream at a time. + + + The to read. + + + The encoding to use to read from the batch stream. + + + The input stream to read the data from. + + + The text reader to read non-binary values from. + + + Constructor. + The format for this input context. + The stream to read data from. + The encoding to use to read the input. + Configuration settings of the OData reader. + The OData protocol version to be used for reading the payload. + true if reading a response message; otherwise false. + true if the input should be read synchronously; false if it should be read asynchronously. + The model to use. + The optional URL resolver to perform custom URL resolution for URLs read from the payload. + The to read. + + + + Create a . + + The batch boundary to use. + The newly created . + + + + Asynchronously create a . + + The batch boundary to use. + Task which when completed returns the newly created . + + + + Read a top-level value. + + The expected primitive type for the value to be read; null if no expected type is available. + An representing the read value. + + + + Asynchronously read a top-level value. + + The expected type reference for the value to be read; null if no expected type is available. + Task which when completed returns an representing the read value. + + + + Disposes the input context. + + + + + Create a . + + The batch boundary to use. + If the reader should be created for synchronous or asynchronous API. + The newly created . + + + + Read a top-level value. + + The expected primitive type for the value to be read; null if no expected type is available. + An representing the read value. + + + + Read the binary value from the stream. + + A byte array containing all the data read. + + + + Reads the content of a text reader as string and, if is specified and primitive type conversion + is enabled, converts the string to the expected type. + + The expected type of the value being read or null if no type conversion should be performed. + The raw value that was read from the text reader either as string or converted to the provided . + + + + The stream of the raw input context. + + + + + Handles serialization and deserialization for a specified set of primitive types. + + + + Instance of GeographyTypeConverter to register for all Geography types. + + + Instance of GeographyTypeConverter to register for all Geography types. + + + Set of type converters that implement their own conversion using IPrimitiveTypeConverter. + + + Set of type converters that are known to this instance which convert values based on the ISpatial type. + + + + Create a new instance of the converter. + + Set of type converters to register for the ISpatial based values. + + + + Try to create an object of type from the value in . + + XmlReader to use to read the value. + Expected type of the value in the reader. + Object of type , null if no object could be created. + True if the value was converted to the specified type, otherwise false. + + + + Try to write the XML representation of to the specified + + Object to convert to XML representation. + XmlWriter to use to write the converted value. + True if the value was written, otherwise false. + + + + Try to write the Verbose JSON representation of using a registered primitive type converter + + Object to convert to JSON representation. + JsonWriter instance to write to. + Type name of the instance. If the type name is null, the type name is not written. + The OData protocol version to be used for writing payloads. + + + + Try to write the JSON Lite representation of using a registered primitive type converter + + Object to convert to JSON representation. + JsonWriter instance to write to. + The OData protocol version to be used for writing payloads. + + + + Tries to write the value of object instance using a registered primitive type converter. + + Object to write. + Method to use when writing the value, if a registered converter is found for the type. + True if the value was written using a registered primitive type converter, otherwise false. + + + + Get the primitive type converter for the given type. + + Clr type whose primitive type converter needs to be returned. + Converter for the given clr type. + True if a converter was found for the given type, otherwise returns false. + + + PrimitiveConverter instance for use by the Atom and Json readers and writers. + + + + Annotation which stores a list of projected properties for an entry. + + + + The special '*' segment indicating that all properties are selected. + + + + Cached projected properties annotation with no properties projected. + + + + + Cached projected properties annotation with all properties projected. + + + + + A hash set with the projected property names. + + + + Initializes a new instance of the class. + The enumeration of projected property names. + + + + Constructor. + + + + + Determines if a property is in a list of projected properties. + + The name of the property to lookup. + true if the property is projected; false otherwise. + Note that we allow null and empty property names here for the lookup just so that + we don't have to validate before we skip them. If we would not skip them, the writing would fail later on anyway. + + + + Adds the specified property name to the set of projected properties (if it is not already included). + + The name of the property to include in the set of projected properties. + + + + Removes the specified property name from the set of projected properties. + + The name of the property to remove from the set of projected properties. + + + + Projected properties annotation with no properties projected. + + + + + Projected properties annotation with all properties projected. + + + + + The set of projected property names. + + + + + Class with utility methods for reading OData content. + + + + + Creates a new instance to return to the user. + + The newly created entry. + The method populates the Properties property with an empty read only enumeration. + + + Checks for duplicate navigation links and if there already is an association link with the same name + sets the association link URL on the navigation link. + The duplicate property names checker for the current scope. + The navigation link to be checked. + true if the link is expanded, false otherwise. + true if the navigation link is a collection, false if it's a singleton or null if we don't know. + + + Checks that for duplicate association links and if there already is a navigation link with the same name + sets the association link URL on that navigation link. + The duplicate property names checker for the current scope. + The association link to be checked. + + + + Adds an association link to an entry. + + The entry to get or create the association link for. + The navigation property to get or create the association link for. + The association link that we either retrieved or created for the . + + + + Returns true if the specified is set in the . + + The value of the setting to test. + The flag to test. + true if the flas is present, flase otherwise. + + + + Gets the expected property name from the specified property or function import. + + The to get the expected property name for (or null if none is specified). + The expected name of the property to be read from the payload. + + + + Class with utility methods for validating OData content when reading. + + + + + Validates that message reader settings are correct. + + The message reader settings to validate. + true if the settings were specified when reading a response, false when reading a request. + + + + Validates an entity reference link. + + The entity reference link to check. + + + + Validates a stream reference property. + + The stream property to check. + The owning type of the stream property or null if no metadata is available. + The stream property defined by the model. + The message reader settings being used. + + + + Validate a null value. + + The used to read the payload. + The expected type of the null value. + The message reader settings. + true to validate the the null value; false to only check whether the type is supported. + The version used to read the payload. + The name of the property whose value is being read, if applicable (used for error reporting). + + + + Validates an to ensure all required information is specified and valid. + + The entry to validate. + + + + Finds a defined property from the model if one is available. + The structured type can be null if no metadata is available. + + The name of the property to find. + The owning type of the property with name + or null if no metadata is available. + The instance representing the property with name + or null if no metadata is available. + + + + Validates that a property with the specified name exists on a given structured type. + The structured type can be null if no metadata is available. + + The name of the property to validate. + The owning type of the property with name + or null if no metadata is available. + The message reader settings being used. + true if the property should be completely ignored and not parsed/reported, in this case the return value is null. + false if the property should be parsed and reported as usual. + The instance representing the property with name + or null if no metadata is available. + + + + Validates that the expected property name matches the property name read from the payload. + + The expected property name. + The property name read from the payload. + + + + Validates that a property with the specified name exists on a given structured type. + The structured type can be null if no metadata is available. + + The name of the property to validate. + The owning type of the property with name + or null if no metadata is available. + The message reader settings being used. + The instance representing the property with name + or null if no metadata is available. + + + + Validates that a navigation property with the specified name exists on a given entity type. + The entity type can be null if no metadata is available. + + The name of the property to validate. + The owning entity type or null if no metadata is available. + The message reader settings being used. + The instance representing the navigation property with name + or null if no metadata is available. + + + + Creates an exception used when primitive type conversion fails. + + The target type reference to which the conversion failed. + Possible inner exception with more information about the failure. + The exception object to throw. + + + + Resolved the payload type name to the type. + + The model to use for the resolution. + The expected type reference, or null if no expected type is available. + The payload type name to resolve. + The default payload type kind, this is used when the resolution is not possible, + but the type name is not empty. (Should be either Complex or Entity). + Reader behavior to use for compatibility. + The version of the payload being read. + This is set to the detected payload type kind, or None if the type was not specified. + The resolved type. This may be null if either no user-specified model is specified, or the type name is not recognized by the model. + The method detects the payload kind even if the model does not recognize the type. It figures out primitive and collection types always, + and uses the for the rest. + + + + Resolves and validates the payload type against the expected type and returns the target type. + + The expected type kind for the value. + The default payload type if none is specified in the payload; + for ATOM this is Edm.String, for JSON it is null since there is no payload type name for primitive types in the payload. + The expected type reference, or null if no expected type is available. + The payload type name, or null if no payload type was specified. + The model to use. + The message reader settings to use. + The version of the payload being read. + A func to compute the type kind from the payload shape if it could not be determined from the expected type or the payload type. + The target type kind to be used to read the payload. + Potentially non-null instance of an annotation to put on the value reported from the reader. + + The target type reference to use for parsing the value. + If there is no user specified model, this will return null. + If there is a user specified model, this method never returns null. + + + This method cannot be used for primitive type resolution. Primitive type resolution is format dependent and format specific methods should be used instead. + + + + + Resolves the primitive payload type versus the expected type and validates that such combination is allowed. + + The expected type reference, if any. + The kind of the payload type, or None if the detection was not possible. + The resolved payload type, or null if no payload type was specified. + The name of the payload type, or null if no payload type was specified. + The default payload type if none is specified in the payload; + for ATOM this is Edm.String, for JSON it is null since there is no payload type name for primitive types in the payload. + The model to use. + The message reader settings to use. + The version of the payload being read. + The target type reference to use for parsing the value. This method never returns null. + + + + Resolves the payload type versus the expected type and validates that such combination is allowed. + + The expected type kind for the value. + The expected type reference, or null if no expected type is available. + The payload type kind, this may be the one from the type itself, or one detected without resolving the type. + The payload type, or null if the payload type was not specified, or it didn't resolve against the model. + The payload type name, or null if no payload type was specified. + The model to use. + The message reader settings to use. + The version of the payload being read. + + The target type reference to use for parsing the value. + If there is no user specified model, this will return null. + If there is a user specified model, this method never returns null. + + + This method cannot be used for primitive type resolution. Primitive type resolution is format dependent and format specific methods should be used instead. + + + + + Validates that the specified encoding is supported in batch/changeset envelopes (headers, boundaries, preamble, etc.). + + The to check. + + + + Validates whether the specified type reference is supported in the current version. + + The type reference to check. + The version currently used. + + + + Validates that the parsed metadata URI from the payload is consistent with the expected + entity set and entity type when reading a feed or entry payload. This method updates + the if the metadata URI specifies more derived information. + + The parse result of the metadata URI from the payload. + The top-level scope representing the reader state. + + + + Validates that the parsed metadata URI from the payload is consistent with the expected + navigation property. + + The parse result of the metadata URI from the payload. + The expected navigation property. + This method is used to validate metadata URIs for both singleton entity reference links + and collections of entity reference links. + + + + Validates that the parsed metadata URI from the payload is consistent with the expected + collection item type when reading collection payloads. + + The parse result of the metadata URI from the payload. + The expected item type of the collection items. + The actual item type of the collection items. + + + + Validates that the property in an operation (an action or a function) is valid. + + The value of the property. + The name of the property (used for error reporting). + The metadata value for the operation (used for error reporting). + The header for the operation, either 'actions' or 'functions'. + + + + Resolves the payload type if there's no expected type. + + The expected type kind for the value. + The payload type, or null if the payload type was not specified, or it didn't resolve against the model. + The target type reference to use for parsing the value. + + + + Resolves the payload type versus the expected type and validates that such combination is allowed when the strict validation is disabled. + + The expected type kind for the value. + The expected type reference, or null if no expected type is available. + The payload type, or null if the payload type was not specified, or it didn't resolve against the model. + The target type reference to use for parsing the value. + + + + Resolves the payload type versus the expected type and validates that such combination is allowed when strict validation is enabled. + + The expected type kind for the value. + The expected type reference, or null if no expected type is available. + The payload type, or null if the payload type was not specified, or it didn't resolve against the model. + The target type reference to use for parsing the value. + + + + Verifies that payload type is defined if the payload type name is present. + + The type name from the payload. + The resolved type from the model. + + + + Verifies that complex type is valid against the expected type. + + The expected type reference. + The payload type. + true if the method should fail if the doesn't match the ; + false if the method should just return in that case. + + The method verifies that the is not a derived complex type of the + and always fails in that case. + + + + + Verifies that in case of collection types, the item type is valid. + + The expected type reference. + The payload type. + + This method verifies that item type is not a derived complex type, we want to explicitly disallow that case for possible future enablement. + + + + + Conditionally creates the annotation to put on the read value in order to retain the type name from the payload. + + The payload type name. + The type reference into which we're going to parse. + The annotation to report to the reader for adding on the read value. + + + + Computes the type kind to be used to read the payload from the expected type, the payload type and + possibly the payload shape. + + The expected type reference used to read the payload value. + true when resolving a type name for an entity value; false for a non-entity value. + The type name read from the payload. + The type kind of the payload value. + The message reader settings. + A func to determine the type kind of the value by analyzing the payload data. + The type kind to be used to read the payload. + + + + Gets the expected type kind based on the given , or EdmTypeKind.None if no specific type should be expected. + + The expected type reference. + The message reader settings. + The expected type kind based on the settings and type reference, or EdmTypeKind.None if no specific type should be expected. + + + + Determines if the expect value type and the current settings mandate us to validate type kinds of payload values. + + The message reader settings. + The expected type reference for the value infered from the model. + The type kind of the payload value. + true if the payload value kind must be verified, false otherwise. + This method deals with the strict versus lax behavior, as well as with the behavior when primitive type conversion is disabled. + + + + Validates that the specified allows null values. + + The expected type for the value, or null if no such type is available. + true to validate the null value; otherwise false. + The model to use to get the data service version. + The name of the property whose value is being read, if applicable (used for error reporting). + + + + Create and throw exception that a null value was found when the expected type is non-nullable. + + The expected type for this value. + The name of the property whose value is being read, if applicable. + + + + Implementation of IEnumerable which is based on another IEnumerable + but only exposes readonly access to that collection. This class doesn't implement + any other public interfaces or public API unlike most other IEnumerable implementations + which also implement other public interfaces. + + + + + The IEnumerable to wrap. + + + + + Constructor. + + The enumerable to wrap. + + + + Returns the enumerator to iterate through the items. + + The enumerator object to use. + + + + Implementation of IEnumerable>T< which is based on a List>T< + but only exposes readonly access to that collection. This class doesn't implement + any other public interfaces or public API unlike most other IEnumerable implementations + which also implement other public interfaces. + + The type of a single item in the enumeration. + + + + The IEnumerable to wrap. + + + + + The empty instance of ReadOnlyEnumerableOfT. + + + + + Constructor which initializes the enumerable with an empty list storage. + + + + + Constructor. + + The list of values to wrap. + + + + Returns the enumerator to iterate through the items. + + The enumerator object to use. + + + + Gets the empty instance of ReadOnlyEnumerableOfT. + + Returns the empty instance of ReadOnlyEnumerableOfT. + + + + This internal method adds to the wrapped source list. From the public's perspective, this enumerable is still readonly. + + Item to add to the source list. + + + + Annotation which stores the type name to serialize. + + + This annotation will be recognized on ODataEntry, ODataComplexValue, ODataCollectionValue and ODataPrimitiveValue. + + + + Gets or sets the type name to serialize, for the annotated item. + The type name to serialize, for the annotated item. + + If this property is null, no type name will be written. + If this property is non-null, the property value will be used as the type name written to the payload. + If this annotation is present, it always overrides the type name specified on the annotated item. + If this annotation is not present, the value of the TypeName property on the ODataEntry, ODataComplexValue or ODataCollectionValue + is used as the type name in the payload. + + + + + Uri utility methods. + + + + + Returns the unescaped string representation of the Uri; if the Uri is absolute returns the absolute Uri otherwise the original string. + + The Uri to convert to a string. + For absolute Uris the string representation of the absolute Uri; otherwise the Uri's original string. + + + + Class with utility methods for validating OData content when writing. + + + + + Validates that message writer settings are correct. + + The message writer settings to validate. + True if we are writing a response. + + + + Validates an for not being null. + + The property to validate for not being null. + + + + Validates a property name to ensure all required information is specified. + + The property name to validate.. + + + + Validates that a property with the specified name exists on a given structured type. + The structured type can be null if no metadata is available. + + The name of the property to validate. + The owning type of the property with name + or null if no metadata is available. + The instance representing the property with name + or null if no metadata is available. + + + + Validates that a navigation property with the specified name exists on a given entity type. + The entity type can be null if no metadata is available. + + The name of the property to validate. + The owning entity type or null if no metadata is available. + The instance representing the navigation property with name + or null if no metadata is available. + + + + Validates an entry in an expanded link to make sure the entity types match. + + The of the entry. + The type of the parent navigation property. + + + + Validates an to ensure all required information is specified and valid. + + The association link to validate. + The version of the OData protocol used for checking. + true if we are writing a response; otherwise false. + + + + Validates that an can be written. + + The operation (an action or a function) to validate. + true if writing a response; otherwise false. + + + + Validates an to ensure all required information is specified and valid on the WriteEnd call. + + The feed to validate. + Flag indicating whether the feed is written as part of a request or a response. + The version of the OData protocol used for checking. + + + + Validates an to ensure all required information is specified and valid on WriteStart call. + + The entry to validate. + + + + Validates an to ensure all required information is specified and valid on WriteEnd call. + + The entry to validate. + + + + Validates an to ensure all required information is specified and valid. + + The stream reference to validate. + true if is the default stream for an entity; false if it is a named stream property value. + + + + Validates a named stream property to ensure it's not null and it's name if correct. + + The stream reference property to validate. + Property metadata to validate against. + The version of the OData protocol used for checking. + true when writing a response; otherwise false. + This does NOT validate the value of the stream property, just the property itself. + + + + Validates that the specified is not null. + + The entity reference link to validate. + This should be called only for entity reference links inside the ODataEntityReferenceLinks.Links collection. + + + + Validates an entity reference link instance. + + The entity reference link to validate. + + + + Validates an to ensure all required information is specified and valid. + + The navigation link to validate. + The declaring the navigation property; or null if metadata is not available. + The of the expanded content of this navigation link or null for deferred links. + The type of the navigation property for this navigation link; or null if no was specified. + + + + Validates that the specified navigation link has a Url. + + The navigation link to validate. + + + + Validates that the sepcified navigation link has cardinality, that is it has the IsCollection value set. + + The navigation link to validate. + + + + Validates that the expected property allows null value. + + The expected property type or null if we don't have any. + The name of the property. + The instance controlling the behavior of the writer. + The model to use to get the data service version. + + + + Validates the value of the Id property on an entry. + + The id value for an entry to validate. + + + + Extension methods for the JSON reader. + + + + + Reads the next node from the and verifies that it is a StartObject node. + + The to read from. + + + + Reads the next node from the and verifies that it is an EndObject node. + + The to read from. + + + + Reads the next node from the and verifies that it is an StartArray node. + + The to read from. + + + + Reads the next node from the and verifies that it is an EndArray node. + + The to read from. + + + + Verifies that the current node is a property node and returns the property name. + + The to read from. + The property name of the current property node. + + + + Reads the next node from the , verifies that it is a Property node and returns the property name. + + The to read from. + The property name of the property node read. + + + + Reads the next node from the and verifies that it is a PrimitiveValue node. + + The to read from. + The primitive value read from the reader. + + + + Reads the next node from the and verifies that it is a PrimitiveValue node of type string. + + The to read from. + The string value read from the reader; throws an exception if no string value could be read. + + + + Reads the next node from the and verifies that it is a PrimitiveValue node of type string. + + The to read from. + The name of the property for which to read the string; used in error messages only. + The string value read from the reader; throws an exception if no string value could be read. + + + + Reads the next node from the and verifies that it is a PrimitiveValue node of type double. + + The to read from. + The double value read from the reader; throws an exception if no double value could be read. + + + + Skips over a JSON value (primitive, object or array). + + The to read from. + + Pre-Condition: JsonNodeType.PrimitiveValue, JsonNodeType.StartArray or JsonNodeType.StartObject + Post-Condition: JsonNodeType.PrimitiveValue, JsonNodeType.EndArray or JsonNodeType.EndObject + + + + + Reads the next node. Use this instead of the direct call to Read since this asserts that there actually is a next node. + + The to read from. + The node type of the node that reader is positioned on after reading. + + + + Determines if the reader is on a value node. + + The reader to inspect. + true if the reader is on PrimitiveValue, StartObject or StartArray node, false otherwise. + + + + Asserts that the reader is not buffer. + + The to read from. + + + + Asserts that the reader is buffer. + + The to read from. + + + + Creates an exception instance that is appropriate for the current library being built. + Allows the code in this class to be shared between ODataLib and the common spatial library. + + String to use for the exception messag. + Exception to be thrown. + + + + Reads the next node from the and verifies that it is of the expected node type. + + The to read from. + The expected of the read node. + + + + Validates that the reader is positioned on the specified node type. + + The to use. + The expected node type. + + + + Enumeration of all possible states of an . + + + + The reader is at the start; nothing has been read yet. + In this state the Item property of the returns null. + + + The start of a feed has been read. + + In this state the Item property of the returns + an but no properties may be filled in until the FeedEnd state is reached. + + + + The end of a feed has been read. + + In this state the Item property of the returns + an with all properties filled in. + + + + The start of an entry has been read. + + In this state the Item property of the returns + an but no properties may be filled in until the EntryEnd state is reached. + + + + The end of an entry has been read. + + In this state the Item property of the returns + an with all properties filled in. + + + + The start of a navigation link has been read. + + In this state the Item property of the returns + an but no properties may be filled in until the LinkEnd state is reached. + + + + The end of a navigation link has been read. + + In this state the Item property of the returns + an with all properties filled in. + + + + An entity reference link was read. + + In this state the Item property of the returns + an which is fully populated. + Note that there's no End state for this item. + + + + The reader has thrown an exception; nothing can be read from the reader anymore. + + In this state the Item property of the returns null. + + + + The reader has completed; nothing can be read anymore. + + In this state the Item property of the returns null. + + + + + Class for reading OData batch messages; also verifies the proper sequence of read calls on the reader. + + + + + An interface that allows creators of a to listen for status changes + of the operation stream. + + + + + This method notifies the implementer of this interface that the content stream for a batch operation has been requested. + + + + + This method notifies the implementer of this interface that the content stream for a batch operation has been requested. + + + A task representing any async operation that is running in reaction to the + status change (or null if no such action is required). + + + + + This method notifies the implementer of this interface that the content stream of a batch operation has been disposed. + + + + The input context to read the content from. + + + The batch stream used by the batch reader to devide a batch payload into parts. + + + True if the writer was created for synchronous operation; false for asynchronous. + + + The batch-specific URL resolver that stores the content IDs found in a changeset and supports resolving cross-referencing URLs. + + + The current state of the batch reader. + + + The current size of the batch message, i.e., how many query operations and changesets have been read. + + + The current size of the active changeset, i.e., how many operations have been read for the changeset. + + + An enumeration tracking the state of the current batch operation. + + + The value of the content ID header of the current part. + + The content ID header of the current part should only be visible to subsequent parts + so we can only add it to the URL resolver once we are done with the current part. + + + + + Constructor. + + The input context to read the content from. + The boundary string for the batch structure itself. + The encoding to use to read from the batch stream. + true if the reader is created for synchronous operation; false for asynchronous. + + + Reads the next part from the batch message payload. + True if more items were read; otherwise false. + + + Asynchronously reads the next part from the batch message payload. + A task that when completed indicates whether more items were read. + + + Returns an for reading the content of a batch operation. + A request message for reading the content of a batch operation. + + + Asynchronously returns an for reading the content of a batch operation. + A task that when completed returns a request message for reading the content of a batch operation. + + + Returns an for reading the content of a batch operation. + A response message for reading the content of a batch operation. + + + Asynchronously returns an for reading the content of a batch operation. + A task that when completed returns a response message for reading the content of a batch operation. + + + + This method is called to notify that the content stream for a batch operation has been requested. + + + + + This method is called to notify that the content stream for a batch operation has been requested. + + + A task representing any action that is running as part of the status change of the reader; + null if no such action exists. + + + + + This method is called to notify that the content stream of a batch operation has been disposed. + + + + + Returns the next state of the batch reader after an end boundary has been found. + + The next state of the batch reader. + + + + Reads the next part from the batch message payload. + + true if more information was read; otherwise false. + + + + Asynchronously reads the next part from the batch message payload. + + A task that when completed indicates whether more information was read. + + + + Continues reading from the batch message payload. + + true if more items were read; otherwise false. + + + + Skips all data in the stream until the next part is detected; then reads the part's request/response line and headers. + + The next state of the batch reader after skipping to the next part and reading the part's beginning. + + + + Returns the cached for reading the content of an operation + in a batch request. + + The message that can be used to read the content of the batch request operation from. + + + + Returns the cached for reading the content of an operation + in a batch request. + + The message that can be used to read the content of the batch request operation from. + + + + Parses the request line of a batch operation request. + + The request line as a string. + The parsed HTTP method of the request. + The parsed of the request. + + + + Parses the response line of a batch operation response. + + The response line as a string. + The parsed status code from the response line. + + + + Verifies that calling CreateOperationRequestMessage if valid. + + true if the call is to be synchronous; false otherwise. + + + + Verifies that calling CreateOperationResponseMessage if valid. + + true if the call is to be synchronous; false otherwise. + + + + Verifies that calling Read is valid. + + true if the call is to be synchronous; false otherwise. + + + + Validates that the batch reader is ready to process a new read or create message request. + + + + + Verifies that a call is allowed to the reader. + + true if the call is to be synchronous; false otherwise. + + + + Increases the size of the current batch message; throws if the allowed limit is exceeded. + + + + + Increases the size of the current change set; throws if the allowed limit is exceeded. + + + + + Resets the size of the current change set to 0. + + + + + Sets the 'Exception' state and then throws an ODataException with the specified error message. + + The error message for the exception. + + + + Catch any exception thrown by the action passed in; in the exception case move the writer into + state Exception and then rethrow the exception. + + The type of the result returned from the . + The action to execute. + The result of the . + + + Gets the current state of the batch reader. + The current state of the batch reader. + + + + An enumeration to track the state of a batch operation. + + + + No action has been performed on the operation. + + + The batch message for the operation has been created and returned to the caller. + + + The stream of the batch operation message has been requested. + + + The stream of the batch operation message has been disposed. + + + + Configuration settings for OData message readers. + + + + + A instance representing any knobs that control the behavior of the readers + inside and outside of WCF Data Services. + + + + + ATOM entry XML customization callback. + + + + Initializes a new instance of the class with default values. + + + Initializes a new instance of the class. + The other message reader settings. + + + Sets the atom entry XML customization callback. + The atom entry XML customization callback. + + This method only affects ATOM format payloads. For payloads of other formats this method has no effect. + It takes three parameters: + - ODataEntry entry - which is the entry to be read. + - XmlReader reader - which is the current XmlReader used by the ODataReader to read the entry. The reader is positioned on the atom:entry start element tag. + Note that the reader might not be the exact instance of the reader create by the parent entry customization or passed in by other means to the ODataReader, + the ODataReader sometimes needs to wrap the readers and the wrapped XmlReader might be passed in here. + - Uri - the current xml:base URI value for the reader. If there is no active xml:base this parameter is passed a null value. + It returns XmlReader: + - null - means there's no need for customization and the original XmlReader will be used to read the entry. + - non-null XmlReader - an XmlReader which the ODataReader will use to read the entry. This reader must be positioned on the atom:entry start element tag. + The ODataReader will not close or dispose the reader. It will read from it and leave the reader positioned on the atom:entry end element tag + (or the empty atom:entry start tag). + Once the ODataReader reports the ODataReaderState.EntryEnd for the entry, it will not use this XmlReader anymore. + After the ODataReaderState.EntryEnd is reported the parent reader (the parameter to the func) is expected to be positioned on the node AFTER + the atom:entry end element tag (or after the atom:entry empty start tag). + Note that this means that the ODataReader will only read till the end tag on the inner reader, but it expects the parent reader to move after the end tag. + It's the resposibility of the caller to move the parent read after the end tag manually if necessary. + The func must NOT return the same XmlReader instance as the XmlReader passed to it. + + + + Enables the default behavior. + + + Specifies whether the WCF data services server behavior is enabled. + true to use V1 provider; otherwise, false. + + + + Enables the same behavior that the WCF Data Services client has. Also, lets the user set the values for custom data namespace and type scheme. + + Custom type resolver which takes both expected type and type name. + This function is used instead of the IEdmModel.FindType if it's specified. + The first parameter to the function is the expected type (the type inferred from the parent property or specified by the external caller). + The second parameter is the type name from the payload. + The function should return the resolved type, or null if no such type was found. + Custom data namespace. + Custom type scheme to use when resolving types. This should be validated to be a valid URI, this method will not check that. + + If non-null this func will be called when an entry start is found and the entry is to be read. + It takes three parameters: + - ODataEntry entry - which is the entry to be read. + - XmlReader reader - which is the current XmlReader used by the ODataReader to read the entry. The reader is positioned on the atom:entry start element tag. + Note that the reader might not be the exact instance of the reader create by the parent entry customization or passed in by other means to the ODataReader, + the ODataReader sometimes needs to wrap the readers and the wrapped XmlReader might be passed in here. + - Uri - the current xml:base URI value for the reader. If there is no active xml:base this parameter is passed a null value. + It returns XmlReader: + - null - means there's no need for customization and the original XmlReader will be used to read the entry. + - non-null XmlReader - an XmlReader which the ODataReader will use to read the entry. This reader must be positioned on the atom:entry start element tag. + The ODataReader will not close or dispose the reader. It will read from it and leave the reader positioned on the atom:entry end element tag + (or the empty atom:entry start tag). + Once the ODataReader reports the ODataReaderState.EntryEnd for the entry, it will not use this XmlReader anymore. + After the ODataReaderState.EntryEnd is reported the parent reader (the parameter to the func) is expected to be positioned on the node AFTER + the atom:entry end element tag (or after the atom:entry empty start tag). + Note that this means that the ODataReader will only read till the end tag on the inner reader, but it expects the parent reader to move after the end tag. + It's the resposibility of the caller to move the parent read after the end tag manually if necessary. + The func must NOT return the same XmlReader instance as the XmlReader passed to it. + + + + + Enables the same behavior that the WCF Data Services client has. Also, lets the user set the values for custom data namespace and type scheme. + + Custom type resolver which takes both expected type and type name. + This function is used instead of the IEdmModel.FindType if it's specified. + The first parameter to the function is the expected type (the type inferred from the parent property or specified by the external caller). + The second parameter is the type name from the payload. + The function should return the resolved type, or null if no such type was found. + Custom data namespace. + Custom type scheme to use when resolving types. This should be validated to be a valid URI, this method will not check that. + + If non-null this func will be called when an entry start is found and the entry is to be read. + It takes three parameters: + - ODataEntry entry - which is the entry to be read. + - XmlReader reader - which is the current XmlReader used by the ODataReader to read the entry. The reader is positioned on the atom:entry start element tag. + Note that the reader might not be the exact instance of the reader create by the parent entry customization or passed in by other means to the ODataReader, + the ODataReader sometimes needs to wrap the readers and the wrapped XmlReader might be passed in here. + - Uri - the current xml:base URI value for the reader. If there is no active xml:base this parameter is passed a null value. + It returns XmlReader: + - null - means there's no need for customization and the original XmlReader will be used to read the entry. + - non-null XmlReader - an XmlReader which the ODataReader will use to read the entry. This reader must be positioned on the atom:entry start element tag. + The ODataReader will not close or dispose the reader. It will read from it and leave the reader positioned on the atom:entry end element tag + (or the empty atom:entry start tag). + Once the ODataReader reports the ODataReaderState.EntryEnd for the entry, it will not use this XmlReader anymore. + After the ODataReaderState.EntryEnd is reported the parent reader (the parameter to the func) is expected to be positioned on the node AFTER + the atom:entry end element tag (or after the atom:entry empty start tag). + Note that this means that the ODataReader will only read till the end tag on the inner reader, but it expects the parent reader to move after the end tag. + It's the resposibility of the caller to move the parent read after the end tag manually if necessary. + The func must NOT return the same XmlReader instance as the XmlReader passed to it. + + Callback to determine whether operations bound to a particular entity type must be qualified with a container name when appearing in a $select clause. + + + + Returns true to indicate that the annotation with the name should be skipped, false otherwise. + + The name of the annotation in question. + Returns true to indicate that the annotation with the name should be skipped, false otherwise. + + + Gets or sets the document base URI (used as base for all relative URIs). If this is set, it must be an absolute URI. + The base URI. + + Note that for typical OData services this should end with a slash character. For example "http://services.odata.org/OData/OData.svc/" will work as expected, + that is a relative URI "Products(0)" will correctly combine with the base to produce "http://services.odata.org/OData/OData.svc/Products(0)". + If the URI would not end with a slash, the last segment is not considered when base and relative URIs are combined. + So for example this base URI "http://services.odata.org/OData/OData.svc" combined with relative URI "Products(0)" would produce + "http://services.odata.org/OData/Products(0)", which is typically not the desired result. + + + + Gets or sets a value that indicates whether not to convert all primitive values to the type specified in the model or provided as an expected type. Note that values will still be converted to the type specified in the payload itself. + true if primitive values and report values are not converted; false if all primitive values are converted to the type specified in the model or provided as an expected type. The default value is false. + + + Gets or sets the behavior the reader should use when it finds undeclared property. + The behavior the reader should use when it finds undeclared property. + + This setting has no effect if there's no model specified for the reader. + This setting must be set to Default when reading request payloads. + + Detailed behavior description: + ODataUndeclaredPropertyBehaviorKind.Default + If an undeclared property is found reading fails. + + ODataUndeclaredPropertyBehaviorKind.ReportUndeclaredLinkProperty + ATOM + - Undeclared deferred navigation link will be read and reported. + - Undeclared expanded navigation link will fail. + - Undeclared stream property link (both read and edit) will be read and reported. + - Undeclared association link will be read and reported. + - Undeclared properties inside m:properties fail. + Verbose JSON + - If an undeclared property is found a detection logic will run: + - __deferred value is found - the link will be read and reported as a deferred navigation link. + - __mediaresource value is found - the link will be read and reported as a stream property + - If nothing from the above matches the reading fails. + - Undeclared association links inside __metadata/properties will be read and reported. + JSON Light + - If an undeclared property is found a detection logic will run: + - The property has 'odata.navigationLink' or 'odata.associationLink' annotation on it and no value - it will be read as navigation/association link + - The property has 'odata.mediaEditLink', 'odata.mediaReadLink', 'odata.mediaContentType' or 'odata.mediaETag' on it and no value + - it will be read as a stream property. + - Any other property (that is property with a value or property with no annotation mentioned above) will fail. + + ODataUndeclaredPropertyBehaviorKind.IgnoreUndeclaredValueProperty + ATOM + - Undeclared property inside m:properties is ignored (not even read). + - Undeclared navigation link, stream property link or association link fail. + Verbose JSON + - If an undeclared property is found a detection logic will run: + - __deferred value is found - fail as undeclared deferred nav. link. + - __mediaresource value is found - fail as undeclared stream property. + - All other properties are ignored and not read. + - Undeclared association links inside __metadata/properties fail. + JSON Light + - If an undeclared property is found a detection logic will run: + - The property has 'odata.navigationLink' or 'odata.associationLink' annotation on it (deferred or expanded navigation link) + - fail as undeclared navigation property + - The property has 'odata.mediaEditLink', 'odata.mediaReadLink', 'odata.mediaContentType' or 'odata.mediaETag' on it and no value + - fail as undeclared stream property. + - The property has a value and no annotation mentioned above - the property is ignored and not read. + + ODataUndeclaredPropertyBehaviorKind.ReportUndeclaredLinkProperty | ODataUndeclaredPropertyBehaviorKind.IgnoreUndeclaredValueProperty + ATOM + - Undeclared deferred navigation link will be read and reported. + - Undeclared expanded navigation link will be read and the navigation link part will be reported, + the expanded content will be ignored and not read or reported. + - Undeclared stream property link (both read and edit) will be read and reported. + - Undeclared association link will be read and reported. + - Undeclared properties inside m:properties will be ignored and not read. + Verbose JSON + - If an undeclared property is found a detection logic will run: + - __deferred value is found - read and report a deferred navigation link. + - __mediaresource value is found - read and report stream property. + - All other properties are ignore and not read. + - Undeclared association links inside __metadata/properties are read and reported. + JSON Light + - If an undeclared property is found a detection logic will run: + - The property has 'odata.navigationLink' or 'odata.associationLink' annotation on it and no value (deferred navigation link) + - it will be read as navigation/association link + - The property has 'odata.navigationLink' or 'odata.associationLink' annotation on it and with value (expanded navigation link) + - it will be read, the navigation and association link will be reported and the content will be ignored. + - The property has 'odata.mediaEditLink', 'odata.mediaReadLink', 'odata.mediaContentType' or 'odata.mediaETag' on it and no value + - it will be read as a stream property. + - The property has a value and no annotation mentioned above - the property is ignored and not read. + + Note that there's one difference between ATOM/JSON Light and Verbose JSON. In ATOM and JSON Light expanded links are treated as both + undeclared link and a value property. The URLs are the link part, the expanded content is the value part. + In Verbose JSON expanded links are treated as a value property as a whole. Since in JSON expanded links don't actually have + the link part (the payload doesn't contain the "href") this is not such a big difference. + + + + Gets or sets a value that indicates whether the message stream will not be disposed after finishing writing with the message. + true if the message stream will not be disposed after finishing writing with the message; otherwise false. The default value is false. + + + Gets or sets the maximum OData protocol version the reader should accept and understand. + The maximum OData protocol version the reader should accept and understand. + + If the payload to be read has higher DataServiceVersion than the value specified for this property + the reader will fail. + Reader will also not report features which require higher version than specified for this property. + It may either ignore such features in the payload or fail on them. + + + + + false - metadata validation is strict, the input must exactly match against the model. + true - metadata validation is lax, the input doesn't have to match the model in all cases. + This property has effect only if the metadata model is specified. + + + Strict metadata validation: + Primitive values: The wire type must be convertible to the expected type. + Complex values: The wire type must resolve against the model and it must exactly match the expected type. + Entities: The wire type must resolve against the model and it must be assignable to the expected type. + Collections: The wire type must exactly match the expected type. + If no expected type is available we use the payload type. + Lax metadata validation: + Primitive values: If expected type is available, we ignore the wire type. + Complex values: The wire type is used if the model defines it. If the model doesn't define such a type, the expected type is used. + If the wire type is not equal to the expected type, but it's assignable, we fail because we don't support complex type inheritance. + If the wire type if not assignable we use the expected type. + Entities: same as complex values except that if the payload type is assignable we use the payload type. This allows derived entity types. + Collections: If expected type is available, we ignore the wire type, except we fail if the item type is a derived complex type. + If no expected type is available we use the payload type and it must resolve against the model. + If DisablePrimitiveTypeConversion is on, the rules for primitive values don't apply + and the primitive values are always read with the type from the wire. + + + + + The reader behavior that holds all the knobs needed to make the reader + behave differently inside and outside of WCF Data Services. + + + + + ATOM entry XML customization callback. + + + + + Whether or not to report any undeclared link properties in the payload. Computed from the UndeclaredPropertyBehaviorKinds enum property. + + + + + Whether or not to ignore any undeclared value properties in the payload. Computed from the UndeclaredPropertyBehaviorKinds enum property. + + + + + Reader class used to read all OData payloads (entries, feeds, metadata documents, service documents, etc.). + + + + The message for which the message reader was created. + + + A flag indicating whether we are reading a request or a response message. + + + The message reader settings to use when reading the message payload. + + + The model. Non-null if we do have metadata available. + + + The to be used for reading the payload. + + + The optional URL resolver to perform custom URL resolution for URLs read from the payload. + + + The resolver to use when determining an entity set's element type. + + + Flag to ensure that only a single read method is called on the message reader. + + + true if Dispose() has been called on this message reader, false otherwise. + + + The input context used to read the message content. + + + The payload kind of the payload to be read with this reader. + This field is set implicitly when one of the read (or reader creation) methods is called. + + + The of the payload to be read with this reader. + This field is set implicitly when one of the read (or reader creation) methods is called. + + + The parsed from the content type header. + This field is set implicitly when one of the read (or reader creation) methods is called. + + + The of the payload to be read with this reader. + This field is set implicitly when one of the read (or reader creation) methods is called. + + + The batch boundary string if the payload to be read is a batch request or response. + This is set implicitly when the CreateBatchReader method is called. + + + The media type resolver to use when interpreting the incoming content type. + + + Storage for format specific states from payload kind detection. + + + Creates a new for the given request message. + The request message for which to create the reader. + + + Creates a new for the given request message and message reader settings. + The request message for which to create the reader. + The message reader settings to use for reading the message payload. + + + + Creates a new ODataMessageReader for the given request message and message reader settings. + + The request message for which to create the reader. + The message reader settings to use for reading the message payload. + The model to use. + + + Creates a new for the given response message. + The response message for which to create the reader. + + + Creates a new for the given response message and message reader settings. + The response message for which to create the reader. + The message reader settings to use for reading the message payload. + + + + Creates a new ODataMessageReader for the given response message and message reader settings. + + The response message for which to create the reader. + The message reader settings to use for reading the message payload. + The model to use. + + + Determines the potential payload kinds and formats of the payload being read and returns it. + The set of potential payload kinds and formats for the payload being read by this reader. + When this method is called it first analyzes the content type and determines whether there + are multiple matching payload kinds registered for the message's content type. If there are, it then + runs the payload kind detection on all formats that have a matching payload kind registered. + Note that this method can return multiple results if a payload is valid for multiple payload kinds but + will always at most return a single result per payload kind. + + + + Determines the potential payload kinds and formats of the payload being read and returns it. + The set of potential payload kinds and formats for the payload being read by this reader. + When this method is called it first analyzes the content type and determines whether there + are multiple matching payload kinds registered for the message's content type. If there are, it then + runs the payload kind detection on all formats that have a matching payload kind registered. + Note that this method can return multiple results if a payload is valid for multiple payload kinds but + will always at most return a single result per payload kind. + + + + Creates an to read a feed. + The created reader. + + + + Creates an to read a feed. + + The expected base type for the entities in the feed. + The created reader. + + + + Creates an to read a feed. + + The entity set we are going to read entities for. + The expected base type for the entities in the feed. + The created reader. + + + Asynchronously creates an to read a feed. + A running task for the created reader. + + + + Asynchronously creates an to read a feed. + + The expected base type for the entities in the feed. + A running task for the created reader. + + + + Asynchronously creates an to read a feed. + + The entity set we are going to read entities for. + The expected base type for the entities in the feed. + A running task for the created reader. + + + Creates an to read an entry. + The created reader. + + + + Creates an to read an entry. + + The expected entity type for the entry to be read. + The created reader. + + + + Creates an to read an entry. + + The entity set we are going to read entities for. + The expected entity type for the entry to be read. + The created reader. + + + Asynchronously creates an to read an entry. + A running task for the created reader. + + + + Asynchronously creates an to read an entry. + + The expected entity type for the entry to be read. + A running task for the created reader. + + + + Asynchronously creates an to read an entry. + + The entity set we are going to read entities for. + The expected entity type for the entry to be read. + A running task for the created reader. + + + Creates an to read a collection of primitive or complex values (as result of a service operation invocation). + The created collection reader. + + + + Creates an to read a collection of primitive or complex values (as result of a service operation invocation). + + The expected type reference for the items in the collection. + The created collection reader. + + + Asynchronously creates an to read a collection of primitive or complex values (as result of a service operation invocation). + A running task for the created collection reader. + + + + Asynchronously creates an to read a collection of primitive or complex values (as result of a service operation invocation). + + The expected type reference for the items in the collection. + A running task for the created collection reader. + + + Creates an to read a batch of requests or responses. + The created batch reader. + + + Asynchronously creates an to read a batch of requests or responses. + A running task for the created batch reader. + + + + Creates an to read the parameters for . + + The function import whose parameters are being read. + The created parameter reader. + + + + Asynchronously creates an to read the parameters for . + + The function import whose parameters are being read. + A running task for the created parameter reader. + + + Reads a service document payload. + The service document read. + + + Asynchronously reads a service document payload. + A task representing the asynchronous operation of reading the service document. + + + Reads an as message payload. + The property read from the payload. + + + + Reads an as message payload. + + The expected type reference of the property to read. + The property read from the payload. + + + + Reads an as message payload. + + The metadata of the property to read. + The property read from the payload. + + + Asynchronously reads an as message payload. + A task representing the asynchronous operation of reading the property. + + + + Asynchronously reads an as message payload. + + The expected type reference of the property to read. + A task representing the asynchronous operation of reading the property. + + + + Asynchronously reads an as message payload. + + The metadata of the property to read. + A task representing the asynchronous operation of reading the property. + + + Reads an as the message payload. + The read from the message payload. + + + Asynchronously reads an as the message payload. + A task representing the asynchronous operation of reading the error. + + + Reads the result of a $links query (entity reference links) as the message payload. + The entity reference links read as message payload. + + + + Reads the result of a $links query (entity reference links) as the message payload. + + The navigation property for which to read the entity reference links. + The entity reference links read as message payload. + + + Asynchronously reads the result of a $links query as the message payload. + A task representing the asynchronous reading of the entity reference links. + + + + Asynchronously reads the result of a $links query as the message payload. + + The navigation property for which to read the entity reference links. + A task representing the asynchronous reading of the entity reference links. + + + Reads a singleton result of a $links query (entity reference link) as the message payload. + The entity reference link read from the message payload. + + + + Reads a singleton result of a $links query (entity reference link) as the message payload. + + The navigation property for which to read the entity reference link. + The entity reference link read from the message payload. + + + Asynchronously reads a singleton result of a $links query (entity reference link) as the message payload. + A running task representing the reading of the entity reference link. + + + + Asynchronously reads a singleton result of a $links query (entity reference link) as the message payload. + + The navigation property for which to read the entity reference link. + A running task representing the reading of the entity reference link. + + + + Reads a single value as the message body. + + The expected type reference for the value to be read; null if no expected type is available. + The read value. + + + + Asynchronously reads a single value as the message body. + + The expected type reference for the value to be read; null if no expected type is available. + A running task representing the reading of the value. + + + Reads the message body as metadata document. + Returns . + + + implementation to cleanup unmanaged resources of the reader. + + + + Determines the format of the payload being read and returns it. + + The format of the payload being read by this reader. + + The format of the payload is determined when starting to read the message; + if this method is called before reading has started it will throw. + + + + + Processes the content type header of the message to determine the format of the payload, the encoding, and the payload kind. + + All possible kinds of payload to be read with this message reader; must not include ODataPayloadKind.Unsupported. + + + + Gets the content type header of the message and validates that it is present and not empty. + + The content type header of the message. + + + + Verify arguments for creation of an to read a feed. + + The entity set we are going to read entities for. + The expected base entity type for the entities in the feed. + + + + Verify arguments for creation of an to read an entry. + + The entity set we are going to read entities for. + The expected entity type for the entry to be read. + + + + Verify arguments for creation of an to read a collection of primitive or complex values + (as result of a service operation invocation). + + The expected type for the items in the collection. + + + + Verify arguments for creation of a batch as the message body. + + + + + Verify arguments for creation of an to read the parameters for . + + The function import whose parameters are being read. + + + + Verify arguments for reading of a service document payload. + + + + + Verify arguments for reading of a metadata document payload. + + + + + Verify arguments for reading of an as message payload. + + The metadata of the property to read. + + + + Verify arguments for reading of an as message payload. + + The expected type reference of the property to read. + + + + Verify arguments for reading of an as the message payload. + + + + + Verify arguments for reading of the result of a $links query (entity reference links) as the message payload. + + The navigation property for which to read the entity reference links. + + + + Verify arguments for reading of a singleton result of a $links query (entity reference link) as the message payload. + + + + + Verify arguments for reading of a single value as the message body. + + The expected type reference for the value to be read; null if no expected type is available. + The payload kinds allowed for the given expected type. + + + + Verifies that the ODataMessageReader has not been used before; an ODataMessageReader can only be used to + read a single message payload but cannot be reused later. + + + + + Check if the object has been disposed. Throws an ObjectDisposedException if the object has already been disposed. + + + + + Perform the actual cleanup work. + + If 'true' this method is called from user code; if 'false' it is called by the runtime. + + + + Method which creates an input context around the input message and calls a func to read the input. + + The type returned by the read method. + The read function which will be called over the created input context. + All possible kinds of payload to read. + The read value from the input. + + + + Gets all the supported payload kinds for a given content type across all formats and returns them. + + The set of supported payload kinds for the content type of the message. + true if no or a single payload kind was found for the content type; false if more than one payload kind was found. + + + + Compares two payload kind detection results. + + The first . + The second . + -1 if is considered less than , + 0 if the kinds are considered equal, 1 if is considered greater than . + + + + Get an enumerable of tasks to get the supported payload kinds for all formats. + + All payload kinds for which we found matches in some format based on the content type. + The list of combined detection results after sniffing. + A lazy enumerable of tasks to get the supported payload kinds for all formats. + + + + Method which asynchronously creates an input context around the input message and calls a func to read the input. + + The type returned by the read method. + The read function which will be called over the created input context. + All possible kinds of payload to read. + A task which when completed return the read value from the input. + + + + The message reader settings to use when reading the message payload. + + + + + The media type resolver to use when interpreting the incoming content type. + + + + + Enumeration of all JSON node type. + + + + + No node - invalid value. + + + + + Start of JSON object record, the { character. + + + + + End of JSON object record, the } character. + + + + + Start of JSON array, the [ character. + + + + + End of JSON array, the ] character. + + + + + Property, the name of the property (the value will be reported as a separate node or nodes) + + + + + Primitive value, that is either null, true, false, number or string. + + + + + End of input reached. + + + + + Utility methods used with the OData library. + + + + String representation of the version 1.0 of the OData protocol. + + + String representation of the version 2.0 of the OData protocol. + + + String representation of the version 3.0 of the OData protocol. + + + Sets the content-type and data service version headers on the message used by the message writer. + The content-type and data service version headers on the message used by the message writer. + The message writer to set the headers for. + The kind of payload to be written with the message writer. + + This method can be called if it is important to set all the message headers before calling any of the + write methods on the . + If it is sufficient to set the headers when the write methods on the + are called, you don't have to call this method and setting the headers will happen automatically. + + + + Returns the format used by the message reader for reading the payload. + The format used by the messageReader for reading the payload. + The to get the read format from. + This method must only be called once reading has started. + This means that a read method has been called on the or that a reader (for entries, feeds, collections, etc.) has been created. + If the method is called prior to that it will throw. + + + + Loads the supported, OData-specific serializable annotations into their in-memory representations. + + The to process. + + + + Loads the supported, OData-specific serializable annotations into their in-memory representations. + + The to process. + The maximum number of entity mapping attributes to be found + for an entity type (on the type itself and all its base types). + + + + Loads the supported, OData-specific serializable annotations into their in-memory representations. + + The containing the annotations. + The to process. + + + + Loads the supported, OData-specific serializable annotations into their in-memory representations. + + The containing the annotations. + The to process. + The maximum number of entity mapping attributes to be found + for an entity type (on the type itself and all its base types). + + + + Turns the in-memory representations of the supported, OData-specific annotations into their serializable form. + + The to process. + + + + Turns the in-memory representations of the supported, OData-specific annotations into their serializable form. + + The containing the annotations. + The to process. + + + + Checks whether the has a default stream. + + The containing the annotation. + The to check. + true if the entity type has a default stream; otherwise false. + + + + Adds or removes a default stream to/from the . + + The containing the annotation. + The to modify. + true to add a default stream to the entity type; false to remove an existing default stream (if any). + + + + Checks whether the is the default entity container. + + The containing the annotation. + The to check. + true if the is the default container; otherwise false. + + + + Adds or removes a default stream to/from the . + + The containing the annotation. + The to modify. + true to set the as the default container; false to remove an existing default container annotation (if any). + + + + Checks whether the has a MIME type annotation. + + The containing the annotation. + The to check. + The (non-null) value of the MIME type annotation of the or null if no MIME type annotation exists. + + + + Sets the MIME type annotation of the to . + + The containing the annotation. + The to modify. + The MIME type value to set as annotation value; if null, an existing annotation will be removed. + The MIME type annotation is only supported on service operations and primitive properties for serialization purposes. + + + + Checks whether the has an HttpMethod annotation. + + The containing the annotation. + The to check. + The (non-null) value of the HttpMethod annotation of the or null if no such annotation exists. + + + + Sets the HttpMethod annotation of the to . + + The contatining the annotation. + The to modify. + The HttpMethod value to set as annotation value; if null, an existing annotation will be removed. + The HttpMethod annotation is only supported on service operations for serialization purposes. + + + + Gets the value of IsAlwaysBindable annotation on the . + + The containing the annotation. + The to get the annotation from. + The value of the annotation if it exists; false otherwise. + Thrown if the IsAlwaysBindable annotation is set to true for a non-bindable . + + + + Sets the value of IsAlwaysBindable annotation of the to + + The containing the annotation. + The to set the annotation on. + The value of the annotation to set. + Thrown if IsAlwaysBindable is set to true for a non-bindable . + + + + Gets the reader behavior for null property value on the specified property. + + The model containing the annotation. + The property to check. + The behavior to use when reading null value for this property. + + + + Adds a transient annotation to indicate how null values for the specified property should be read. + + The containing the annotations. + The to modify. + The new behavior for reading null values for this property. + + + Displays the OData version to string representation. + The OData version. + The OData version. + + + Displays a string to OData version representation. + The OData version. + The OData version. + + + + Translates the to a func that would evalutate whether the filter would match a given annotation name. + The func would evaluate to true if the matches the annotation name that's passed to the it, and false otherwise. + + + The filter string may be a comma delimited list of any of the following supported patterns: + "*" -- Matches all annotation names. + "ns.*" -- Matches all annotation names under the namespace "ns". + "ns.name" -- Matches only the annotation name "ns.name". + "-" -- The exclude operator may be used with any of the supported pattern, for example: + "-ns.*" -- Excludes all annotation names under the namespace "ns". + "-ns.name" -- Excludes only the annotation name "ns.name". + Null or empty filter is equivalent to "-*". + + The relative priority of the pattern is base on the relative specificity of the patterns being compared. If pattern1 is under the namespace pattern2, + pattern1 is more specific than pattern2 because pattern1 matches a subset of what pattern2 matches. We give higher priority to the pattern that is more specific. + For example: + "ns.*" has higher priority than "*" + "ns.name" has higher priority than "ns.*" + "ns1.name" has same priority as "ns2.*" + + Patterns with the exclude operator takes higher precedence than the same pattern without. + For example: "-ns.name" has higher priority than "ns.name". + + Examples: + "ns1.*,ns.name" -- Matches any annotation name under the "ns1" namespace and the "ns.name" annotation. + "*,-ns.*,ns.name" -- Matches any annotation name outside of the "ns" namespace and only "ns.name" under the "ns" namespace. + + Returns a func which would evaluate to true if the matches the annotation name that's passed to the it, + and false otherwise. + + + + Turns the in-memory representations of the supported, OData-specific annotations into their serializable form. + Assumes that the entity type and the model have been validated. + + The containing the annotations. + The to process. + + + + Gets a boolean value for the OData metadata annotation on + the . + + The model containing the annotation. + The annotatable to get the annotation from. + The local name of the annotation to get. + true to search the base type hierarchy of the structured type for the annotation; otherwise false. + true if the annotation exists and has the value 'true'; false if the annotation does not exist or has the value 'false'. + true if the annotation with the specified local names exists; otherwise false. + If the annotation exists but does not have a valid boolean value this method will throw. + + + + Gets a boolean value for the OData metadata annotation on + the . + + The model containing the annotation. + The annotatable to get the annotation from. + The local name of the annotation to get. + true if the annotation exists and has the value 'true'; false if the annotation does not exist or has the value 'false'. + true if the annotation with the specified local names exists; otherwise false. + If the annotation exists but does not have a valid boolean value this method wil throw. + + + + Sets the as value of the annotation + on the . + + The model containing the annotation. + The annotatable to set the annotation on. + The local name of the annotation to set. + The value of the annotation to set. + + + + Class which takes an input stream, buffers the entire content asynchronously and exposes it as a stream + which can be read synchronously. + + + + + List of buffers which store the data. + + + + + The input stream to read from. This is used only during the buffering and is set to null once we've buffered everything. + + + + + Points to the buffer currently being processed. + When writing into the buffers this points to the last buffer to which the bytes should be written. + When reading from the buffers this points to the buffer from which we are currently reading. + + + + + Number of bytes read from the current buffer. + + + + + Private constructor. + + The stream to read from. + + + + Flush the stream to the underlying storage. This operation is not supported by this stream. + + + + + Reads data from the stream. + + The buffer to read the data to. + The offset in the buffer to write to. + The number of bytes to read. + The number of bytes actually read. + + + + Seeks the stream. This operation is not supported by this stream. + + The offset to seek to. + The origin of the seek operation. + The new position in the stream. + + + + Sets the length of the stream. This operation is not supported by this stream. + + The length in bytes to set. + + + + Writes to the stream. This operation is not supported by this stream. + + The buffer to get data from. + The offset in the buffer to start from. + The number of bytes to write. + + + + Given the this method returns a task which will asynchronously + read the entire content of that stream and return a new synchronous stream from which the data can be read. + + The input stream to asynchronously buffer. + A task which returns the buffered stream. + + + + Resets the stream to the begining and prepares it for reading. + + + + + Disposes the object. + + True if called from Dispose; false if called from the finalizer. + + + + Returns enumeration of tasks to run to buffer the entire input stream. + + Enumeration of tasks to run to buffer the input stream. + This method relies on lazy eval of the enumerator, never enumerate through it synchronously. + + + + Adds a new buffer to the list and makes it the current buffer. + + The newly added buffer. + + + + Determines if the stream can read - this one can + + + + + Determines if the stream can seek - this one cannot + + + + + Determines if the stream can write - this one cannot + + + + + Returns the length of the stream, which this implementation doesn't support. + + + + + Gets or sets the position in the stream, this stream doesn't support seeking, so position is also unsupported. + + + + + Class to wrap a byte buffer used to store portion of the buffered data. + + + + + The minimum size to ask for when reading from underlying stream. + + + + + The size of a buffer to allocate - use 64KB to be aligned which makes it likely that the underlying levels + will be able to process the request in one go. + + + + + The byte buffer which stored the data. + + + + + Constructor - creates a new buffer; + + + + + Marks specified count of bytes as written starting at the OffsetToWriteTo. + + The number of bytes to mark as written. + + + + The byte buffer. + + + + + The offset into the buffer to which more data can be written. + + + + + The number of bytes stored in the buffer. + + + + + The number of bytes not yet used in the buffer. + + + + + Generic utility methods. + + + + + Calls IDisposable.Dispose() on the argument if it is not null + and is an IDisposable. + + The instance to dispose. + 'True' if IDisposable.Dispose() was called; 'false' otherwise. + + + + Asynchronously flushes a stream. + + The stream to flush. + Task which represents the pending Flush operation. + + + + Perform a stable sort of the using the specified . + + The type of the items in the array to sort. + The array to sort. + The comparison to use to compare items in the array + Array of KeyValuePairs where the sequence of Values is the sorted representation of . + + + + Stable comparer of a sequence of key/value pairs where each pair + knows its position in the sequence and its value. + + The type of the values in the sequence. + + + + The to compare the values. + + + + + Constructor. + + The to compare the values. + + + + Compares two key/value pairs by first comparing their value. If the values are equal, + the position in the array determines the relative order (and preserves the original relative order). + + First key/value pair. + Second key/value pair. + + A value < 0 if is less than . + The value 0 if is equal to . Note this only happens when comparing the same items when used in StableSort. + A value > 0 if is greater than . + + This method will never return the value 0 since the input sequence is constructed in a way + that all key/value pairs have unique indeces. + + + + Class with utility methods for dealing with OData metadata. + + + + + Returns the annotation in the OData metadata namespace with the specified . + + The containing the annotation. + The to get the annotation from. + The local name of the annotation to find. + The value of the annotation in the OData metadata namespace and with the specified . + true if an annotation with the specified local name was found; otherwise false. + + + + Sets the annotation with the OData metadata namespace and the specified on the . + + The containing the annotations."/> + The to set the annotation on. + The local name of the annotation to set. + The value of the annotation to set. + + + + Gets all the serializable annotations in the OData metadata namespace on the . + + The containing the annotations."/> + The to get the annotations from. + All annotations in the OData metadata namespace; or null if no annotations are found. + + + + Gets the EDM type of an OData instance from the of the instance (if available). + + The OData instance to get the EDM type for. + The EDM type of the if available in the annotation. + + + + Resolves the name of a primitive, complex, entity or collection type to the respective type. Uses the semantics used by writers. + Thus it implements the strict speced behavior. + + The model to use. + The name of the type to resolve. + The representing the type specified by the ; + or null if no such type could be found. + + + + Resolves the name of a primitive, complex, entity or collection type to the respective type. Uses the semantics used be readers. + Thus it can be a bit looser. + + The model to use. + The expected type for the type name being resolved, or null if none is available. + The name of the type to resolve. + Reader behavior if the caller is a reader, null if no reader behavior is available. + The version of the payload being read. + The type kind of the type, if it could be determined. This will be None if we couldn't tell. It might be filled + even if the method returns null, for example for Collection types with item types which are not recognized. + The representing the type specified by the ; + or null if no such type could be found. + + + + Resolves the name of a primitive, complex, entity or collection type to the respective type. + + The model to use. + The expected type for the type name being resolved, or null if none is available. + The name of the type to resolve. + Custom type resolver to use, if null the model is used directly. + The version to use when resolving the type name. + The type kind of the type, if it could be determined. This will be None if we couldn't tell. It might be filled + even if the method returns null, for example for Collection types with item types which are not recognized. + The representing the type specified by the ; + or null if no such type could be found. + + + + Calculates the operations that are always bindable to the given type. + + The binding type in question. + The model to search for operations. + The edm type resolver to get the parameter type. + An enumeration of operations that are always bindable to the given type. + + + + Looks up the given term name in the given model, and returns the term's type if a matching term was found. + + The name of the term to lookup, including the namespace. + The model to look in. + The type of the term in the model, or null if no matching term was found. + + + + Gets the nullable type reference for a payload type; if the payload type is null, uses Edm.String. + + The payload type to get the type reference for. + The nullable for the . + + + + Class with utility methods for validating OData content (applicable for readers and writers). + + + + Maximum batch boundary length supported (not includeding leading CRLF or '-'). + + + The set of characters that are invalid in property names. + Keep this array in sync with MetadataProviderUtils.InvalidCharactersInPropertyNames in Astoria. + + + + Validates that an open property value is supported. + + The name of the open property. + The value of the open property. + + + + Validates a type kind for a value type. + + The type kind. + The name of the type (used for error reporting only). + + + + Validates that is a valid type name for a collection and returns its item type name. + + The name of the collection type. + The item type name for the . + + + + Validates that the is assignable to the + and fails if it's not. + + The expected entity type reference, the base type of the entities expected. + The payload entity type reference to validate. + + + + Validates that the represents a collection type. + + The type reference to validate. + The instance representing the collection passed as . + + + + Validates an item of a collection to ensure it is not of collection and stream reference types. + + The collection item. + True if the items in the collection are streamable, false otherwise. + + + + Validates a null collection item against the expected type. + + The expected item type or null if no expected item type exists. + The instance controlling the behavior of the writer. + + + + Validates a stream reference property to ensure it's not null and its name if correct. + + The stream reference property to validate. + Property metadata to validate against. + + + + Validates an to ensure it's not null. + + The association link to ensure it's not null. + + + + Validates the name for an association link. + + The name of the association link to validate. + + + + Validates an to ensure all required information is specified and valid. + + The association link to validate. + + + + Increases the given recursion depth, and then verifies that it doesn't exceed the recursion depth limit. + + The current depth of the payload element hierarchy. + The maximum allowed recursion depth. + + + + Validates an to ensure it's not null. + + The operation to ensure it's not null. + Whether is an . + + + + Validates an to ensure its metadata is specified and valid. + + The operation to validate. + + + + Validates an to ensure its target is specified and valid. + + The operation to validate. + + + + Validates that the specified is a valid entry as per the specified type. + + The entry to validate. + Optional entity type to validate the entry against. + Model containing the entity type. + true if the validation of the default MediaResource should be done; false otherwise. + If the is available only entry-level tests are performed, properties and such are not validated. + + + + Validates that a given primitive value is of the expected (primitive) type. + + The value to check. + The expected type for the value. + + + + Validates that a given primitive value is of the expected (primitive) type. + + The value to check. + The primitive type reference for the value - some callers have this already, so we save the lookup here. + The expected type for the value. + + Some callers have the primitive type reference already resolved (from the value type) + so this method is an optimized version to not lookup the primitive type reference again. + + + + + Validates that the expected primitive type matches the actual primitive type. + + The expected type. + The actual type. + + + + Validates a resource collection. + + The resource collection to validate. + + + + Validates a resource collection Url. + + The resource collection url to validate. + + + + Validates that the observed type kind is the expected type kind. + + The actual type kind to compare. + The expected type kind to compare against. + The name of the type to use in the error. + + + + Validates that a boundary delimiter is valid (non-null, less than 70 chars, only valid chars, etc.) + + The boundary delimiter to test. + + + + Null validation of complex properties will be skipped if edm version is less than v3 and data service version exists. + In such cases, the provider decides what should be done if a null value is stored on a non-nullable complex property. + + The model containing the complex property. + True if complex property should be validated for null values. + + + + Validates that a property name is valid in OData. + + The property name to validate. + true if the property name is valid, otherwise false. + + + + Validates a property name to check whether it contains reserved characters. + + The property name to check. + + + + Validates that the total number of entity property mapping attributes on the base entity type and the current + entity type does not exceed the specified security limit. + + The EPM cache of the base entity type or null if no base entity type exists. + The EPM collection of the current entity type. + The maximum number of mappings allowed for an entity type (on the type itself and all its base types). + The total number of entity property mappings for the current entity type. + + + + Class with utility methods for writing OData content. + + + + + Determines if a property should be written or skipped. + + The projected properties annotation to use (can be null). + The name of the property to check. + true if the property should be skipped, false to write the property. + + + + Class with utility methods to work with media types. + + + + An array of all the supported payload kinds. + + + UTF-8 encoding, without the BOM preamble. + + While a BOM preamble on UTF8 is generally benign, it seems that some MIME handlers under IE6 will not + process the payload correctly when included. + + Because the data service should include the encoding as part of the Content-Type in the response, + there should be no ambiguity as to what encoding is being used. + + For further information, see http://www.unicode.org/faq/utf_bom.html#BOM. + + + + + Given the Accept and the Accept-Charset headers of the request message computes the media type, encoding and + to be used for the response message. + + The message writer settings to use for serializing the response payload. + The kind of payload to be serialized as part of the response message. + The media type resolver to use when interpreting the content type. + The media type to be used in the response message. + The encoding to be used in the response message. + The used when serializing the response. + + + + Determine the to use for the given . If no supported content type + is found an exception is thrown. + + The name of the content type to be checked. + All possiblel kinds of payload that can be read with this content type. + The media type resolver to use when interpreting the content type. + The media type parsed from the . + The encoding from the content type or the default encoding for the . + + The payload kind that was selected form the list of for the + specified . + + The batch boundary read from the content type for batch payloads; otherwise null. + The for the . + + + + Gets all payload kinds and their corresponding formats that match the specified content type header. + + The content type header to get the payload kinds for. + The media type resolver to use when interpreting the content type. + The parsed content type as . + The encoding from the content type or the default encoding from . + The list of payload kinds and formats supported for the specified . + + + + Checks whether two media types with subtypes (but without parameters) are equal. + + The first media type and subtype. + The second media type and subtype. + true if the is equal to ; otherwise false. + + + + Checks whether a media type starts with the expected type and subtype. + + The media type to check. + The type and subtype the should start with. + true if the starts with ; otherwise false. + + + + Checks whether the specified media type has a parameter with the expected value. + + The media type to check the parameters for. + The name of the expected parameter. + The value of the expected parameter. + true if the has a parameter called + with value ; otherwise false. + + + + Determines whether the media type has a 'streaming' parameter with the value 'true'. + + The media type to check. + + true if the media type has a 'streaming' parameter with the value 'true'; otherwise, false. + + + + + Checks for wildcard characters in the . + + The to check. + + + + JSONP - instead of writing 'application/json', we write 'text/javascript'. In all other ways we pretend it is JSON + + Original content-type value string. + New content-type value string. + + + + Determine the to use for the given . If no supported content type + is found an exception is thrown. + + The name of the content type to be checked. + All possiblel kinds of payload that can be read with this content type. + The media type resolver to use when interpreting the content type. + The media type parsed from the . + The encoding from the content type or the default encoding for the . + + The payload kind that was selected form the list of for the + specified . + + The for the . + + + + Parses the specified content type header into a media type instance. + + The content type header to parse. + The optional charset specified with the content type. + The of the parsed . + + + + Gets the default media type for a given payload kind in a given format. + + A list of supported media types and formats. + The user-specified format in which to write the payload (can be null). + The default format for the specified payload kind + The default media type for the given payload kind and format. + + + + Parses the accepted charsets and matches them against the supported encodings for the given . + + The Accept-Charset header of the request. + The for which to compute the encoding. + The media type used to compute the default encoding for the payload. + true if the default encoding should be returned if no acceptable charset is found; otherwise false. + The encoding to be used for the response. + + + + Matches the supported media types against the list of media types specified in the Accept header or ContentType header of the message. Matching follows the + rules for media type matching as described in RFC 2616. + + The set of media types to be matched against the . + The set of media types the will be matched against. + The best found during the matching process or null if no match was found. + + + + Converts all occurrences of the 'application/json' media type to 'application/json;odata=minimalmetadata'. + This is necessary because for an accept header 'application/json, application/json;odata=verbose' + we want the result to be 'application/json;odata=minimalmetadata' although this is not compliant with the + default conneg rules (where application/json;odata=verbose would win). + + The parsed acceptable media types. + + + UTF-8 encoding, without the BOM preamble. + + While a BOM preamble on UTF8 is generally benign, it seems that some MIME handlers under IE6 will not + process the payload correctly when included. + + Because the data service should include the encoding as part of the Content-Type in the response, + there should be no ambiguity as to what encoding is being used. + + For further information, see http://www.unicode.org/faq/utf_bom.html#BOM. + + + + + Class representing the result of matching two instances. + + + + The default quality value (in the normalized range from 0 .. 1000). + + + Index of the source type in the list of all source types. + + + Index of the target type in the list of all target types. + + + + Constructor. + + The source to match against the target type. + The target to match against the source type. + Index of the source type in the list of all source types. + Index of the target type in the list of all target types. + + + + Implementation of . + + The to compare against. + + -1 if this instance is a worse match than . + 0 if both matches are the same. + 1 if is a better match than this instance. + + + + Selects a quality value for the specified type. + The text representation of the quality value. + The quality value, in range from 0 through 1000. + See http://tools.ietf.org/html/rfc2616#section-14.1 for further details. + + + + Tries to find a parameter with the specified in the given list of parameters. + Does not include accept extensions (i.e., parameters after the q quality value parameter) + + The list of parameters to search. + The name of the parameter to find. + The parameter value of the parameter with the specified . + True if a parameter with the specified was found; otherwise false. + + + + Returns a flag indicating whether a given media type parameter name is the Http quality value parameter. + + The parameter name to check. + True if the parameter name is for the quality value; otherwise false. + + + + Matches the source type against the media type. + + The source to match against the target type. + The target to match against the source type. + + + + Index of the source type in the list of all source types. + + + + + Index of the target type in the list of all target types. + + + + + Represents the number of non-* matching type name parts or -1 if not matching at all. + + + + + Represents the number of matching parameters or -1 if neither the source type nor the target type have parameters. + + + + The quality value of the target type (or -1 if none is specified). + + + + The number of parameters of the source type that are used for comparison. All accept-parameters are ignored. + + + + + true if this represents a valid match (i.e., the source and target types match/are compatible); otherwise false. + + + Two types are considered compatible if at least one type name part matches (or we are dealing with a wildcard) + and all the parameters in the source type have been matched. + + + + + Represents a collection of entity reference links (the result of a $links query). + Might include an inline count and a next link. + + + + + Provides additional serialization information to the for this . + + + + Gets or sets the optional inline count of the $links collection. + The optional inline count of the $links collection. + + + Gets or sets the optional next link of the $links collection. + The optional next link of the $links collection. + + + Gets or sets the enumerable of instances representing the links of the referenced entities. + The enumerable of instances. + These links should be usable to retrieve or modify the referenced entities. + + + + Provides additional serialization information to the for this . + + + + + Represents an entity reference link (the result of a $link query). + + + + + Base class for Feed and Entry. + + + + + Provides additional serialization information to the for this . + + + + Gets or sets the URI representing the URL of the referenced entity. + The URI representing the URL of the referenced entity. + This URL should be usable to retrieve or modify the referenced entity. + + + + Provides additional serialization information to the for this . + + + + + Interface for synchronous OData request messages. + + + + Returns a value of an HTTP header. + The value of the HTTP header, or null if no such header was present on the message. + The name of the header to get. + + + Sets the value of an HTTP header. + The name of the header to set. + The value of the HTTP header or 'null' if the header should be removed. + + + Gets the stream backing for this message. + The stream backing for this message. + + + Gets an enumerable over all the headers for this message. + An enumerable over all the headers for this message. + + + Gets or sets the request URL for this request message. + The request URL for this request message. + + + Gets or sets the HTTP method used for this request message. + The HTTP method used for this request message. + + + + Interface for synchronous OData response messages. + + + + Returns a value of an HTTP header. + The value of the HTTP header, or null if no such header was present on the message. + The name of the header to get. + + + Sets the value of an HTTP header. + The name of the header to set. + The value of the HTTP header or 'null' if the header should be removed. + + + Gets the stream backing for this message. + The stream backing for this message. + + + Gets an enumerable over all the headers for this message. + An enumerable over all the headers for this message. + + + Gets or sets the result status code of the response message. + The result status code of the response message. + + + + Implementation class wrapped by the and + implementations. + + + + + Base class for the internal wrappers around IODataRequestMessageAsync and IODataResponseMessageAsync. + + + + true if the message is being written; false when it is read. + + + true if the stream returned should ignore dispose calls. + + + The maximum size of the message in bytes (or null if no maximum applies). + + + true to use a buffering read stream wrapper around the actual message stream; otherwise false. + + + The buffering read stream used for payload kind detection; only non-null inside of payload kind detection. + + + + Constructs a new ODataMessage. + + true if the message is being written; false when it is read. + true if the stream returned should ignore dispose calls. + The maximum size of the message in bytes (or a negative value if no maximum applies). + + + + Returns a value of an HTTP header. + + The name of the header to get. + The value of the HTTP header, or null if no such header was present on the message. + + + + Sets the value of an HTTP header. + + The name of the header to set. + The value for the header with name . + + + + Get the stream backing this message. + + The stream for this message. + + + + Asynchronously get the stream backing this message. + + The stream for this message. + + + + Queries the message for the specified interface type. + + The type of the interface to query for. + The instance of the interface asked for or null if it was not implemented by the message. + We need this method since the input contexts don't get access to the actual instance of the message given to us by the user + instead they get this class, and thus they can't just cast to get to the interface they want. + + + + Synchronously get the stream backing this message. + + A function that returns the stream backing the message. + true if the message is a request message; false for a response message. + The backing the message. + + + + Asynchronously get the stream backing this message. + + A function that returns a task for the stream backing the message. + true if the message is a request message; false for a response message. + A task that when completed returns the stream backing the message. + + + + Verifies that setting a header is allowed + + + We allow modifying the headers only if we are writing the message and we are not + detecting the payload kind. + + + + + Validates that a given message stream can be used. + + The stream to validate. + true if the message is a request message; false for a response message. + + + + Validates that a given task providing the message stream can be used. + + The task to validate. + true if the message is a request message; false for a response message. + + + + Gets the buffering read stream if one is available; otherwise returns null. + + The currently being used or null if no buffering stream is currently being used. + + + + Returns an enumerable over all the headers for this message. + + + + + true to use a buffering read stream wrapper around the actual message stream; otherwise false. + + + + + true to use a buffering read stream wrapper around the actual message stream; otherwise false. + + + + Listener interface to be notified of operation changes. + + + The URL resolver to perform custom URL resolution for URLs read or written from/to the payload. + + + A function to retrieve the content stream for this batch operation message. + + + The set of headers for this operation. + + + + Constructor. Base class constructor to create a message for an operation of a batch request/response. + + A function to retrieve the content stream for this batch operation message. + The headers of the batch operation message. + Listener interface to be notified of part changes. + The URL resolver to perform custom URL resolution for URLs read or written from/to the payload. + true if the request message is being written; false when it is read. + + + + Returns a value of an HTTP header of this operation. + + The name of the header to get. + The value of the HTTP header, or null if no such header was present on the message. + + + + Sets the value of an HTTP header of this operation. + + The name of the header to set. + The value of the HTTP header or 'null' if the header should be removed. + + + + Get the stream backing this message. + + The stream for this message. + + + + Asynchronously get the stream backing this message. + + The stream for this message. + + + + Queries the message for the specified interface type. + + The type of the interface to query for. + The instance of the interface asked for or null if it was not implemented by the message. + + + + Method to implement a custom URL resolution scheme. + This method returns null if not custom resolution is desired. + If the method returns a non-null URL that value will be used without further validation. + + The (optional) base URI to use for the resolution. + The URI read from the payload. + + A instance that reflects the custom resolution of the method arguments + into a URL or null if no custom resolution is desired; in that case the default resolution is used. + + + + + Indicates that the headers and request/response line have been read or written. + Can be called only once per batch part and headers cannot be modified + anymore after this method was called. + + + + + Verifies that writing of the message has not been completed; this is called from all methods + that are only valid to be called before the message content is written or the message + + + + + Returns an enumerable over all the headers for this message. + + + + + Message representing an operation in a batch response. + + + + + Interface for asynchronous OData response messages. + + + + Asynchronously get the stream backing for this message. + The stream backing for this message. + + + + The actual implementation of the message. + We don't derive from this class since we want the actual implementation to remain internal + while this class is public. + + + + The result status code of the response message. + + + + Constructor. + + A function to retrieve the content stream for this batch operation message. + The headers of the batch operation message. + Listener interface to be notified of part changes. + The optional URL resolver to perform custom URL resolution for URLs written to the payload. + true if the request message is being written; false when it is read. + + + Returns a value of an HTTP header of this operation. + The value of the HTTP header, or null if no such header was present on the message. + The name of the header to get. + + + Sets the value of an HTTP header of this operation. + The name of the header to set. + The value of the HTTP header or null if the header should be removed. + + + Gets the stream backing for this message. + The stream backing for this message. + + + Asynchronously get the stream backing for this message. + The stream backing for this message. + + + Method to implement a custom URL resolution scheme. This method returns null if not custom resolution is desired. If the method returns a non-null URL that value will be used without further validation. + A instance that reflects the custom resolution of the method arguments into a URL or null if no custom resolution is desired; in that case the default resolution is used. + The (optional) base URI to use for the resolution. + The URI read from the payload. + + + + Creates an operation response message that can be used to write the operation content to. + + The output stream underlying the operation message. + The operation listener. + The (optional) URL resolver for the message to create. + An that can be used to write the operation content. + + + + Creates an operation response message that can be used to read the operation content from. + + The batch stream underyling the operation response message. + The status code to use for the operation response message. + The headers to use for the operation response message. + The operation listener. + The (optional) URL resolver for the message to create. + An that can be used to read the operation content. + + + Gets or sets the result status code of the response message. + The result status code of the response message. + + + Gets an enumerable over all the headers for this message. + An enumerable over all the headers for this message. + + + + Returns the actual operation message which is being wrapped. + + + + + Message representing an operation in a batch request. + + + + + Interface for asynchronous OData request messages. + + + + Asynchronously get the stream backing for this message. + The stream for this message. + + + + The actual implementation of the message. + We don't derive from this class since we want the actual implementation to remain internal + while this class is public. + + + + + Constructor. Creates a request message for an operation of a batch request. + + A function to create the content stream. + The HTTP method used for this request message. + The request Url for this request message. + The headers for the this request message. + Listener interface to be notified of operation changes. + The optional URL resolver to perform custom URL resolution for URLs written to the payload. + true if the request message is being written; false when it is read. + + + Returns a value of an HTTP header of this operation. + The value of the HTTP header, or null if no such header was present on the message. + The name of the header to get. + + + Sets the value of an HTTP header of this operation. + The name of the header to set. + The value of the HTTP header or 'null' if the header should be removed. + + + Gets the stream backing for this message. + The stream backing for this message. + + + Asynchronously get the stream backing for this message. + The stream backing for this message. + + + Implements a custom URL resolution scheme. + A instance that reflects the custom resolution of the method arguments into a URL or null if no custom resolution is desired; in that case the default resolution is used. + The (optional) base URI to use for the resolution. + The URI read from the payload. + + + + Creates an operation request message that can be used to write the operation content to. + + The output stream underlying the operation message. + The HTTP method to use for the message to create. + The request URL for the message to create. + The operation listener. + The (optional) URL resolver for the message to create. + An to write the request content to. + + + + Creates an operation request message that can be used to read the operation content from. + + The batch stream underyling the operation response message. + The HTTP method to use for the message to create. + The request URL for the message to create. + The headers to use for the operation request message. + The operation listener. + The (optional) URL resolver for the message to create. + An to read the request content from. + + + Gets an enumerable over all the headers for this message. + An enumerable over all the headers for this message. + + + Gets or sets the request URL for this request message. + The request URL for this request message. + + + Gets or Sets the HTTP method used for this request message. + The HTTP method used for this request message. + + + + Returns the actual operation message which is being wrapped. + + + + + Helper methods used by the ODataBatchWriter. + + + + + Creates a new batch boundary string based on a randomly created GUID. + + A flag indicating whether the boundary should be created for a request or a resonse. + The newly created batch boundary as string. + + + + Creates a new changeset boundary string based on a randomly created GUID. + + A flag indicating whether the boundary should be created for a request or a resonse. + The newly created changeset boundary as string. + + + + Creates the multipart/mixed content type with the specified boundary (if any). + + The boundary to be used for this operation or null if no boundary should be included. + The multipart/mixed content type with the specified boundary (if any). + + + + Write the start boundary. + + Writer to which the boundary needs to be written. + Boundary string. + true if this is the first start boundary. + + + + Write the end boundary. + + Writer to which the end boundary needs to be written. + Boundary string. + true if there was no start boundary written before this end boundary. + + + + Writes the headers, (optional) Content-ID and the request line + + Writer to write to. + The Http method to be used for this request operation. + The Uri to be used for this request operation. + + + + Writes the headers and response line. + + Writer to write to. + + + + Writes the preamble for a change set (e.g., the content-type header). + + Writer to write to. + The boundary string to use for the change set. + + + + Holds information needed during content serialization/deserialization for + each EntityPropertyMappingAttribute. + + + + + Private field backing Attribute property. + + + + + Private field backing DefiningType property. + + + + + Type whose property is to be read. + + + + + Path to the property value. Stored as an array of source path segments which describe the path from the entry to the property in question. + If this mapping is for a non-collection property or for the collection property itself, this path starts at the entity resource (not including the root segment). + If this mapping is for a collection item property, this path starts at the collection item. In this case empty path is allowed, meaning the item itself. + + + + + Set to true if this info describes mapping to a syndication item, or false if it describes a custom mapping + + + + + Creates instance of EntityPropertyMappingInfo class. + + The corresponding to this object + Type the was defined on. + Type whose property is to be read. This can be different from defining type when inheritance is involved. + + + + Sets path to the source property. + + The path as an array of source path segments. + + + Compares the defining type of this info and other EpmInfo object. + The other EpmInfo object to compare to. + true if the defining types are the same + + + + The corresponding to this object. + + + + + Entity type that has the . + + + + + Entity type whose property is to be read. + + + + + Path to the property value. Stored as an array of source path segments which describe the path from the entry to the property in question. + If this mapping is for a non-collection property or for the collection property itself, this path starts at the entity resource. + If this mapping is for a collection item property, this path starts at the collection item. In this case empty path is allowed, meaning the item itself. + + + + + Set to true if this info describes mapping to a syndication item, or false if it describes a custom mapping. + + + + + Writer for the EPM custom-only. Writes the EPM custom mapping properties into XmlWriter. + + + + + Constructor. + + The output context currently in use. + + + + Writes the custom mapped EPM properties to an XML writer which is expected to be positioned such to write + a child element of the entry element. + + The XmlWriter to write to. + The EPM target tree to use. + The entry properties value cache to use to access the properties. + The type of the entry. + The output context currently in use. + + + + Writes a namespace declaration attribute for the namespace required by the target segment. + + The writer to write the declaration to. + The target segment to write the declaration for. + The name of the prefix if it was already declared. + + + + Writes the custom mapped EPM properties to an XML writer which is expected to be positioned such to write + a child element of the entry element. + + The XmlWriter to write to. + The EPM target tree to use. + The entry properties value cache to use to access the properties. + The type of the entry. + + + + Writes an EPM element target. + + The writer to write to. + The target segment describing the element to write. + The entry properties value cache to use to access the properties. + The type of the entry. + The name of the prefix if it was already declared. + + + + Writes an EPM attribute target. + + The writer to write to. + The target segment describing the attribute to write. + The entry properties value cache to use to access the properties. + The type of the entry. + The name of the prefix if it was already declared. + + + + Given a target segment the method returns the text value of the property mapped to that segment to be used in EPM. + + The target segment to read the value for. + The entry EPM value cache to use. + The entity type of the entry being processed. + The test representation of the value, or the method throws if the text representation was not possible to obtain. + + + + Writer for the EPM syndication-only. Writes the EPM properties into ATOM metadata OM. + + + + The EPM target tree to use. + + + Atom entry metadata to write to. + + + + Constructor. + + The EPM target tree to use. + The output context currently in use. + + + + Writes the syndication part of EPM for an entry into ATOM metadata OM. + + The EPM target tree to use. + The entry properties value cache to use to access the properties. + The type of the entry. + The output context currently in use. + The ATOM metadata OM with the EPM values populated. + + + + Creates a text ATOM value. + + The text value to use. + The content kind of the value. + The Atom text value. + + + + Given an object returns the corresponding DateTimeOffset value through conversions. + + Object containing property value. + The target syndication property for the mapping (used for exception messages). + The current settings to control the behavior of the writer. + DateTimeOffset after conversion. + + + + Given an object returns the corresponding string representation of the value. + + Object containing property value. + The current settings to control the behavior of the writer. + String representation of the property value. + + + + Writes the syndication part of EPM for an entry into ATOM metadata OM. + + The entry properties value cache to use to access the properties. + The type of the entry. + The ATOM metadata OM with the EPM values populated. + + + + Writes a non-leaf segment which has sub segments. + + The segment being written + EPM value cache to use to get property values, or a primitive value + The type of the entry or collection item. + + + + Writes EPM value to a person construct (author or contributor). + + The target segment which points to either author or contributor element. + EPM value cache to use to get property values, or a primitive value + The type of the entry or collection item. + The person metadata or null if no person metadata should be written for this mapping. + + + + Given a target segment the method returns the text value of the property mapped to that segment to be used in EPM. + + The target segment to read the value for. + EPM value cache to use to get property values, or a primitive value + The type of the entry or collection item. + The test representation of the value, or the method throws if the text representation was not possible to obtain. + + + + Atom metadata description for a workspace. + + + + Gets or sets the title of the workspace. + The title of the workspace. + + + + Atom metadata description for a collection (in a workspace). + + + + Gets or sets the title of the collection. + The title of the collection. + + + Gets or sets the accept range of media types for this collection. + The accept range of media types for this collection. + + + Gets or sets the categories for this collection. + The categories for this collection. + + + + Caches values of properties and items enumerations so that we only ever enumerate these once even if they were use in EPM. + + + + + Caches either ComplexValue properties enumeration or Collection items enumeration. + + The key is the complex value, or collection for the property in question. + For complex property, the value is a List of ODataProperty which stores the enumeration ODataComplexValue.Properties cache. + For collection property, the value is a List of object which stores the enumeration ODataCollectionValue.Items cache. + The items are either EpmCollectionItemCache instances in which case the value of the item is cached inside that instance, + or it's any other type in which case the value of the item is that instance. + + + + Creates a new empty cache. + + + + + Returns the properties for the specified complex value. + + The EPM value cache to use (can be null). + The complex value to get the properties for. + If we're writing content of an entry or not. + The properties enumeration for the complex value. + + + + Caches and returns the properties for the specified complex value. + + The complex value to cache the properties for. + The cached properties enumeration for the complex value. + This method assumes that the complex value's properties are not cached yet. + + + + Returns the properties for the specified complex value. + + The complex value to get the properties for. + true if we're writing entry content or false when writing out-of-content EPM. + The properties enumeration for the complex value. + + + + Caches values of properties enumerations on an entry and then EPM values for the rest of property values. + + + + + Caches the ODataEntry.Properties enumeration. + + + + + Creates a new cache. + + The entry for which to create the properties cache. + + + + Returns enumeration of properties (excluding stream properties) for the entry. + + + + + Returns enumeration of stream properties for the entry. + + + + + Helper methods for EPM writers. + + + + + Given a property value returns the text value to be used in EPM. + + The value of the property. + The text representation of the value, or the method throws if the text representation was not possible to obtain. + + + + Gets the for the specified + from the . + + The EPM source path segment for the parent of the property being written. + The name of the property to get the for. + The for the specified or null if none exists. + + + + Gets the for the specified . + + The EPM source path segment to get the from. + The for the specified or null if none exists. + + + + Returns an for a given property provided the parent . + + The parent to get the property segment from. + The name of the property to get the for. + An for a given property provided the parent . + + + + Cache all the properties and collection item enumerations needed for EPM processing. + + The property value cache to cache the EPM related properties in. + The source tree describing all properties taking part in entity property mappings. + + + + Cache the property and collection item enumerations needed in EPM mappings. We do this for syndication and custom + mappings. + + The property value cache to use for caching. + The source path segments to cache. + The values to compute the segments against. + + + + Gets the property value as the requested type. + + The expected type of the property value. + The properties to search. + The name of the property to get the value for. + The property value as or null if no property + with name or with the expected type exists. + true if a property of the expected type was found; otherwise false. + + + + Helper methods used to merge Atom metadata from EPM with those specified through annotations. + + + + + Merges custom and EPM ATOM metadata. + + The custom ATOM metadata, or null if there were no custom ATOM metadata. + The EPM ATOM metadata, or null if there are no EPM mappings to syndication targets. + The instance configuring the writer. + The merged ATOM metadata to write to the output. + The merge means that if one of the sides has null, the other is used, otherwise if both are non-null + we verify that the values are the same, otherwise we throw. + + + + Merges enumerations of person metadata. + + The enumeration of custom person metadata. + The enumeration of EPM person metadata. + The type of syndication mapping, one of AtomLinkMetadata, AtomCategoryMetadata, AtomPersonMetadata, + The merged enumeration. + + + + Merges ATOM text values. + + The custom value. + The EPM value. + The name of the ATOM property which holds the text value, used for error reporting. + The merged ATOM text value. + + + + Merges text values. + + The custom value. + The EPM value. + The name of the ATOM property which holds the text value, used for error reporting. + The merged text value. + + + + Merges date time offset values. + + The custom value. + The EPM value. + The name of the ATOM property which holds the value, used for error reporting. + The merged date time offset value. + + + + Tries to merge custom and EPM values if one of them is null. + + The type of the value to merge. + The custom value. + The EPM value. + The merge value if the merge was possible. + true if one of the values was null and thus the other was returned in ; + false if both were not null and thus full merge will have to be performed. + + + + Tries to merge custom and EPM values if one of them is null. + + The type of the value to merge. + The custom value. + The EPM value. + The merge value if the merge was possible. + true if one of the values was null and thus the other was returned in ; + false if both were not null and thus full merge will have to be performed. + + + + Class for writing OData batch messages; also verifies the proper sequence of write calls on the writer. + + + + The output context to write to. + + + The boundary string for the batch structure itself. + + + The batch-specific URL resolver that stores the content IDs found in a changeset and supports resolving cross-referencing URLs. + + + The state the writer currently is in. + + + + The boundary string for the current changeset (only set when writing a changeset, + e.g., after WriteStartChangeSet has been called and before WriteEndChangeSet is called). + + When not writing a changeset this field is null. + + + + A flag to indicate whether the batch start boundary has been written or not; important to support writing of empty batches. + + + + + A flags to indicate whether the current changeset start boundary has been written or not. + This is false if a changeset has been started by no changeset boundary was written, and true once the first changeset + boundary for the current changeset has been written. + + + + The request message for the operation that is currently written if it's a request; + or null if no part is written right now or it's a response part. + + + The response message for the operation that is currently written if it's a response; + or null if no part is written right now or it's a request part. + + + + The value of the Content-ID header of the current operation (or null if no Content-ID header exists). + + + Note that the current Content-ID header is not included immediately in the content ID cache + since the current content ID will only be visible to subsequent operations. + + + + The current size of the batch message, i.e., how many query operations and changesets have been written. + + + The current size of the active changeset, i.e., how many request have been written for the changeset. + + + + Constructor. + + The output context to write to. + The boundary string for the batch structure itself. + + + Starts a new batch; can be only called once and as first call. + + + Asynchronously starts a new batch; can be only called once and as first call. + A task instance that represents the asynchronous write operation. + + + Ends a batch; can only be called after WriteStartBatch has been called and if no other active changeset or operation exist. + + + Asynchronously ends a batch; can only be called after WriteStartBatch has been called and if no other active change set or operation exist. + A task instance that represents the asynchronous write operation. + + + Starts a new changeset; can only be called after WriteStartBatch and if no other active operation or changeset exists. + + + Asynchronously starts a new change set; can only be called after WriteStartBatch and if no other active operation or change set exists. + A task instance that represents the asynchronous write operation. + + + Ends an active changeset; this can only be called after WriteStartChangeset and only once for each changeset. + + + Asynchronously ends an active change set; this can only be called after WriteStartChangeset and only once for each change set. + A task instance that represents the asynchronous write operation. + + + Creates an for writing an operation of a batch request. + The message that can be used to write the request operation. + The Http method to be used for this request operation. + The Uri to be used for this request operation. + + + Creates a message for asynchronously writing an operation of a batch request. + The message that can be used to asynchronously write the request operation. + The HTTP method to be used for this request operation. + The URI to be used for this request operation. + + + Creates a message for writing an operation of a batch response. + The message that can be used to write the response operation. + + + Asynchronously creates an for writing an operation of a batch response. + A task that when completed returns the newly created operation response message. + + + Flushes the write buffer to the underlying stream. + + + Flushes the write buffer to the underlying stream asynchronously. + A task instance that represents the asynchronous operation. + + + + This method is called to notify that the content stream for a batch operation has been requested. + + + + + This method is called to notify that the content stream for a batch operation has been requested. + + + A task representing any action that is running as part of the status change of the operation; + null if no such action exists. + + + + + This method is called to notify that the content stream of a batch operation has been disposed. + + + + + This method notifies the listener, that an in-stream error is to be written. + + + This listener can choose to fail, if the currently written payload doesn't support in-stream error at this position. + If the listener returns, the writer should not allow any more writing, since the in-stream error is the last thing in the payload. + + + + + Determines whether a given writer state is considered an error state. + + The writer state to check. + True if the writer state is an error state; otherwise false. + + + + Verifies that calling WriteStartBatch is valid. + + true if the call is to be synchronous; false otherwise. + + + + Starts a new batch - implementation of the actual functionality. + + + + + Verifies that calling WriteEndBatch is valid. + + true if the call is to be synchronous; false otherwise. + + + + Ends a batch - implementation of the actual functionality. + + + + + Verifies that calling WriteStartChangeset is valid. + + true if the call is to be synchronous; false otherwise. + + + + Starts a new changeset - implementation of the actual functionality. + + + + + Verifies that calling WriteEndChangeset is valid. + + true if the call is to be synchronous; false otherwise. + + + + Ends an active changeset - implementation of the actual functionality. + + + + + Verifies that calling CreateOperationRequestMessage if valid. + + true if the call is to be synchronous; false otherwise. + The Http method to be used for this request operation. + The Uri to be used for this request operation. + + + + Creates an for writing an operation of a batch request - implementation of the actual functionality. + + The Http method to be used for this request operation. + The Uri to be used for this request operation. + The message that can be used to write the request operation. + + + + Verifies that calling CreateOperationResponseMessage is valid. + + true if the call is to be synchronous; false otherwise. + + + + Creates an for writing an operation of a batch response - implementation of the actual functionality. + + The message that can be used to write the response operation. + + + + Writes all the pending headers and prepares the writer to write a content of the operation. + + + + + Disposes the batch writer and set the 'OperationStreamRequested' batch writer state; + called after the flush operation(s) have completed. + + + + + Remember a non-null Content-ID header for change set request operations. + If a non-null content ID header is specified for a change set request operation, record it in the URL resolver. + + The Content-ID header value read from the message. + + Note that the content ID of this operation will only + become visible once this operation has been written + and OperationCompleted has been called on the URL resolver. + + + + + Verifies that the writer is in correct state for the Flush operation. + + true if the call is to be synchronous; false otherwise. + + + + Verifies that a call is allowed to the writer. + + true if the call is to be synchronous; false otherwise. + + + + Catch any exception thrown by the action passed in; in the exception case move the writer into + state ExceptionThrown and then rethrow the exception. + + The action to execute. + + + + Sets a new writer state; verifies that the transition from the current state into new state is valid. + + The writer state to transition into. + + + + Verify that the transition from the current state into new state is valid . + + The new writer state to transition into. + + + + Validates that the batch writer is ready to process a new write request. + + + + + Write any pending headers for the current operation message (if any). + + + A flag to control whether after writing the pending data we report writing the message to be completed or not. + + + + + Writes the start boundary for an operation. This is either the batch or the changeset boundary. + + + + + Sets the 'Error' state and then throws an ODataException with the specified error message. + + The error message for the exception. + + + + Increases the size of the current batch message; throws if the allowed limit is exceeded. + + + + + Increases the size of the current change set; throws if the allowed limit is exceeded. + + + + + Resets the size of the current change set to 0. + + + + The request message for the operation that is currently written if it's a request; or null if no operation is written right now or it's a response operation. + + + The response message for the operation that is currently written if it's a response; + or null if no operation is written right now or it's a request operation. + + + The message for the operation that is currently written; or null if no operation is written right now. + + + + An enumeration representing the current state of the writer. + + + + The writer is in initial state; nothing has been written yet. + + + WriteStartBatch has been called. + + + WriteStartChangeSet has been called. + + + CreateOperationRequestMessage/CreateOperationResponseMessage has been called. + + + + ODataMessage.GetStreamAsync() has been called on an operation which caused a to be created; + the batch writer is unusable while an operation is being written. + + + + The stream for writing the content of an operation has been disposed. The batch writer can now be used again. + + + WriteEndChangeSet has been called. + + + WriteEndBatch has been called. + + + The writer is in error state; nothing can be written anymore except the error payload. + + + + Class representing a media type definition. + + + + Parameters specified on the media type. + + + Sub-type specification (for example, 'plain'). + + + Type specification (for example, 'text'). + + + + Initializes a new read-only instance. + + Type specification (for example, 'text'). + Sub-type specification (for example, 'plain'). + + + + Initializes a new read-only instance. + + Type specification (for example, 'text'). + Sub-type specification (for example, 'plain'). + The parameters specified on the media type. + + + + Initializes a new read-only instance. + + Type specification (for example, 'text'). + Sub-type specification (for example, 'plain'). + Parameters specified on the media type. + + + + Selects the encoding appropriate for this media type specification + (possibly null). + + + The encoding explicitly defined on the media type specification, or + the default encoding for well-known media types. + + + As per http://tools.ietf.org/html/rfc2616#section-3.7, the type, + subtype and parameter name attributes are case-insensitive. + + + + + Converts the current to a string representation suitable for use in a content-type header. + + The string representation of media type. + + + + Converts the current to a string representation suitable for use in a content-type header. + + The encoding to use when converting the media type into text. + The string representation of the current media type. + + + Gets the named encoding if specified. + Name (possibly null or empty). + + The named encoding if specified; the encoding for HTTP missing + charset specification otherwise. + + + See http://tools.ietf.org/html/rfc2616#section-3.4.1 for details. + + + + Encoding to fall back to an appropriate encoding is not available. + + + Encoding implied by an unspecified encoding value. + See http://tools.ietf.org/html/rfc2616#section-3.4.1 for details. + + + Returns the full media type in standard type/subtype form, without parameters. + + + Returns the subtype part of the media type. + + + Returns the type part of the media type. + + + media type parameters + + + + ODataCollectionWriter for the Verbose JSON format. + + + + + The output context to write to. + + + + + The Verbose JSON collection serializer to use. + + + + + Constructor for creating a collection writer to use when writing operation result payloads. + + The output context to write to. + The item type of the collection being written or null if no metadata is available. + + + + Constructor for creating a collection writer to use when writing parameter payloads. + + The output context to write to. + The type reference of the expected item type or null if no expected item type exists. + If not null, the writer will notify the implementer of the interface of relevant state changes in the writer. + + + + Check if the object has been disposed; called from all public API methods. Throws an ObjectDisposedException if the object + has already been disposed. + + + + + Flush the output. + + + + + Flush the output. + + Task representing the pending flush operation. + + + + Start writing an OData payload. + + + + + Finish writing an OData payload. + + + + + Start writing a collection. + + The representing the collection. + + + + Finish writing a collection. + + + + + Writes a collection item (either primitive or complex) + + The collection item to write. + The expected type of the collection item or null if no expected item type exists. + + + + ODataCollectionWriter for the ATOM format. + + + + The output context to write to. + + + The collection serializer to use for writing. + + + + Constructor. + + The output context to write to. + The item type of the collection being written or null if no metadata is available. + + + + Check if the object has been disposed; called from all public API methods. Throws an ObjectDisposedException if the object + has already been disposed. + + + + + Flush the output. + + + + + Flush the output. + + Task representing the pending flush operation. + + + + Start writing an OData payload. + + + + + Finish writing an OData payload. + + + + + Start writing a collection. + + The representing the collection. + + + + Finish writing a collection. + + + + + Writes a collection item (either primitive or complex) + + The collection item to write. + The expected type of the collection item or null if no expected item type exists. + + + + Class with utility methods to help with debug only code. + + + + + Checks that the method which called this helper method + was not called by any code outside of the Microsoft.Data.OData.dll. + + + The method is only called when in DEBUG builds, since it's quite expensive and we expect + all our external callers to run DEBUG builds at least sometimes. + The method is also called when compiling for FxCop analysis, as we run our official FxCop + pass on RET build and we need to check that all internal methods call this one to check for accessibility + even though only in debug builds. + + + + + Checks that the method which called this helper method + was not called by any code outside of the Microsoft.Data.OData.dll. + + Set to true if this check is called from a public method which should also be checked for non-external callers. + In that case, make sure that the calling method will not get inlined! + + The method is only called when in DEBUG builds, since it's quite expensive and we expect + all our external callers to run DEBUG builds at least sometimes. + The method is also called when compiling for FxCop analysis, as we run our official FxCop + pass on RET build and we need to check that all internal methods call this one to check for accessibility + even though only in debug builds. + + + + + Enumeration representing the different kinds of payloads ODatLib can write. + + + + Payload kind for a feed. + + + Payload kind for an entry. + + + Payload kind for a property. + + + Payload kind for an entity reference link. + + + Payload kind for entity reference links. + + + Payload kind for a raw value. + + + Payload kind for a binary value. + + + Payload kind for a collection. + + + Payload kind for a service document. + + + Payload kind for a metadata document. + + + Payload kind for an error. + + + Payload kind for a batch. + + + Payload kind for parameters for a service action. + + + Unknown format + + + + Class representing a resource collection in a workspace of a data service. + + + + Gets or sets the URI representing the Unified Resource Locator (URL) to the collection. + The URI representing the Unified Resource Locator (URL) to the collection. + + + Gets or sets the name of the collection; this is the entity set name in JSON and the HREF in Atom. + The name of the collection. + + This property is required when reading and writing the JSON light format, but has no meaning in the Verbose JSON format. + If present in ATOM, it will be used to populate the title element. + + + + + Class representing the a workspace of a data service. + + + + Gets or sets the set of collections in the workspace. + The set of collections in the workspace. + + + + Constant values used in the EDM. + + + + namespace for edm primitive types. + + + edm binary primitive type name + + + edm boolean primitive type name + + + edm byte primitive type name + + + edm datetime primitive type name + + + Represents a Time instance as an interval measured in milliseconds from an instance of DateTime. + + + edm decimal primitive type name + + + edm double primitive type name + + + edm guid primitive type name + + + edm single primitive type name + + + edm sbyte primitive type name + + + edm int16 primitive type name + + + edm int32 primitive type name + + + edm int64 primitive type name + + + edm string primitive type name + + + Represents an interval measured in milliseconds. + + + edm stream primitive type name + + + edm geography primitive type name + + + Represents a geography Point type. + + + Represents a geography LineString type. + + + Represents a geography Polygon type. + + + Represents a geography GeomCollection type. + + + Represents a geography MultiPolygon type. + + + Represents a geography MultiLineString type. + + + Represents a geography MultiPoint type. + + + Represents an arbitrary Geometry type. + + + Represents a geometry Point type. + + + Represents a geometry LineString type. + + + Represents a geometry Polygon type. + + + Represents a geometry GeomCollection type. + + + Represents a geometry MultiPolygon type. + + + Represents a geometry MultiLineString type. + + + Represents a geometry MultiPoint type. + + + The namespace for Edmx V1. + + + The namespace for Edmx V2. + + + The namespace for Edmx V3. + + + The element name of the top-level <Edmx> metadata envelope. + + + The attribute name used on entity types to indicate that they are MLEs. + + + The attribute name used on service operations and primitive properties to indicate their MIME type. + + + The attribute name used on service operations to indicate their HTTP method. + + + The attribute name used on a service operation to indicate whether all instances of the binding parameter + type can be bound to that service operation. + + + The attribute name used on an entity container to mark it as the default entity container. + + + 'true' literal + + + 'false' literal + + + + Use this class to compare objects by reference in collections such as + dictionary or hashsets. + + Type of objects to compare. + + Typically accessed statically as eg + ReferenceEqualityComparer<Expression>.Instance. + + + + + Single instance per 'T' for comparison. + + + + + Initializes a new ReferenceEqualityComparer instance. + + + + + Determines whether two objects are the same. + + First object to compare. + Second object to compare. + true if both are the same; false otherwise. + + + + Serves as hashing function for collections. + + Object to hash. + + Hash code for the object; shouldn't change through the lifetime + of . + + + + + Returns a singleton instance for this comparer type. + + + + + Utility methods for working with CLR types. + + + + Checks whether the specified type is a generic nullable type. + Type to check. + true if is nullable; false otherwise. + + + Gets a non-nullable version of the specified type. + Type to get non-nullable version for. + + if type is a reference type or a + non-nullable type; otherwise, the underlying value type. + + + + + Checks whether the specified can be assigned null. If it is a non-nullable + value type it creates the corresonding nullable type and returns it. + + The type to check. + The if it allows null or the corresponding nullable type. + + + Checks whether the specified can be assigned null. + Type to check. + true if type is a reference type or a Nullable type; false otherwise. + + + + Determines if two CLR types are equivalent. + + First type to compare. + Second type to compare. + true if the types are equivalent (they both represent the same type), or false otherwise. + This method abstracts away the necessity to call Type.IsEquivalentTo method in .NET 4 and higher but + use simple reference equality on platforms which don't have that method (like Silverlight). + + + + Type for Atom Syndication Format (Atom) feed annotationsAsArray. + + + + Gets or sets a collection of authors of a feed. + A collection of authors of a feed. + + + Gets or sets the categories of a feed. + The categories of a feed. + + + Gets or sets a collection of contributors of a feed. + A collection of contributors of a feed. + + + Gets or sets the generator of a feed. + The generator of a feed. + + + Gets or sets the URI of the icon for a feed. + The URI of the icon for a feed. + + + Gets or sets the collection of all Atom link information except for the next page and self links. + The collection of all Atom link information except for the next page and self links. + + + Gets or sets the URI for the feed's logo. + The URI for the feed’s logo. + + + Gets or sets the rights text of a feed. + The rights text of a feed. + + + Gets or sets the self link of the feed. This link should point to the source of the feed. + The self link of the feed. + + + Gets the next page link of the feed. This link should point to the next page of results. + + + Gets or sets the identifier for the feed if used as metadata of an Atom:source element. + The identifier for the feed if used as metadata of an Atom:source element. + + + Gets or sets the subtitle of a feed. + The subtitle of a feed. + + + Gets or sets the title of the feed. + The title of the feed. + + + Gets or sets the date and time of last update to the source. + The date and time of last update to the source. + + + + Type for Atom Syndication Format (Atom) entry annotationsAsArray. + + + + + The date/time when the entry was published. + + + + + Date/Time of last update to the source in string format. + + + + Gets or sets a collection of authors of an entry. + A collection of authors of an entry. + + + Gets or sets the ATOM metadata for the category element which stores the type name of the entry. + + + Gets or sets the categories of an entry. + The categories of an entry. + + + Gets or sets a collection of contributors of an entry. + A collection of contributors of an entry. + + + Gets or sets an Atom link metadata for the self link. + An Atom link metadata for the self link. + + + Gets or sets an Atom link metadata for the edit link. + An Atom link metadata for the edit link. + + + Gets or sets the collection of all Atom link information except for the self/edit links and the navigation property links. + The collection of all Atom link information except for the self/edit links and the navigation property links. + + + Gets or sets the date and time when the entry was published. + The date and time when the entry was published. + + + Gets or sets the rights text of an entry. + The rights text of an entry. + + + Gets or sets the source of an entry and if the entry was copied from a different stream the property contains the feed metadata of the original feed. + The source of an entry. + + + Gets or sets the summary of the entry. + The summary of the entry. + + + Gets or sets the title of the entry. + The title of the entry. + + + Gets or sets the date and time of last update to the source. + The date and time of last update to the source. + + + + The date/time when the entry was published. + + + This property is only used in WCF DS client mode (and replaces the 'Published' property then). + + + + + Date/Time of last update to the source in string format. + + + This property is only used in WCF DS client mode (and replaces the 'Updated' property then). + + + + + Atom metadata description for a link. + + + + The IRI value coming from EPM. + We use AtomLinkMetadata class to hold navigation links, association links etc. + They convert Href property to string based on baseURI and whether Href is absolute or not. + Also we do not want to rely on validation done by Uri class, so we are holding EPM values + mapped to link/@href on a separate field. + + + + Initializes a new instance of the class. + + + + Copy constructor. + + The instance to copy the values from; can be null. + + + Gets or sets the URI of the link. + The URI of the link. + + + Gets or sets the link's relation type. + The link’s relation type. + + + Gets or sets the media type of the data returned by the link. + The media type of the data returned by the link. + + + Gets or sets the language tag (for example, en-US) of the resource pointed to by the link. + The language tag of the resource pointed to by the link. + + + Gets or sets a human-readable description of the link. + A human-readable description of the link. + + + Gets or sets a hint at the length of the content returned from the link. + A hint at the length of the content returned from the link. + + + + Atom metadata description for a category. + + + + Initializes a new instance of the class. + + + + Copy constructor. + + The instance to copy the values from; can be null. + + + Gets or sets the string value identifying the category. + The string value identifying the category. + + + Gets or sets the URI that indicates the scheme of the category. + The URI that indicates the scheme of the category. + + + Gets or sets a human-readable label for display in user interfaces. + A human-readable label. + + + + Atom metadata description for a person. + + + + The name of the person. + + + The email of the person. + + + The URI value comming from EPM. + In WCF DS when mapping a property through EPM to person/uri element we convert the value of the property to string + and then set the syndication APIs Uri property which is also of type string. Syndication API doesn't do any validation on the value + and just writes it out. So it's risky to try to convert the string to a Uri instance due to the unknown validation the Uri class + might be doing. Instead we use internal property to set from EPM. + + + Converts a string to an instance. + The instance created for name. + The name used in the person metadata. + + + + Implicit conversion from string to . + + The to convert to an . + The result. + + + Gets or sets the name of the person (required). + The name of the person (required). + + + Gets or sets an IRI associated with the person. + An IRI associated with the person. + + + Gets or sets an email address associated with the person. + An email address associated with the person. + + + The URI value comming from EPM. + In WCF DS when mapping a property through EPM to person/uri element we convert the value of the property to string + and then set the syndication APIs Uri property which is also of type string. Syndication API doesn't do any validation on the value + and just writes it out. So it's risky to try to convert the string to a Uri instance due to the unknown validation the Uri class + might be doing. Instead we use internal property to set from EPM. + + + + Atom metadata description of a content generator. + + + + Gets or sets the human readable name of the generator of the content. + The human readable name of the generator of the content. + + + Gets or sets the (optional) URI describing the generator of the content. + The (optional) URI describing the generator of the content. + + + Gets or sets the (optional) version of the generator. + The (optional) version of the generator. + + + + Helper methods related to the ATOM Format + + + + The length of the media type for ATOM payloads (application/atom+xml). + + + The length of the media type for ATOM payloads when terminated by a ';' (application/atom+xml;). + + + The length of the media type for links referencing a single entry (application/atom+xml;type=entry). + + + The length of the media type for links referencing a collection of entries (application/atom+xml;type=feed). + + + Parameter string for the media type for links referencing a single entry. + + + Parameter string for the media type for links referencing a collection of entries. + + + + Creates the value for the navigation property's link relation attribute. + + The link representing the navigation property for which the relation value is created. + The relation attribute value for the navigation property's link relation. + + + + Creates the value for the navigation property's type attribute. + + The link representing the navigation property for which the type value is created. + The type attribute value for the navigation property. + + + + Creates the value for the navigation property's association link relation attribute. + + The link representing the navigation property's association for which the relation value is created. + The relation attribute value for the navigation property's association link relation. + + + + Creates the value for the stream property's link relation attribute. + + The stream property to create the relation for. + 'true' if the relation is computed for an edit link; otherwise 'false'. + The relation attribute value for the stream property's link relation. + + + + Unescape the attribute value for ATOM link element. + + ATOM link relation attribute value. + + The unescaped relation attribute string if it's a valid URI. + null if relation attribute is not a valid URI. + + + + + Return name following the specified in the . + + ATOM link relation attribute value, unescaped parsed URI string. + Value which the rel attribute should start with. + + The name if the starts with the given . + If the value does not start with the a null value is returned. + + + + + Determines whether the type of a navigation link has one of the expected standard values. + + The navigation link type to check. + true if the navigation link type has a 'type' parameter with the value 'entry'; otherwise false. + true if the navigation link type has a 'type' parameter with the value 'feed'; otherwise false. + true if the navigation link type is the expected application/atom+xml; otherwise false. + + + + Helper methods used by the OData writer to write ATOM metadata. + + + + + Creates a new instance by merging the given + (if any) with the specified , + and (optional) . + + The metadata to merge with the , and (optional) . + The relation to use in the merged metadata. + The href to use in the merged metadata. + The (optional) title to use in the merged metadata. + The (optional) media type to use in the merged metadata. + A new instance created by merging all the arguments. + + If the already holds values for , + , , or this method validates that they + are the same as the ones specified in the method arguments. + + + + + Creates a new instance by merging the given + (if any) with the specified and . + + The metadata to merge with the and . + The term to use in the merged metadata. + The scheme to use in the merged metadata. + A new instance created by merging all the arguments. + + If the already holds values for or + this method validates that they are the same as the ones specified in the method arguments. + + + + + Helper to convert values to strings compliant to the ATOM format + + + + Used for settings the updated element properly. + + + + Converts a boolean to the corresponding ATOM string representation. + + The boolean value to convert. + The ATOM strings representing boolean literals. + + + + Converts a byte to the corresponding ATOM string representation. + + The byte value to convert. + The ATOM strings representing the byte value. + + + + Converts a decimal to the corresponding ATOM string representation. + + The decimal value to convert. + The ATOM strings representing the decimal value. + + + + Converts the given date/time value to the string appropriate for Atom format + + The date/time value to convert. + The string version of the date/time value in Atom format. + + + + Converts the given DateTimeOffset value to string appropriate for Atom format. + + Given DateTimeOffset value. + Atom format string representation of . + + + + Converts the given DateTimeOffset value to string appropriate for Atom format. + ToAtomString is used to write values in atom specific elements like updated, etc. + + Given DateTimeOffset value. + Atom format string representation of . + + + + Converts the given timespan value to the string appropriate for Atom format + + The timespan value to convert. + The string version of the timespan value in Atom format. + + + + Converts the given double value to the string appropriate for Atom format + + The double value to convert. + The string version of the double value in Atom format. + + + + Converts the given Int16 value to the string appropriate for Atom format + + The Int16 value to convert. + The string version of the Int16 value in Atom format. + + + + Converts the given Int32 value to the string appropriate for Atom format. + + The Int32 value to convert. + The string version of the Int32 in Atom format. + + + + Converts the given Int64 value to the string appropriate for Atom format. + + The Int64 value to convert. + The string version of the Int64 in Atom format. + + + + Converts the given SByte value to the string appropriate for Atom format. + + The SByte value to convert. + The string version of the SByte in Atom format. + + + + Converts the given byte array value to the string appropriate for Atom format. + + The byte array to convert. + The string version of the byte array in Atom format. + + + + Converts the given Single value to the string appropriate for Atom format. + + The Single value to convert. + The string version of the Single in Atom format. + + + + Converts the given Guid value to the string appropriate for Atom format. + + The Guid value to convert. + The string version of the Guid in Atom format. + + + + Atom specific extension methods. + + + + Determines an extension method to get the for an annotatable entry. + An instance or null if no annotation of that type exists. + The entry instance to get the annotation from. + + + Determines an extension method to get the for an annotatable feed. + An instance or null if no annotation of that type exists. + The feed instance to get the annotation from. + + + Determines an extension method to get the for an annotatable navigation link. + An instance or null if no annotation of that type exists. + The navigation link instance to get the annotation from. + + + Determines an extension method to get the for an annotatable workspace. + An instance or null if no annotation of that type exists. + The workspace to get the annotation from. + + + Determines an extension method to get the for an annotatable (resource) collection. + An instance or null if no annotation of that type exists. + The (resource) collection to get the annotation from. + + + Determines an extension method to get the for an annotatable association link. + An instance or null if no annotation of that type exists. + The association link to get the annotation from. + + + + Write-only stream which buffers all synchronous write operations until FlushAsync is called. + + + + + The stream being wrapped. + + + + + Queue of buffers to write. + + + + + The last buffer in the bufferQueue. This is the buffer we're writing into. + + + + + Constructor + + The underlying async stream to wrap. Note that only asynchronous write operation will be invoked on this stream. + + + + Flush the stream to the underlying storage. + + + + + Reads data from the stream. This operation is not supported by this stream. + + The buffer to read the data to. + The offset in the buffer to write to. + The number of bytes to read. + The number of bytes actually read. + + + + Seeks the stream. This operation is not supported by this stream. + + The offset to seek to. + The origin of the seek operation. + The new position in the stream. + + + + Sets the length of the stream. This operation is not supported by this stream. + + The length in bytes to set. + + + + Writes to the stream. + + The buffer to get data from. + The offset in the buffer to start from. + The number of bytes to write. + + + + Clears any internal buffers without writing them to the underlying stream. + + + + + Synchronous flush operation. This will flush all buffered bytes to the underlying stream through synchronous writes. + + + + + Asynchronous flush operation. This will flush all buffered bytes to the underlying stream through asynchronous writes. + + The task representing the asynchronous flush operation. + + + + Asynchronous flush operation. This will flush all buffered bytes to the underlying stream through asynchronous writes. + + The task representing the asynchronous flush operation. + + + + Disposes the object. + + True if called from Dispose; false if called from the finalizer. + + + + Queues a new buffer to the queue of buffers + + + + + Prepares all buffers for flushing and returns the queue of buffers to flush. + + The queue of buffer to flush. + + + + Returns enumeration of tasks to run to flush all pending buffers to the underlying stream. + + The queue of buffers that need to be flushed. + Enumeration of tasks to run to flush all buffers. + This method relies on lazy eval of the enumerator, never enumerate through it synchronously. + + + + Determines if the stream can read - this one cannot + + + + + Determines if the stream can seek - this one cannot + + + + + Determines if the stream can write - this one can + + + + + Returns the length of the stream, which this implementation doesn't support. + + + + + Gets or sets the position in the stream, this stream doesn't support seeking, so position is also unsupported. + + + + + Class to wrap a byte buffer used to store portion of the buffered data. + + + + + The size of a buffer to allocate (80 KB is the limit for large object heap, so use 79 to be sure to avoid LOB) + + + + + The byte buffer used to store the data. + + + + + Number of bytes being stored. + + + + + Constructor - creates a new buffer + + + + + Writes data into the buffer. + + The buffer containing the data to write. + The index to start at. + Number of bytes to write. + How many bytes were written. + + + + Writes the buffer to the specified stream. + + The stream to write the data into. + + + + Creates a task which writes the buffer to the specified stream. + + The stream to write the data into. + The task which represent the asynchronous write operation. + + + + Constant values related to the ATOM format. + + + + 'http://www.w3.org/2000/xmlns/' - namespace for namespace declarations. + + + Attribute use to add xml: namespaces specific attributes. + + + Schema Namespace prefix For xmlns. + + + Schema Namespace prefix For xml. + + + XML attribute value to indicate the base URI for a document or element. + + + Name of the xml:lang attribute. + + + Name of the xml:space attribute. + + + 'preserve' value for the xml:space attribute. + + + XML namespace for data service annotations. + + + XML namespace prefix for data service annotations. + + + XML namespace for data services. + + + Prefix for data services namespace. + + + OData attribute which indicates the etag value for the declaring entry element. + + + OData attribute which indicates the null value for the element. + + + OData element name for the 'count' element + + + OData scheme namespace for data services category scheme in atom:category elements. + + + OData stream property 'mediaresource' Uri segment name used in named stream link relations. + + + OData stream property 'edit-media' Uri segment name used in named stream link relations. + + + OData stream property prefix for named stream 'mediaresource' related link relations. + + + OData stream property prefix for named stream 'edit-media' related link relations. + + + OData navigation properties 'related' Uri segment name used in navigation link relations. + + + OData navigation properties prefix for navigation link relations. + + + OData navigation properties 'relatedlinks' Uri segment name used in association link relations. + + + OData association link prefix for relation attribute. + + + 'Inline' - wrapping element for inlined entry/feed content. + + + Name of the error element for Xml error responses. + + + Name of the error code element for Xml error responses. + + + Name of the error message element for Xml error responses. + + + Name of the inner error message element for Xml error responses. + + + Name of the message element in inner errors for Xml error responses. + + + Name of the type element in inner errors for Xml error responses. + + + Name of the stack trace element in inner errors for Xml error responses. + + + Name of the inner error element nested in inner errors for Xml error responses. + + + Element name for the items in a collection. + + + Element name for m:action. + + + Element name for m:function. + + + Attribute name for m:action|m:function/@metadata. + + + Attribute name for m:action|m:function/@title. + + + Attribute name for m:action|m:function/@target. + + + XML element name for the wrapper 'links' element around a sequence of Uris in response to a $links request. + + + XML element name for a Uri response to a $links request. + + + XML element name for a next link in a response to a $links request. + + + XML element name for an annotation in an ATOM payload. + + + Attribute name for m:annotation/@target. + + + Attribute name for m:annotation/@term. + + + Attribute name for m:annotation/@string. + + + Attribute name for m:annotation/@bool. + + + Attribute name for m:annotation/@decimal. + + + Attribute name for m:annotation/@int. + + + Attribute name for m:annotation/@float. + + + Schema namespace for Atom. + + + Prefix for the Atom namespace - empty since it is the default namespace. + + + Prefix for the Atom namespace used in cases where we need a non-empty prefix. + + + XML element name to mark entry element in Atom. + + + XML element name to mark feed element in Atom. + + + XML element name to mark content element in Atom. + + + XML element name to mark type attribute in Atom. + + + Element containing property values when 'content' is used for media link entries + + + XML element name to mark id element in Atom. + + + XML element name to mark title element in Atom. + + + XML element name to mark the subtitle element in Atom. + + + XML element name to mark the summary element in Atom. + + + XML element name to mark the 'published' element in Atom. + + + XML element name to mark the 'source' element in Atom. + + + XML element name to mark the 'rights' element in Atom. + + + XML element name to mark the 'logo' element in Atom. + + + XML element name to mark the 'author' element in Atom. + + + XML element name to mark the 'author name' element in Atom. + + + XML element name to mark the 'contributor' element in Atom. + + + XML element name to mark the 'generator' element in Atom. + + + XML attribute name of the 'uri' attribute of a 'generator' element in Atom. + + + XML attribute name of the 'version' attribute of a 'generator' element in Atom. + + + XML element name to mark the 'icon' element in Atom. + + + XML element name to mark the 'name' element in an Atom person construct. + + + XML element name to mark the 'uri' element in an Atom person construct. + + + XML element name to mark the 'email' element in an Atom person construct. + + + 'updated' - XML element name for ATOM 'updated' element for entries. + + + 'category' - XML element name for ATOM 'category' element for entries. + + + 'term' - XML attribute name for ATOM 'term' attribute for categories. + + + 'scheme' - XML attribute name for ATOM 'scheme' attribute for categories. + + + 'scheme' - XML attribute name for ATOM 'label' attribute for categories. + + + Atom link relation attribute value for edit links. + + + Atom link relation attribute value for self links. + + + XML element name to mark link element in Atom. + + + XML attribute name of the link relation attribute in Atom. + + + XML attribute name of the type attribute of a link in Atom. + + + XML attribute name of the href attribute of a link in Atom. + + + XML attribute name of the hreflang attribute of a link in Atom. + + + XML attribute name of the title attribute of a link in Atom. + + + XML attribute name of the length attribute of a link in Atom. + + + XML element name to mark href attribute element in Atom. + + + Atom source attribute name for the content of media link entries. + + + Atom link relation attribute value for edit-media links. + + + XML attribute value of the link relation attribute for next page links in Atom. + + + XML attribute value of the link relation attribute for delta links in Atom. + + + Link relation: alternate - refers to a substitute for this context. + + + Link relation: related - identifies a related resource. + + + Link relation: enclosure - identifies a related resource that is potentially large and might require special handling. + + + Link relation: via - identifies a resource that is the source of the information in the link's context. + + + Link relation: describedby - refers to a resource providing information about the link's context. + + + Link relation: service - indicates a URI that can be used to retrieve a service document. + + + Atom metadata text construct kind: plain text + + + Atom metadata text construct kind: html + + + Atom metadata text construct kind: xhtml + + + Default title for service document workspaces. + + + 'true' literal + + + 'false' literal + + + IANA link relations namespace. + + + The Atom Publishing Protocol (APP) namespace: 'http://www.w3.org/2007/app'. + + + The name of the top-level 'service' element when writing service documents in Xml format. + + + The name of the 'workspace' element when writing service documents in Xml format. + + + The name of the 'collection' element when writing service documents in Xml format. + + + The name of the 'categories' element encountered while reading a service document in XML format. + + + The name of the 'accept' element encountered while reading a service document in XML format. + + + The name of the 'fixed' attribute of an inline categories element in APP. + + + The value 'yes' of the 'fixed' attribute of an inline categories element in APP. + + + The value 'no' of the 'fixed' attribute of an inline categories element in APP. + + + XML namespace for GeoRss format + + + XML namespace prefix for GeoRss format + + + XML namespace for GML format + + + XML namespace prefix for GML format + + + + Helper methods used by the OData writer for the JSON format. + + + + + Write an error message. + + The JSON writer to write the error. + Action to write the instance annotations. + The error instance to write. + A flag indicating whether error details should be written (in debug mode only) or not. + The maximumum number of nested inner errors to allow. + true if we're writing JSON lite, false if we're writing verbose JSON. + + + + Writes the __metadata property with the specified type name. + + The JSON writer to write to. + The type name to write. + + + + Will write the function's name and start the JSONP scope if we are writing a response and the + JSONP function name is not null or empty. + + JsonWriter to write to. + Writer settings. + + + + If we are writing a response and the given Json Padding function name is not null or empty + this function will close the JSONP scope. + + JsonWriter to write to. + Writer settings. + + + + Returns the string representation of the URI; Converts the URI into an absolute URI if the parameter is set to true. + + The output context for which to convert the URI. + The uri to process. + true, if the URI needs to be translated into an absolute URI; false otherwise. + If the parameter is set to true, then a string representation of an absolute URI which is either the + specified if it was absolute, or it's a combination of the BaseUri and the relative ; + otherwise a string representation of the specified . + + This method will fail if is set to true and the specified is relative and there's no base URI available. + + + + Write an error message. + + JSON writer. + The code of the error. + The message of the error. + The language of the message. + Inner error details that will be included in debug mode (if present). + Instance annotations for this error. + Action to write the instance annotations. + The maximumum number of nested inner errors to allow. + true if we're writing JSON lite, false if we're writing verbose JSON. + + + + Write an inner error property and message. + + The JSON writer to write the error to. + Inner error details. + The property name for the inner error property. + The number of times this method has been called recursively. + The maximumum number of nested inner errors to allow. + + + + Class with utility methods to work with HTTP concepts + + + + Reads a Content-Type header and extracts the media type's name (type/subtype) and parameters. + The Content-Type header. + The media type in standard type/subtype form, without parameters. + The (optional) charset parameter of the media type. + The parameters of the media type not including the 'charset' parameter. + + + Builds a Content-Type header which includes media type and encoding information. + Media type to be used. + Encoding to be used in response, possibly null. + The value for the Content-Type header. + + + Returns all media types from the specified (non-blank) . + Non-blank text, as it appears on an HTTP Accepts header. + An enumerable object with key/value pairs of media type descriptions with their (optional) charset parameter values. + + + + Does an ordinal ignore case comparision of the given media type names. + + First media type name. + Second media type name. + returns true if the media type names are the same. + + + + Does an ordinal ignore case comparision of the given MIME type parameter name. + + First parameter name. + Second parameter name. + returns true if the parameter names are the same. + + + Gets the best encoding available for the specified charset request. + + The Accept-Charset header value (eg: "iso-8859-5, unicode-1-1;q=0.8"). + + The media type used to compute the default encoding for the payload. + The encoding to use for UTF-8 charsets; we use the one without the BOM. + The encoding to use if no encoding could be computed from the or . + An Encoding object appropriate to the specifed charset request. + + + + Reads the numeric part of a quality value substring, normalizing it to 0-1000 + rather than the standard 0.000-1.000 ranges. + + Text to read qvalue from. + Index into text where the qvalue starts. + After the method executes, the normalized qvalue. + + For more information, see RFC 2616.3.8. + + + + + Validates that the HTTP method string matches one of the supported HTTP methods. + + The HTTP method string to validate. + + + + Determines whether the given HTTP method is one that is accepted for queries. GET is accepted for queries. + + The HTTP method to check. + True if the given httpMethod is GET. + + + + Gets the string status message for a given Http response status code. + + The status code to get the status message for. + The string status message for the . + + + + Returns the encoding object for the specified charset name. + + The of the charset to get the encoding for. + The encoding object or null if such encoding is not supported. + + + + Reads a token or quoted-string value from the header. + + Name of the header. + Header text. + Parsing index in . + Returns true if the value is a quoted-string, false if the value is a token. + Func to create the appropriate exception to throw from the given error message. + The token or quoted-string value that was read from the header. + + + + Skips whitespace in the specified text by advancing an index to + the next non-whitespace character. + + Text to scan. + Index to begin scanning from. + true if the end of the string was reached, false otherwise. + + + + Enumerates each charset part in the specified Accept-Charset header. + + Non-null and non-empty header value for Accept-Charset. + + A (non-sorted) enumeration of CharsetPart elements, which include + a charset name and a quality (preference) value, normalized to 0-1000. + + + + Reads a media type definition as used in a Content-Type header. + Text to read. + A list of key/value pairs representing the s and their (optional) 'charset' parameters + parsed from the specified + + + Read a parameter for a media type/range. + Text to read from. + Pointer in text. + Array with parameters to grow as necessary. + The (optional) charset parameter value. + + + Reads the type and subtype specifications for a media type name. + Text in which specification exists. + Pointer into text. + Type of media found. + Subtype of media found. + + + + Determines whether the specified character is a valid HTTP header token character. + + Character to verify. + true if c is a valid HTTP header token character; false otherwise. + + + + Determines whether the specified character is valid in the quoted header values. + + Character to verify. + true if c is a valid in a quoted HTTP header value; false otherwise. + + + + Determines whether the specified character is a valid HTTP separator. + + Character to verify. + true if c is a separator; false otherwise. + + See RFC 2616 2.2 for further information. + + + + + Reads a token on the specified text by advancing an index on it. + + Text to read token from. + Index for the position being scanned on text. + true if the end of the text was reached; false otherwise. + + + + Converts the specified character from the ASCII range to a digit. + + Character to convert. + + The Int32 value for c, or -1 if it is an element separator. + + + + + Verfies whether the specified character is a valid separator in + an HTTP header list of element. + + Character to verify. + true if c is a valid character for separating elements; false otherwise. + + + + "Reads" a literal from the specified string by verifying that + the exact text can be found at the specified position. + + Text within which a literal should be checked. + Index in text where the literal should be found. + Literal to check at the specified position. + true if the end of string is found; false otherwise. + + + + Structure to represent a charset name with a quality value. + + + + Name of the charset. + + + Charset quality (desirability), normalized to 0-1000. + + + + Initializes a new CharsetPart with the specified values. + + Name of charset. + Charset quality (desirability), normalized to 0-1000. + + + + Writer class used to write all OData payloads (entries, feeds, metadata documents, service documents, etc.). + + + + The message for which the message writer was created. + + + A flag indicating whether we are writing a request or a response message. + + + The message writer settings to use when writing the message payload. + + + The model. Non-null if we do have metadata available. + + + The optional URL resolver to perform custom URL resolution for URLs written to the payload. + + + Flag to ensure that only a single write method is called on the message writer. + + + True if Dispose() has been called on this message writer, False otherwise. + + + The output context we're using to write the payload. + This is null until the first write operation is called. + + + The payload kind of the payload to be written with this writer. + This is either set via the SetHeadersForPayload method or implicitly when one of the write (or writer creation) methods is called. + + + The of the payload to be written with this writer. + This is either set via the SetHeadersForPayload method or implicitly when one of the write (or writer creation) methods is called. + + + The of the payload to be written with this writer. + This is either set via the SetHeadersForPayload method or implicitly when one of the write (or writer creation) methods is called. + + + The batch boundary string if the payload to be written is a batch request or response. + This is either set via the SetHeadersForPayload method or implicitly when the CreateBatchWriter method is called. + + + Flag to prevent writing more than one error to the payload. + + + The media type resolver to use when interpreting the content type. + + + The of the payload to be written with this writer. + This is either set via the SetHeadersForPayload method or implicitly when one of the write (or writer creation) methods is called. + + + Creates a new for the given request message. + The request message for which to create the writer. + + + Creates a new for the given request message and message writer settings. + The request message for which to create the writer. + The message writer settings to use for writing the message payload. + + + + Creates a new ODataMessageWriter for the given request message and message writer settings. + + The request message for which to create the writer. + The message writer settings to use for writing the message payload. + The model to use. + + + Creates a new for the given response message. + The response message for which to create the writer. + + + Creates a new for the given response message and message writer settings. + The response message for which to create the writer. + The message writer settings to use for writing the message payload. + + + + Creates a new ODataMessageWriter for the given response message and message writer settings. + + The response message for which to create the writer. + The message writer settings to use for writing the message payload. + The model to use. + + + Creates an to write a feed. + The created writer. + + + + Creates an to write a feed. + + The created writer. + The entity set we are going to write entities for. + + + + Creates an to write a feed. + + The created writer. + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + + + Asynchronously creates an to write a feed. + A running task for the created writer. + + + + Asynchronously creates an to write a feed. + + The entity set we are going to write entities for. + A running task for the created writer. + + + + Asynchronously creates an to write a feed. + + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + A running task for the created writer. + + + Creates an to write an entry. + The created writer. + + + + Creates an to write an entry. + + The entity set we are going to write entities for. + The created writer. + + + + Creates an to write an entry. + + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + The created writer. + + + Asynchronously creates an to write an entry. + A running task for the created writer. + + + + Asynchronously creates an to write an entry. + + The entity set we are going to write entities for. + A running task for the created writer. + + + + Asynchronously creates an to write an entry. + + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + A running task for the created writer. + + + Creates an to write a collection of primitive or complex values (as result of a service operation invocation). + The created collection writer. + + + + Creates an to write a collection of primitive or complex values (as result of a service operation invocation). + + The item type of the collection being written or null if no metadata is available. + The created collection writer. + + + Asynchronously creates an to write a collection of primitive or complex values (as result of a service operation invocation). + A running task for the created collection writer. + + + + Asynchronously creates an to write a collection of primitive or complex values (as result of a service operation invocation). + + The item type of the collection being written or null if no metadata is available. + A running task for the created collection writer. + + + Creates an to write a batch of requests or responses. + The created batch writer. + + + Asynchronously creates an to write a batch of requests or responses. + A running task for the created batch writer. + + + + Creates an to write a parameter payload. + + The function import whose parameters will be written. + The created parameter writer. + + + + Asynchronously creates an to write a parameter payload. + + The function import whose parameters will be written. + A running task for the created parameter writer. + + + Writes a service document with the specified as the message payload. + The default workspace to write in the service document. + + + Asynchronously writes a service document with the specified as the message payload. + A task representing the asynchronous operation of writing the service document. + The default workspace to write in the service document. + + + Writes an as the message payload. + The property to write. + + + Asynchronously writes an as the message payload. + A task representing the asynchronous operation of writing the property. + The property to write + + + Writes an as the message payload. + The error to write. + A flag indicating whether debug information (for example, the inner error from the ) should be included in the payload. This should only be used in debug scenarios. + + + Asynchronously writes an as the message payload. + A task representing the asynchronous operation of writing the error. + The error to write. + A flag indicating whether debug information (for example, the inner error from the ) should be included in the payload. This should only be used in debug scenarios. + + + Writes the result of a $links query as the message payload. + The entity reference links to write as message payload. + + + + Writes the result of a $links query as the message payload. + + The entity reference links to write as message payload. + The entity set of the navigation property. + The navigation property for which the entity reference links are being written, or null if none is available. + + + Asynchronously writes the result of a $links query as the message payload. + A task representing the asynchronous writing of the entity reference links. + The entity reference links to write as message payload. + + + + Asynchronously writes the result of a $links query as the message payload. + + The entity reference links to write as message payload. + The entity set of the navigation property. + The navigation property for which the entity reference links are being written, or null if none is available. + A task representing the asynchronous writing of the entity reference links. + + + Writes a singleton result of a $links query as the message payload. + The entity reference link to write as the message payload. + + + + Writes a singleton result of a $links query as the message payload. + + The entity reference link to write as message payload. + The entity set of the navigation property. + The navigation property for which the entity reference link is being written, or null if none is available. + + + Asynchronously writes a singleton result of a $links query as the message payload. + A running task representing the writing of the link. + The link result to write as the message payload. + + + + Asynchronously writes a singleton result of a $links query as the message payload. + + The link result to write as message payload. + The entity set of the navigation property. + The navigation property information for the link being written, or null if none is available. + A running task representing the writing of the link. + + + Writes a single value as the message body. + The value to write. + + + Asynchronously writes a single value as the message body. + A running task representing the writing of the value. + The value to write. + + + Writes the metadata document as the message body. + + + implementation to cleanup unmanaged resources of the writer. + + + + Sets the content-type and data service version headers on the message used by the message writer. + This method can be called if it is important to set all the message headers before calling any of the + write (or writer creation) methods on the . + If it is sufficient to set the headers when the write (or writer creation) methods on the + are called, you don't have to call this method and setting the headers will happen automatically. + + The kind of payload to be written with this message writer. + The used for the specified . + + + + If no headers have been set, sets the content-type and data service version headers on the message used by the message writer. + If headers have been set explicitly (via ODataUtils.SetHeaderForPayload) this method verifies that the payload kind used to + create the headers is the same as the one being passed in . + + The kind of payload to be written with this message writer. + + + + Ensures that the version of the OData protocol is set. + + + If a version is specified explicitly on the writer settings, it is used. + Otherwise the method tries to read the version from the message headers. + If there is a version header but the value cannot be parsed, we fail. + If there is no version header, we fall back to the default version. + + + + + Ensures that the OData format is computed and set; if needed, sets the content type + header of the message. + + + This method computes and ensures that a content type exists and computes the + OData format from it. If a content type is explicitly specified through + + or it will be used. If no + content type is specified in either place, the message headers are checked for + a content type header. + If the content type is computed from settings, the content type header is set on the message. + + + + + Verifies that feed writer can be created. + + + + + Verifies that entry writer can be created. + + + + + Verifies that collection writer can be created. + + The item type of the collection being written or null if no metadata is available. + + + + Verifies that batch writer can be created. + + + + + Verifies that parameter writer can be created. + + The function import whose parameters will be written. + + + + Verifies headers for parameter payload. + + + + + Verifies that service document can be written. + + The default workspace to write. + + + + Verifies that property can be written. + + The property to write. + + + + Verifies that top-level error can be written. + + The error to write. + + + + Verifies that in-stream error can be written. + + The error to write. + + + + Verifies that entity reference links can be written. + + The entity reference links to write as message payload. + The navigation property for which the entity reference links are being written, or null if none is available. + + + + Verifies headers for entity reference links. + + The entity reference links to write as message payload. + + + + Verifies that entity reference link can be written. + + The link result to write as message payload. + + + + Verifies that value can be written. + + The value to write. + The payload kind to use when writing this value. + + + + Verifies that metadata document can be written. + + + + + Verifies headers for metadata document. + + + + + Verifies that the ODataMessageWriter has not been disposed and has not been used before. An ODataMessageWriter + can only be used to write a single message payload but can't be reused later except for writing an in-stream error. + + + + + Check if the object has been disposed. Throws an ObjectDisposedException if the object has already been disposed. + + + + + Perform the actual cleanup work. + + If 'true' this method is called from user code; if 'false' it is called by the runtime. + + + + Verifies that, if a payload kind has been set via SetHeaders, the payload kind that + is being written is the same. + + The payload kind that is attempted to write. + + + + Creates an output context and invokes a write operation on it. + + The payload kind to write. + Optional action which will be called after the headers has been verified to perform payload specific verification. + The write operation to invoke on the output. + + + + Creates an output context and invokes a write operation on it. + + The type of the result of the write operation. + The payload kind to write. + Optional action which will be called after the headers has been verified to perform payload specific verification. + The write operation to invoke on the output. + The result of the write operation. + + + + Creates an output context and invokes a write operation on it. + + The payload kind to write. + Optional action which will be called after the headers has been verified to perform payload specific verification. + The write operation to invoke on the output. + Task which represents the pending write operation. + + + + Creates an output context and invokes a write operation on it. + + The type of the result of the write operation. + The payload kind to write. + Optional action which will be called after the headers has been verified to perform payload specific verification. + The write operation to invoke on the output. + Task which represents the pending write operation. + + + + The message writer settings to use when writing the message payload. + + + + + The media type resolver to use when interpreting the content type. + + + + + Wrapper class around an IODataResponseMessageAsync to isolate our code from the interface implementation. + + + This class also implements the message interface since it is passed to the payload kind + detection logic on the format implementations and manages the buffering read stream. + + + + The response message this class is wrapping. + + + + Constructs an internal wrapper around the + that isolates the internal implementation of the ODataLib from the interface. + + The response message to wrap. + true if the message is being written; false when it is read. + true if the stream returned should ignore dispose calls. + The maximum size of the message in bytes (or a negative number if no maximum applies). + + + + Returns a value of an HTTP header. + + The name of the header to get. + The value of the HTTP header, or null if no such header was present on the message. + + + + Sets the value of an HTTP header. + + The name of the header to set. + The value of the HTTP header or 'null' if the header should be removed. + + + + Get the stream backing this message. + + The stream for this message. + + + + Asynchronously get the stream backing this message. + + The stream for this message. + + + + Queries the message for the specified interface type. + + The type of the interface to query for. + The instance of the interface asked for or null if it was not implemented by the message. + + + + The result status code of the response message. + + + + + Returns an enumerable over all the headers for this message. + + + + + Wrapper class around an IODataRequestMessageAsync to isolate our code from the interface implementation. + + + + The request message this class is wrapping. + + + + Constructs an internal wrapper around the + that isolates the internal implementation of the ODataLib from the interface. + + The request message to wrap. + true if the request message is being written; false when it is read. + true if the stream returned should ignore dispose calls. + The maximum size of the message in bytes (or a negative value if no maximum applies). + + + + Returns a value of an HTTP header. + + The name of the header to get. + The value of the HTTP header, or null if no such header was present on the message. + + + + Sets the value of an HTTP header. + + The name of the header to set. + The value of the HTTP header or 'null' if the header should be removed. + + + + Synchronously get the stream backing this message. + + The stream for this message. + + + + Asynchronously get the stream backing this message. + + The stream for this message. + + + + Queries the message for the specified interface type. + + The type of the interface to query for. + The instance of the interface asked for or null if it was not implemented by the message. + + + + The request Url for this request message. + + + + + The HTTP method used for this request message. + + + + + Returns an enumerable over all the headers for this message. + + + + + Represents an association link. + + + + the metadata builder for this association link. + + + URI representing the Unified Resource Locator (Url) of the link. + + + true if the association link has been set by the user or seen on the wire or computed by the metadata builder, false otherwise. + + + + Sets the metadata builder for this association link. + + The metadata builder used to compute values from model annotations. + + + Gets or sets the name of the association link. + The name of the associate link. + This is the name of the navigation property to which the association link belongs. + + + Gets or sets the URI representing the Unified Resource Locator (URL) of the link. + The URI representing the Unified Resource Locator (URL) of the link. + This URL should point to a resource which can be used to retrieve or modify the association itself + not the URL to traverse the navigation property. + + + + Class representing an error payload. + + + + + Verifies that can be added as an annotation of this. + + Annotation instance. + + + + Gets the collection of instance annotations from this instance. + + The collection of instance annotations + + + + Adds an instance annotation from the payload to this instance. + + The name of the instance annotation. + The value of the instance annotation. + + + Gets or sets the error code to be used in payloads. + The error code to be used in payloads. + + + Gets or sets the error message. + The error message. + + + Gets or sets the language for the exception Message. + The language for the exception Message. + + + Gets or sets the implementation specific debugging information to help determine the cause of the error. + The implementation specific debugging information. + + + + Collection of custom instance annotations. + + + + + Utility class to check feature availability in a certain version of OData. + + + + + Check whether the inline count feature is supported in the specified version. + + The version to check. + + + + Check whether CollectionValue properties are supported in the specified version. + + The version to check. + The name of the property which holds the collection. + + + + Check whether CollectionValue is supported in the specified version. + + The version to check. + + + + Check whether the next link feature is supported in the specified version. + + The version to check. + + + + Check whether the delta link feature is supported in the specified version. + + The version to check. + + + + Check whether the named streams feature is supported in the specified version. + + The version to check. + + + + Check whether the association links feature is supported in the specified version. + + The version to check. + + + + Check whether the custom Type Scheme feature is supported in the specified version. + + The version to check. + + + + Check whether the custom Data Namespace feature is supported in the specified version. + + The version to check. + + + + Check whether parameters in the payload are supported in the specified version. + + The version to check. + + + + Check whether the EPM on the specified entity type is supported in the specified version. + + The version to check. + The entity type to check. + The model containing annotations for the entity type. + + + + Check whether the spatial value is supported in the specified version. + + The version to check. + + + + Checks that the version specified on the request or the response is supported by this library. + + The version to check. + The message reader settings specified for the reader. + In internal drops we currently do not support protocol version 3. + + + + An enumeration that lists the internal errors. + + + + Unreachable codepath in ODataWriterCore.WriteEnd + + + Unreachable codepath in ODataWriterCore.ValidateTransition + + + Unreachable codepath in ODataWriterCore.Scope.Create + + + Unreachable codepath in ODataWriterCore.DuplicatePropertyNamesChecker. + + + Unreachable codepath in ODataWriterCore.ParentNavigationLinkScope. + + + Unreachable codepath in ODataUtils.VersionString + + + Unreachable codepath in ODataUtilsInternal.ToDataServiceVersion + + + Unreachable codepath in ODataUtilsInternal.IsPayloadKindSupported + + + Unreachable codepath in ODataUtils.GetDefaultEncoding + + + Unreachable codepath in ODataUtils.ParseSerializableEpmAnnotations + + + Unreachable codepath in ODataMessageWriter.WriteProperty + + + Unreachable codepath in ODataMessageWriter.WriteEntityReferenceLink + + + Unreachable codepath in ODataMessageWriter.WriteEntityReferenceLinks + + + Unreachable codepath in ODataMessageWriter.WriteError + + + Unreachable codepath in ODataMessageWriter.WriteServiceDocument + + + Unreachable codepath in ODataMessageWriter.WriteMetadataDocument + + + Unreachable codepath in EpmSyndicationWriter.WriteEntryEpm when writing content target. + + + Unreachable codepath in EpmSyndicationWriter.CreateAtomTextConstruct when converting text kind from Syndication enumeration. + + + Unreachable codepath in EpmSyndicationWriter.WritePersonEpm. + + + Unhandled EpmTargetPathSegment.SegmentName in EpmSyndicationWriter.WriteParentSegment. + + + Unreachable codepath in ODataAtomConvert.ToString(AtomTextConstructKind) + + + Unreachable codepath in ODataCollectionWriter.CreateCollectionWriter + + + Unreachable codepath in ODataCollectionWriterCore.ValidateTransition + + + Unreachable codepath in ODataCollectionWriterCore.WriteEnd + + + Unreachable codepath in ODataParameterWriter.CreateParameterWriter + + + Unreachable codepath in ODataParameterWriter.ValidateTransition + + + Unreachable codepath in ODataParameterWriter.ValidateTransition + + + Unreachable codepath in ODataParameterWriter.ValidateTransition + + + Unreachable codepath in ODataParameterWriter.ValidateTransition + + + Unreachable codepath in ODataParameterWriter.ValidateTransition + + + Unreachable codepath in ODataParameterWriter.ValidateTransition + + + Unreachable codepath in ODataParameterWriter.WriteEndImplementation + + + Unreachable codepath in ODataPathValidator.ValidateSegment root branch + + + Unreachable codepath in ODataPathValidator.ValidateSegment non-root branch + + + Unreachable codepath in ODataBatchWriter.ValidateTransition + + + Unreachable codepath in ODataBatchWriter.ToText(this HttpMethod). + + + Unreachable codepath in ODataBatchReader.ReadImplementation. + + + Unreachable codepath in ODataBatchReader.GetEndBoundary in state Completed. + + + Unreachable codepath in ODataBatchReader.GetEndBoundary in state Exception. + + + Unreachable codepath in ODataBatchReader.GetEndBoundary because of invalid enum value. + + + Unreachable codepath in ODataBatchReaderStream.SkipToBoundary. + + + Unreachable codepath in ODataBatchReaderStream.ReadLine. + + + Unreachable codepath in ODataBatchReaderStream.ReadWithDelimiter. + + + Unreachable codepath in ODataBatchReaderStreamBuffer.ScanForBoundary. + + + Unreachable codepath in ODataBatchReaderStreamBuffer.ReadWithLength. + + + Unreachable codepath in JsonReader.Read. + + + Unreachable codepath in ODataReader.CreateReader. + + + Unreachable codepath in ODataReaderCore.ReadImplementation. + + + Unreachable codepath in ODataReaderCoreAsync.ReadAsynchronously. + + + Unreachable codepath in ODataVerboseJsonEntryAndFeedDeserializer.ReadFeedProperty. + + + Unreachable codepath in ODataVerboseJsonReader.ReadEntryStart. + + + Unreachable codepath in ODataVerboseJsonPropertyAndValueDeserializer.ReadPropertyValue. + + + Unreachable codepath in ODataCollectionReader.CreateReader. + + + Unreachable codepath in ODataCollectionReaderCore.ReadImplementation. + + + Unreachable codepath in ODataCollectionReaderCoreAsync.ReadAsynchronously. + + + Unreachable codepath in ODataParameterReaderCore.ReadImplementation. + + + Unreachable codepath in ODataParameterReaderCoreAsync.ReadAsynchronously. + + + The value from the parameter reader must be a primitive value, an ODataComplexValue or null + + + Unreachable codepath in ODataAtomReader.ReadAtNavigationLinkStartImplementation. + + + Unreachable codepath in ODataAtomPropertyAndValueDeserializer.ReadNonEntityValue. + + + Unreachable codepath in AtomValueUtils.ConvertStringToPrimitive. + + + Unreachable codepath in EdmCoreModel.PrimitiveType (unsupported type). + + + Unreachable codepath in EpmSyndicationReader.ReadEntryEpm when reading content target. + + + Unreachable codepath in EpmSyndicationReader.ReadParentSegment. + + + Unreachable codepath in EpmSyndicationReader.ReadPersonEpm. + + + Unreachable codepath in EpmReader.SetEpmValueForSegment when found unexpected type kind. + + + Unreachable codepath in EpmReader.SetEpmValueForSegment when found EPM for a primitive stream property. + + + Unreachable codepath in ReaderValidationUtils.ResolveAndValidateTypeName in the strict branch, unexpected type kind. + + + Unreachable codepath in ReaderValidationUtils.ResolveAndValidateTypeName in the lax branch, unexpected type kind. + + + Unreachable codepath in EpmExtensionMethods.ToAttributeValue(ODataSyndicationItemProperty) when found unexpected type syndication item property kind. + + + The ODataMetadataFormat.CreateOutputContextAsync was called, but this method is not yet supported. + + + The ODataMetadataFormat.CreateInputContextAsync was called, but this method is not yet supported. + + + An unsupported method or property has been called on the IDictionary implementation of the ODataModelFunctions. + + + Unreachable codepath in ODataJsonLightPropertyAndValueDeserializer.ReadPropertyValue. + + + Unreachable codepath in ODataJsonLightPropertyAndValueDeserializer.GetNonEntityValueKind. + + + Unreachable codepath in ODataJsonLightEntryAndFeedDeserializer.ReadFeedProperty. + + + Unreachable codepath in ODataJsonLightReader.ReadEntryStart. + + + Unreachable codepath in ODataJsonLightEntryAndFeedDeserializer_ReadTopLevelFeedAnnotations.ReadTopLevelFeedAnnotations. + + + Unreachable codepath in ODataJsonLightReader.ReadFeedEnd. + + + Unreachable codepath in ODataJsonLightCollectionDeserializer.ReadCollectionStart. + + + Unreachable codepath in ODataJsonLightCollectionDeserializer.ReadCollectionStart.TypeKindFromPayloadFunc. + + + Unreachable codepath in ODataJsonLightCollectionDeserializer.ReadCollectionEnd. + + + Unreachable codepath in ODataJsonLightEntityReferenceLinkDeserializer.ReadSingleEntityReferenceLink. + + + Unreachable codepath in ODataJsonLightEntityReferenceLinkDeserializer.ReadEntityReferenceLinksAnnotations. + + + Unreachable codepath in ODataJsonLightParameterDeserializer.ReadNextParameter. + + + Unreachable codepath in ODataJsonLightAnnotationGroupDeserializer.ReadAnnotationGroupDeclaration. + + + Unreachable codepath in EdmTypeWriterResolver.GetReturnType for function import group. + + + Unreachable codepath in the indexer of ODataVersionCache for unknown versions. + + + + Implementation of the ODataWriter for the Verbose JSON format. + + + + + The output context to write to. + + + + + The JSON entry and feed seriazlizer to use. + + + + + Constructor. + + The output context to write to. + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + true if the writer is created for writing a feed; false when it is created for writing an entry. + + + + Check if the object has been disposed; called from all public API methods. Throws an ObjectDisposedException if the object + has already been disposed. + + + + + Flush the output. + + + + + Flush the output. + + Task representing the pending flush operation. + + + + Starts writing a payload (called exactly once before anything else) + + + + + Ends writing a payload (called exactly once after everything else in case of success) + + + + + Start writing an entry. + + The entry to write. + + + + Finish writing an entry. + + The entry to write. + + + + Start writing a feed. + + The feed to write. + + + + Finish writing a feed. + + The feed to write. + + + + Start writing a deferred (non-expanded) navigation link. + + The navigation link to write. + + + + Start writing a navigation link with content. + + The navigation link to write. + + + + Finish writing a navigation link with content. + + The navigation link to write. + + + + Write an entity reference link. + + The parent navigation link which is being written around the entity reference link. + The entity reference link to write. + + + + Create a new feed scope. + + The feed for the new scope. + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + true if the content of the scope to create should not be written. + The selected properties of this scope. + The newly create scope. + + + + Create a new entry scope. + + The entry for the new scope. + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + true if the content of the scope to create should not be written. + The selected properties of this scope. + The newly create scope. + + + + Writes the __count property for a feed if it has not been written yet (and the count is specified on the feed). + + The feed to write the count for. + + + + Returns the current VerboseJsonFeedScope. + + + + + A scope for a verbose JSON feed. + + + + true if the __count was already written, false otherwise. + + + + Constructor to create a new feed scope. + + The feed for the new scope. + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + true if the content of the scope to create should not be written. + The selected properties of this scope. + + + + true if the __count was already written, false otherwise. + + + + + Uri utility methods. + + + + + An absolute Uri to use as the base Uri for escaping a Uri fragment. + + + + + Returns an absolute URI constructed from the specified base URI and a relative URI + + The base URI to use. + The relative URI to use. + The absolute URI as a result of combining the base URI with the relative URI. + + + + A method to ensure that the original string of a relative URI is escaped. + + The relative to escape. + A relative URI instance with guaranteed escaped original string. + + + + Gets the escaped metadata reference property name. + + The metadata reference property name in question. + The Uri escaped metadata reference property name. + + + + OData representation of a Collection. + + + + Gets or sets the type of the collection value. + The type of the collection value. + + + Gets or sets the items in the bag value. + The items in the bag value. + + + + Configuration settings for OData message writers. + + + + + The acceptable charsets used to the determine the encoding of the message. + This is a comma separated list of charsets as specified in RFC 2616, Section 14.2 + + + + + The acceptable media types used to determine the content type of the message. + This is a comma separated list of content types as specified in RFC 2616, Section 14.1 + + + + + The format to use when writing the payload; this replaces the 'AcceptHeader' and 'AcceptCharSetHeader' + fields and uses the default values for the respective format. If null is specified + the default format and the default media type will be picked depending on the writer these settings are used with. + + + + + true if the Format property should be used to compute the media type; + false if AcceptableMediaTypes and AcceptableCharsets should be used. + null if neither the format nor the acceptable media types/charsets have been set. + + + + + The start ATOM entry callback for XML customization of entries. + + + + + The end ATOM entry callback for XML customization of entries. + + + + + An instance representing any knobs that control the behavior of the writers + inside and outside of WCF Data Services. + + + + Stores the base uri for the metadata document along with a select clause. + + + + Func to evaluate whether an annotation should be writen by the writer. The func should return true if the annotation should + be writen and false if the annotation should be skipped. + + + + + If set to true, then the root element of each payload will be written in the default (non-prefix-qualified) namespace of the document. + All other elements in the same namespace will also not have prefixes. + + + + Initializes a new instance of the class with default settings. + + + Initializes a new instance of the class with specified settings. + The specified settings. + + + Sets the acceptable media types and character sets from which the content type will be computed when writing the payload. + The acceptable media types used to determine the content type of the message. This is a comma separated list of content types as specified in RFC 2616, Section 14.1. + The acceptable charsets to use to determine the encoding of the message. This is a comma separated list of charsets as specified in RFC 2616, Section 14.2 + Calling this method replaces any previously set content-type settings. + + + Sets the format to be used when writing the payload. This will automatically set a compatible content type header. + The format to use for writing the payload. + Calling this method replaces any previously set content-type settings. + + + Sets the customization XML format for Atom entry. + The start of the Atom entry XML customization callback. + The end of the Atom entry XML customization callback. + + Either both and must be null, or both must be non-null. + The XmlWriter returned by the startEntryXmlCustomizationCallback is not owned by the ODataWriter and it won't be Disposed or Flushed or cleared + in any way by it. It's the responsibility of the caller to flush/dispose it inside the endEntryXmlCustomizationCallback and also in case of an exception. + In case an exception is thrown while a new writer is used to write an entry, only the original XmlWriter will be disposed + and no endEntryXmlCustomizationCallback will be called. + It's the responsibility of this callback to write the entry payload written to the entryWriter into the parentWriter at this point. + The ODataWriter assumes that once this callback returns the entry was already written and it will continue onward. + If expanded entries are being written this callback may get called multiple times without the corresponding end callback in between. + It's the responsibility of the callback and the caller to be able to handle nested entries. + This method only applies when writing ATOM format payloads. + When writing payloads in different formats, this method has no effect. + param name="atomStartEntryXmlCustomizationCallback" + If non-null this func will be called when a new (non-null) entry is to be written. + It takes two parameters: + - ODataEntry entry - which is the entry to be written. + - XmlWriter writer - which is the current XmlWriter used by the ODataWriter to write the entry. + It returns XmlWriter: + - null - means there's no need to customize the XML for this entry, and thus the original writer will be used to write the entry. + - non-null XmlWriter - the ODataWriter will use the new returned writer to write the entry. + Once the entry has been written the EndEntryXmlCustomizationCallback will be called and the writer will be passed to it. + Note that the ODataWriter will not dipose or otherwise clear the writer. + The callback must never return the same instance as the writer parameter! + param name="atomEndEntryXmlCustomizationCallback" + If non-null this action will be called when a (non-null) entry has been written. + The action takes three parameters: + - ODataEntry entry - which is the entry which was written. + - XmlWriter entryWriter - the XmlWriter used to write the entry. The action must dispose or otherwise clear this writer. + - XmlWriter parentWriter - the XmlWriter used to write the parent scope of the entry. This is the writer which will be used to write further + payload once this action returns. + + + + Enables the default behavior. + + + Specifies whether the WCF data services server behavior is enabled. + true if the server uses V1 provider, otherwise, false. + + + Specifies whether the WCF data services server behavior is enabled. + true if the server uses V1 provider, otherwise, false. + true if the server is configured to leave prefixes off all root elements and anything else in the same namespace, otherwise, false. + + + Enables the WCF data services client behavior. + The start of the entry XML customization callback. + The end of the entry XML customization callback. + The OData namespace. + The type scheme. + + Either both and must be null, or both must be non-null. + The XmlWriter returned by the startEntryXmlCustomizationCallback is not owned by the ODataWriter and it won't be Disposed or Flushed or cleared + in any way by it. It's the responsibility of the caller to flush/dispose it inside the endEntryXmlCustomizationCallback and also in case of an exception. + In case an exception is thrown while a new writer is used to write an entry, only the original XmlWriter will be disposed + and no endEntryXmlCustomizationCallback will be called. + It's the responsibility of this callback to write the entry payload written to the entryWriter into the parentWriter at this point. + The ODataWriter assumes that once this callback returns the entry was already written and it will continue onward. + If expanded entries are being written this callback may get called multiple times without the corresponding end callback in between. + It's the responsibility of the callback and the caller to be able to handle nested entries. + + + + Sets the URI of the metadata document. + The URI of the metadata document. + + + Sets the URI of the metadata document. + The URI of the metadata document. + The select clause. + + + + Determines if there is a JSON padding function defined. + + True if the JsonPCallback property is not null or emtpy. + + + + Returns true to indicate that the annotation with the name should not be writen, false otherwise. + + The name of the annotation in question. + Returns true to indicate that the annotation with the name should not be writen, false otherwise. + + + Gets or sets the OData protocol version to be used for writing payloads. + The OData protocol version to be used for writing payloads. + + + Gets or sets the document base URI which is used as base for all relative URIs. + The document base URI which is used as base for all relative URIs. + + Note that for typical OData services this should end with a slash character. For example "http://services.odata.org/OData/OData.svc/" will work as expected, + that is a relative URI "Products(0)" will correctly combine with the base to produce "http://services.odata.org/OData/OData.svc/Products(0)". + If the URI would not end with a slash, the last segment is not considered when base and relative URIs are combined. + So for example this base URI "http://services.odata.org/OData/OData.svc" combined with relative URI "Products(0)" would produce + "http://services.odata.org/OData/Products(0)", which is typically not the desired result. + + + + Gets or sets a value that indicates whether the message stream will not be disposed after finishing writing with the message. + true if the message stream will not be disposed after finishing writing with the message; otherwise false. The default value is false. + + + Gets or sets a callback function use to wrap the response from server. + The callback function used to wrap the response from server. + If it has a value and we are writing a JSON response, then we will wrap the entirety of the response in + the provided function name and parenthesis for JSONP. Otherwise this value is ignored. + + + + Gets or sets a value that indicates whether the writer should automatically generate or omit metadata in JSON payloads based on the metadata level. + + + Payload metadata includes the type names of entries and property values as well as any information that may be computed automatically, such as edit links. + If, for example, ODataEntry.EditLink is not specified, then it will be automatically computed and written out in full metadata mode. + If ODataEntry.EditLink is specified, then that value will be considered an "override" of the default computed edit link, and will be written out in full and minimal metadata modes. It will not be written in no metadata mode. + + + + + Gets or sets a value that indicates whether the writer should put key values in their own URI segment when automatically building URIs. + If this value is false, automatically-generated URLs will take the form "../EntitySet('KeyValue')/..". + If this value is true, automatically-generated URLs will take the form "../EntitySet/KeyValue/..". + If this value is not set (null), decision will be made based on the "Com.Microsoft.Data.Services.Conventions.V1.UrlConventions" vocabulary + annotation on the IEdmEntityContainer, if available. The default behavior is to put key values inside parentheses and not a distinct URL segments. + This setting only applies to URLs that are automatically generated by the and does not modify URLs explicitly provided by the user. + + + + + If set to true, then the root element of each payload will be written in the default (non-prefix-qualified) namespace of the document. + All other elements in the same namespace will also not have prefixes. + + + + + The acceptable media types used to determine the content type of the message. + This is a comma separated list of content types as specified in RFC 2616, Section 14.1 + + A null or empty accept header means that all content types are acceptable. + For response messages this is usually the 'Accept' header of the request message. + + + + The acceptable charsets used to the determine the encoding of the message. + This is a comma separated list of charsets as specified in RFC 2616, Section 14.2 + + A null or empty accept charset header means that all charsets are acceptable. + For response messages this is usually the 'Accept-Charset' header of the request message. + + + + The writer behavior that holds all the knobs needed to make the writer + behave differently inside and outside of WCF Data Services. + + + + + The format to use when writing the payload; this replaces the 'AcceptHeader' and 'AcceptCharSetHeader' + properties and uses the default values for the respective format. If null is specified + the default format and the default media type will be picked depending on the writer these settings are used with. + + + + + true if the Format property should be used to compute the media type; + false if AcceptableMediaTypes and AcceptableCharsets should be used. + null if neither the format nor the acceptable media types/charsets have been set. + + + + + The start ATOM entry callback for XML customization of entries. + + + + + The end ATOM entry callback for XML customization of entries. + + + + + Gets the metadata document URI that has been set on the settings, or null if it has not been set. + + + + + Func to evaluate whether an annotation should be writen by the writer. The func should return true if the annotation should + be writen and false if the annotation should be skipped. + + + + + Constant values related to media types. + + + + Media type for requesting any media type. + + + 'application' - media type for application types. + + + 'text' - media type for text subtypes. + + + 'multipart' - media type. + + + 'atom+xml' - constant for atom+xml subtypes. + + + 'atomsvc+xml' - constant for atomsvc+xml subtypes. + + + 'xml' - constant for xml subtypes. + + + 'json' - constant for JSON subtypes. + + + 'plain' - constant for text subtypes. + + + 'javascript' - constant for javascript subtypes. + + + 'octet-stream' subtype. + + + 'mixed' subtype. + + + 'http' subtype. + + + Parameter name for 'type' parameters. + + + Parameter value for type 'entry'. + + + Parameter value for type 'feed'. + + + Parameter name for 'odata' parameters. + + + Parameter value for 'verbose' JSON. + + + JSON Light parameter value 'fullmetadata'. + + + JSON Light parameter value 'minimalmetadata'. + + + JSON Light parameter value 'nometadata'. + + + Parameter name for 'streaming' parameter. + + + JSON Light streaming parameter value 'true'. + + + JSON Light streaming parameter value 'false'. + + + Media type for XML bodies. + + + Media type for ATOM payloads. + + + Media type for links referencing a single entry. + + + Media type for links referencing a collection of entries. + + + Media type for JSON payloads. + + + Media type for binary raw content. + + + Media type for batch parts. + + + Media type for Xml bodies (deprecated). + + + Media type for raw content (except binary). + + + Media type for javascript content. + + + Media type for raw content (except binary). + + + The '*' wildcard usable in type names and subtype names. + + + Separator between mediat type and subtype. + + + + Helper methods used by the OData writer for the ATOM format. + + + + + Creates an Xml writer over the specified stream, with the provided settings and encoding. + + The stream to create the XmlWriter over. + The OData message writer settings used to control the settings of the Xml writer. + The encoding used for writing. + An instance configured with the provided settings and encoding. + + + + Write an error message. + + The Xml writer to write to. + The error instance to write. + A flag indicating whether error details should be written (in debug mode only) or not. + The maximumum number of nested inner errors to allow. + + + + Write the m:etag attribute with the given string value. + + The Xml writer to write to. + The string value of the ETag. + + + + Write the m:null attribute with a value of 'true' + + The Xml writer to write to. + + + + Writes raw markup with the given writer, adding the xml:space="preserve" attribute to the element if the markup has leading or trailing whitespace. + + The to write to. + A string containing the text to write. + + + + Writes a string with the given writer, adding the xml:space="preserve" attribute to the element if the string has leading or trailing whitespace. + + The to write to. + The string to write as element text content. + + + + Creates a new XmlWriterSettings instance using the encoding. + + Configuration settings of the OData writer. + Encoding to use in the writer settings. + The Xml writer settings to use for this writer. + + + + Writes an xml:space="preserve" attribute if the given value starts or ends with whitespace. + + The writer to use for writing out the attribute string. + The value to check for insignificant whitespace. + + + + Utility methods around writing of ATOM values. + + + + The characters that are considered to be whitespace by XmlConvert. + + + + Converts the given value to the ATOM string representation + and uses the writer to write it. + + The writer to write the stringified value. + The value to be written. + + + Converts the specified value to a serializable string in ATOM format, or throws an exception if the value cannot be converted. + Non-null value to convert. + The specified value converted to an ATOM string. + + + + Reads a value of an XML element and converts it to the target primitive value. + + The XML reader to read the value from. + The primitive type reference to convert the value to. + The primitive value read. + This method does not read null values, it only reads the actual element value (not its attributes). + + Pre-Condition: XmlNodeType.Element - the element to read the value for. + XmlNodeType.Attribute - an attribute on the element to read the value for. + Post-Condition: XmlNodeType.Element - the element was empty. + XmlNodeType.EndElement - the element had some value. + + + + + Converts a given to a string appropriate for Atom format. + + The text construct kind to convert. + The string version of the text construct format in Atom format. + + + Converts the specified value to a serializable string in ATOM format. + Non-null value to convert. + The specified value converted to an ATOM string. + boolean value indicating conversion successful conversion + + + + Converts a string to a primitive value. + + The string text to convert. + Type to convert the string to. + The value converted to the target type. + This method does not convert null value. + + + + Reimplementation of XmlConvert.ToBoolean that accepts 'True' and 'False' in addition + to 'true' and 'false'. + + The string value read from the Xml reader. + The converted boolean value. + + + + Constant values used by the OData or HTTP protocol or OData library. + + + + + HTTP method name for GET requests. + + + + + HTTP method name for POST requests. + + + + + HTTP method name for PUT requests. + + + + + HTTP method name for DELETE requests. + + + + + HTTP method name for PATCH requests. + + + + + Custom HTTP method name for MERGE requests. + + + + + Name of the HTTP content type header. + + + + + Name of the OData 'DataServiceVersion' HTTP header. + + + + + Name of the HTTP content-ID header. + + + + + Name of the Content-Length HTTP header. + + + + + 'q' - HTTP q-value parameter name. + + + + Http Version in batching requests and response. + + + 'charset' - HTTP parameter name. + + + multi-part keyword in content-type to identify batch separator + + + Name of the HTTP content transfer encoding header. + + + Content-Transfer-Encoding value for batch payloads. + + + The default protocol version to use in ODataLib if none is specified. + + + The template used when computing a batch request boundary. + + + The template used when computing a batch response boundary. + + + The template used when computing a request changeset boundary. + + + The template used when computing a response changeset boundary. + + + Weak etags in HTTP must start with W/. + Look in http://www.ietf.org/rfc/rfc2616.txt?number=2616 section 14.19 for more information. + + + Weak etags in HTTP must end with ". + Look in http://www.ietf.org/rfc/rfc2616.txt?number=2616 section 14.19 for more information. + + + The default maximum allowed recursion depth for recursive payload definitions, such as complex values inside complex values. + + + The default maximum number of bytes that should be read from a message. + + + The default maximum number of top-level operations and changesets per batch payload. + + + The default maximum number of operations per changeset. + + + The default maximum number of entity property mapping attributes for an entity type (on the type itself and all its base types). + + + The maximum recognized OData version by this library. + + + The '/' (forward slash) which is the URI segment separator. + + + The '/' (forward slash) which is the URI segment separator. + + + The '$links' segment name for constructing association links. + + + The '$value' segment name for the default stream value. + + + + Internal utility methods used in the OData library. + + + + + Converts a given to its representation. + + The instance to convert. + The representation of the . + + + + Sets the 'DataServiceVersion' HTTP header on the message based on the protocol version specified in the settings. + + The message to set the data service version header on. + The determining the protocol version to use. + + + + Reads the DataServiceVersion header from the and parses it. + If no DataServiceVersion header is found it sets the default version to be used for reading. + + The message to get the data service version header from. + The default version to use if the header was not specified. + + The retrieved from the DataServiceVersion header of the message. + The default version if none is specified in the header. + + + + + Checks whether a payload kind is supported in a request or a response. + + The to check. + true if the check is for a request; false for a response. + true if the is valid in a request or response respectively based on . + + + + Concats two enumerables. + + Element type of the enumerable. + Enumerable 1 to concat. + Enumerable 2 to concat. + Returns the combined enumerable. + + + + Gets the selected properties from the given . + + The instance to get the selected properties node from. + The selected properties node instance. + This can be a property on . Having it as an extension method here so we don't have to do the null check at the call site. + + + + OData writer for the ATOM format. + + + + Value for the atom:updated element. + + The writer will use the same default value for the atom:updated element in a given payload. While there is no requirement for this, + it saves us from re-querying the system time and converting it to string every time we write an item. + + + + The output context to write to. + + + The serializer to write payload with. + + + + Constructor creating an OData writer using the ATOM format. + + The output context to write to. + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + True if the writer is created for writing a feed; false when it is created for writing an entry. + + + + Check if the object has been disposed; called from all public API methods. Throws an ObjectDisposedException if the object + has already been disposed. + + + + + Flush the output. + + + + + Flush the output. + + Task representing the pending flush operation. + + + + Start writing an OData payload. + + + + + Finish writing an OData payload. + + + + + Start writing an entry. + + The entry to write. + + + + Finish writing an entry. + + The entry to write. + + + + Start writing a feed. + + The feed to write. + + + + Finish writing a feed. + + The feed to write. + + + + Start writing a navigation link. + + The navigation link to write. + + + + Start writing a navigation link with content. + + The navigation link to write. + + + + Finish writing a navigation link with content. + + The navigation link to write. + + + + Write an entity reference link. + + The parent navigation link which is being written around the entity reference link. + The entity reference link to write. + + + + Create a new feed scope. + + The feed for the new scope. + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + true if the content of the scope to create should not be written. + The selected properties of this scope. + The newly create scope. + + + + Create a new entry scope. + + The entry for the new scope. + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + true if the content of the scope to create should not be written. + The selected properties of this scope. + The newly create scope. + + + + Writes the collection of to the ATOM payload. + + The collection of to write. + Helper class to track if an annotation has been writen. + + + + Writes the collection of for the given to the ATOM payload. + + The feed to write the for. + The current feed scope. + + + + Write the content of the given entry. + + The entry for which to write properties. + The of the entry (or null if not metadata is available). + The cache of properties. + The root of the EPM source tree, if there's an EPM applied. + Set of projected properties, or null if all properties should be written. + + + + Writes the navigation link start atom:link element including the m:inline element if there's a parent navigation link. + + + + + Writes the navigation link end m:inline and end atom:link elements if there's a parent navigation link. + + + + + Writes the navigation link's start element and atom metadata. + + The navigation link to write. + Url to use for the navigation link. If this is specified the Url property on the + will be ignored. If this parameter is null, the Url from the navigation link is used. + + + + Writes custom extensions and the end element for a navigation link + + + + + Determines if XML customization should be applied to the entry and applies it. + + The entry to apply the customization to. + This method must be called before anything is written for the entry in question. + + + + Ends XML customization for the entry (if one was applied). + + The entry to end the customization for. + This method must be called after all the XML for a given entry is written. + + + + Returns the current AtomEntryScope. + + + + + Returns the current AtomFeedScope. + + + + + Enumeration of ATOM element flags, used to keep track of which elements were already written. + + + + The atom:id element. + + + The atom:link with rel='self'. + + + The atom:link with rel='edit'. + + + + A scope for an feed. + + + + true if the author element was already written, false otherwise. + + + + Constructor to create a new feed scope. + + The feed for the new scope. + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + true if the content of the scope to create should not be written. + The selected properties of this scope. + + + + true if the author element was already written, false otherwise. + + + + + A scope for an entry in ATOM writer. + + + + Bit field of the ATOM elements written so far. + + + + Constructor to create a new entry scope. + + The entry for the new scope. + The serialization info for the current entry. + The entity set we are going to write entities for. + The entity type for the entries in the feed to be written (or null if the entity set base type should be used). + true if the content of the scope to create should not be written. + true if we are writing a response, false if it's a request. + The instance controlling the behavior of the writer. + The selected properties of this scope. + + + + Marks the as written in this entry scope. + + The ATOM element which was written. + + + + Determines if the was already written for this entry scope. + + The ATOM element to test for. + true if the was already written for this entry scope; false otherwise. + + + + Enumeration representing the OData protocol version. + + + + Version 1.0. + + + Version 2.0. + + + Version 3.0. + + + + Writes text indented as per the indentation level setting + + + + + The indentation string to prepand to each line for each indentation level. + + + + + The underlying writer to write to. + + + + + Set to true if the writer should actually indent or not. + + + + + Number which specifies the level of indentation. Starts with 0 which means no indentation. + + + + + Set to true if indentation should be written before the next string is written. + + + + + Constructor + + The underlying writer to wrap. + Set to true if the writer should actually indent or not. + + + + Increases the level of indentation applied to the output. + + + + + Decreases the level of indentation applied to the output. + + + + + Closes the underlying writer. + + + + + Clears the buffer of the current writer. + + + + + Writes the given string value to the underlying writer. + + String value to be written. + + + + Writes the given char value to the underlying writer. + + Char value to be written. + + + + Writes a new line. + + + + + Closes or disposes the underlying writer. + + + + + Writes the tabs depending on the indent level. + + + + + Returns the Encoding for the given writer. + + + + + Returns the new line character. + + + + + Constants for the JSON format. + + + + + "results" header for Json data array. + + + + + Text used to start a data object wrapper in JSON. + + + + + Data property name of the data object wrapper in JSON. + + + + + "id" header for the id of an Entry. + + + + + "__metadata" header for Json metadata object + + + + + "uri" header for the URI identifying the entry being represented. + + + + + "type" header for the type name of the entity + + + + + "etag" header for the ETag of an entity + + + + + "__mediaresource" property name for the metadata of a stream reference value. + + + + + "media_src" header for the MLE read link + + + + + "content_type" header for the MLE + + + + + "media_etag" header for the MLE + + + + + "edit_media" header for the MLE + + + + + "properties" header for the property metadata + + + + + "associationuri" header for the association link url of a navigation property + + + + + "__count" header for the inline count in a feed + + + + + "__next" header for the next link in a feed + + + + + "__deferred" header for the non-expanded link in an entry + + + + + "uri" header for the navigation link URL + + + + + The name of the property returned for a singleton $links query + + + + "actions" header for entry metadata. + + + "functions" header for entry metadata. + + + "title" header for "actions" and "functions" metadata. + + + "metadata" header for "actions" and "functions" metadata. + + + "target" header for "actions" and "functions" metadata. + + + + "error" header for the error payload + + + + + "code" header for the error code property + + + + + "message" header for the error message property + + + + + "lang" header for the error message language property + + + + + "value" header for the error message value property + + + + + "innererror" header for the inner error property + + + + + "message" header for an inner error (for Astoria compatibility) + + + + + "typename" header for an inner error (for Astoria compatibility) + + + + + "stacktrace" header for an inner error (for Astoria compatibility) + + + + + "internalexception" header for an inner, inner error property (for Astoria compatibility) + + + + + JSON datetime format. + + + + + JSON datetime offset format. + + + + + A plus sign for the date time offset format. + + + + + The fixed property name for the entity sets array in a service document payload. + + + + + The true value literal. + + + + + The false value literal. + + + + + The null value literal. + + + + + Character which starts the object scope. + + + + + Character which ends the object scope. + + + + + Character which starts the array scope. + + + + + Character which ends the array scope. + + + + + "(" Json Padding Function scope open parens. + + + + + ")" Json Padding Function scope close parens. + + + + + The separator between object members. + + + + + The separator between array elements. + + + + + The separator between the name and the value. + + + + + The quote character. + + + + + Writer for the JSON format. http://www.json.org + + + + + Writer to write text into. + + + + + Scope of the json text - object, array. + + + + + If true, all double values will be written so that they either have an 'E' for scientific notation or contain a decimal point. + + + + + Creates a new instance of Json writer. + + Writer to which text needs to be written. + If the output should be indented or not. + The json-based format to use when writing. + + + + Start the padding function scope. + + + + + End the padding function scope. + + + + + Start the object scope. + + + + + End the current object scope. + + + + + Start the array scope. + + + + + End the current array scope. + + + + + Write the "d" wrapper text. + + + + + Write the "results" header for the data array. + + + + + Write the name for the object property. + + Name of the object property. + + + + Writes a function name for JSON padding. + + Name of the padding function to write. + + + + Write a boolean value. + + Boolean value to be written. + + + + Write an integer value. + + Integer value to be written. + + + + Write a float value. + + Float value to be written. + + + + Write a short value. + + Short value to be written. + + + + Write a long value. + + Long value to be written. + + + + Write a double value. + + Double value to be written. + + + + Write a Guid value. + + Guid value to be written. + + + + Write a decimal value + + Decimal value to be written. + + + + Write a DateTime value + + DateTime value to be written. + The OData protocol version to be used for writing payloads. + + + + Writes a DateTimeOffset value + + DateTimeOffset value to be written. + The OData protocol version to be used for writing payloads. + + + + Writes a TimeSpan value + + TimeSpan value to be written. + + + + Write a byte value. + + Byte value to be written. + + + + Write an sbyte value. + + SByte value to be written. + + + + Write a string value. + + String value to be written. + + + + Clears all buffers for the current writer. + + + + + Writes a separator of a value if it's needed for the next value to be written. + + + + + Start the scope given the scope type. + + The scope type to start. + + + + Various scope types for Json writer. + + + + + Array scope. + + + + + Object scope. + + + + + JSON padding function scope. + + + + + Class representing scope information. + + + + + The type of the scope. + + + + + Constructor. + + The type of the scope. + + + + What to write at the beginning of this scope. + + + + + What to write at teh end of this scope. + + + + + Get/Set the object count for this scope. + + + + + Gets the scope type for this scope. + + + + + Class with utility methods to work with exceptions + + + + Type of OutOfMemoryException. + + + Type of StackOverflowException. + + + Type of ThreadAbortException. + + + + Determines whether the specified exception can be caught and + handled, or whether it should be allowed to continue unwinding. + + to test. + + true if the specified exception can be caught and handled; + false otherwise. + + + + + Checks the argument value for null and throws if it is null. + + Type of the argument, used to force usage only for reference types. + Argument whose value needs to be checked. + Name of the argument, used for exception message. + + + + Checks the argument string value empty string and throws if it is empty. The value can be null though. + + Argument whose value needs to be checked. + Name of the argument, used for exception message. + + + + Checks the argument string value for null or empty string and throws if it is null or empty. + + Argument whose value needs to be checked. + Name of the argument, used for exception message. + + + + Checks the for not being negative and throws if it is negative. + + Argument whose value needs to be checked. + Name of the argument, used for exception message. + + + + Checks the for being greater than zero and throws if it is not positive. + + Argument whose value needs to be checked. + Name of the argument, used for exception message. + + + + Checks the for being greater than zero and throws if it is not positive. + + Argument whose value needs to be checked. + Name of the argument, used for exception message. + + + + Checks the for not being empty. + + Argument whose value needs to be checked. + Name of the argument, used for exception message. + Type of the collection. It does not matter. + + + + A workaround to a problem with FxCop which does not recognize the CheckArgumentNotNull method + as the one which validates the argument is not null. + + This has been suggested as a workaround in msdn forums by the VS team. Note that even though this is production code + the attribute has no effect on anything else. + + + + Provides helper method for converting data values to and from the OData JSON format. + + + + + Const tick value for caculating tick values. + + + + + Characters which, if found inside a number, indicate that the number is a double when no other type information is available. + + + + + Map of special characters to strings. + + + + + Write a boolean value. + + The text writer to write the output to. + The boolean value to write. + + + + Write an integer value. + + The text writer to write the output to. + Integer value to be written. + + + + Write a float value. + + The text writer to write the output to. + Float value to be written. + + + + Write a short value. + + The text writer to write the output to. + Short value to be written. + + + + Write a long value. + + The text writer to write the output to. + Long value to be written. + + + + Write a double value. + + The text writer to write the output to. + Double value to be written. + If true, all double values will be written so that they either have an 'E' for scientific notation or contain a decimal point. + + + + Write a Guid value. + + The text writer to write the output to. + Guid value to be written. + + + + Write a decimal value + + The text writer to write the output to. + Decimal value to be written. + + + + Write a DateTime value + + The text writer to write the output to. + DateTime value to be written. + The format to write out the DateTime value in. + + + + Write a DateTimeOffset value. + + The text writer to write the output to. + DateTimeOffset value to be written. + The format to write out the DateTime value in. + + + + Write a TimeSpan value. + + The text writer to write the output to. + TimeSpan value to be written. + + + + Write a byte value. + + The text writer to write the output to. + Byte value to be written. + + + + Write an sbyte value. + + The text writer to write the output to. + SByte value to be written. + + + + Write a string value. + + The text writer to write the output to. + String value to be written. + + + + Returns the string value with special characters escaped. + + The text writer to write the output to. + Input string value. + + + + Converts the number of ticks from the JSON date time format to the one used in .NET DateTime or DateTimeOffset structure. + + The ticks to from the JSON date time format. + The ticks to use in the .NET DateTime of DateTimeOffset structure. + + + + Write the string value with quotes. + + The text writer to write the output to. + String value to be written. + + + + Converts the number of ticks from the .NET DateTime or DateTimeOffset structure to the ticks use in the JSON date time format. + + The ticks from the .NET DateTime of DateTimeOffset structure. + The ticks to use in the JSON date time format. + + + + Converts a given date time to its universal date time equivalent. + + The date time to convert to UTC + universal date time equivalent of the value. + + + + Creates the special character to escaped string map. + + The map of special characters to the corresponding escaped strings. + + + + OData representation of a complex value. + + + + Gets or sets the properties and values of the complex value. + The properties and values of the complex value. + + + Gets or sets the type of the complex value. + The type of the complex value. + + + + Describes a collection of entities. + + + + + URI representing the next page link. + + + + + URI representing the delta link. + + + + + Provides additional serialization information to the for this . + + + + Gets or sets the number of items in the feed. + The number of items in the feed. + + + Gets or sets the URI that identifies the entity set represented by the feed. + The URI that identifies the entity set represented by the feed. + + + Gets or sets the URI representing the next page link. + The URI representing the next page link. + + + + URI representing the delta link. + + + + + Collection of custom instance annotations. + + + + + Provides additional serialization information to the for this . + + + + + Represents a single link. + + + + the metadata builder for this navigation link. + + + URI representing the Unified Resource Locator (Url) of the link as provided by the user or seen on the wire (never computed). + + + true if the navigation link has been set by the user or seen on the wire or computed by the metadata builder, false otherwise. + + + The association link URL for this navigation link as provided by the user or seen on the wire (never computed). + + + true if the association link has been set by the user or seen on the wire or computed by the metadata builder, false otherwise. + + + + Sets the metadata builder for this navigation link. + + The metadata builder used to compute values from model annotations. + + + Gets or sets a value that indicates whether the navigation link represents a collection or an entry. + true if the navigation link represents a collection; false if the navigation represents an entry. + This property is required to have a value for ATOM payloads and is optional for JSON payloads. + + + Gets or sets the name of the link. + The name of the link. + + + Gets or sets the URI representing the Unified Resource Locator (URL) of the link. + The URI representing the Unified Resource Locator (URL) of the link. + + + The association link URL for this navigation link. + + + + Represents a media resource. + + + + the metadata builder for this OData entry. + + + The name of the named stream this value belongs to; null for the default media resource. + + + Edit link for media resource. + + + Edit link for media resource. + + + true if an edit link was provided by the user or seen on the wire, false otherwise. + + + Read link for media resource. + + + Read link for media resource. + + + true if a read link was provided by the user or seen on the wire, false otherwise. + + + + Sets the metadata builder for this stream reference value. + + The metadata builder used to compute values from model annotations. + The property name for the named stream; null for the default media resource. + + + + Gets the metadata builder for this stream reference value. + + The metadata builder used to compute links. + + + Gets or sets the edit link for media resource. + The edit link for media resource. + + + Gets or sets the read link for media resource. + The read link for media resource. + + + Gets or sets the content media type. + The content media type. + + + Gets or sets the media resource ETag. + The media resource ETag. + + + + Represents a single property of an entry. + + + + + The value of this property, accessed and set by both and . + + + + + Provides additional serialization information to the for this . + + + + Gets or sets the property name. + The property name. + + + Gets or sets the property value. + The property value. + + + + Property value, represented as an ODataValue. + + + This value is the same as , except that primitive types are wrapped + in an instance of ODataPrimitiveValue, and null values are represented by an instance of ODataNullValue. + + + + + Provides additional serialization information to the for this . + + + + + Represents a single entity. + + + + the metadata builder for this OData entry. + + + The entry ETag, as provided by the user or seen on the wire (never computed). + + + true if an etag was provided by the user or seen on the wire, false otherwise. + + + The Entry ID, as provided by the user or seen on the wire (never computed). + + + true if an id was provided by the user or seen on the wire, false otherwise. + + + Link used to edit the entry, as provided by the user or seen on the wire (never computed). + + + true if an edit link was provided by the user or seen on the wire, false otherwise. + + + A link that can be used to read the entry, as provided by the user or seen on the wire (never computed). + + + true if a read link was provided by the user or seen on the wire, false otherwise. + + + The default media resource of the media link entry, as provided by the user or seen on the wire (never computed). + + + The entry properties provided by the user or seen on the wire (never computed). + + + The entry actions provided by the user or seen on the wire (never computed). + + + The entry functions provided by the user or seen on the wire (never computed). + + + + Provides additional serialization information to the for this . + + + + Gets or sets the entry ETag. + The entry ETag. + + + Gets or sets the Entry identifier. + The Entry identifier. + + + Gets or sets the link used to edit the entry. + The link used to edit the entry. + + + Gets or sets a link that can be used to read the entry. + The link that can be used to read the entry. + + + Gets or sets the default media resource of the media link entry. + The default media resource of the media link entry. + + + Gets or sets the association links. + The association links. + + + Gets or sets the entity actions. + The entity actions. + + + Gets or sets the entity functions. + The entity functions. + + + Gets or sets the entry properties. + The entry properties. + + Non-property content goes to annotations. + + + + Gets or sets the type name of the entry. + The type name of the entry. + + + + Collection of custom instance annotations. + + + + + The metadata builder for this OData entry. + + + + + Returns the entry's Id property that has been set directly, and was not computed using the metadata builder. + + + + + true if an id was provided by the user or seen on the wire, false otherwise. + + + + + Returns the entry's EditLink property that has been set directly, and was not computed using the metadata builder. + + + + + true if an edit link was provided by the user or seen on the wire, false otherwise. + + + + + Returns the entry's ReadLink property that has been set directly, and was not computed using the metadata builder. + + + + + true if a read link was provided by the user or seen on the wire, false otherwise. + + + + + Returns the entry's ETag property that has been set directly, and was not computed using the metadata builder. + + + + + true if an etag was provided by the user or seen on the wire, false otherwise. + + + + Returns the default media resource of the media link entry that has been set directly and was not computed using the metadata builder. + + + Returns the entity properties that has been set directly and was not computed using the metadata builder. + + + Returns the entity actions that has been set directly and was not computed using the metadata builder. + + + Returns the entity functions that has been set directly and was not computed using the metadata builder. + + + + Provides additional serialization information to the for this . + + + + + Class with utility methods for working with and implementing Task based APIs + + + + + Already completed task. + + + + + Returns an already completed task instance with the specified result. + + Type of the result. + The value of the result. + An already completed task with the specified result. + + + + Returns an already completed task instance with the specified error. + + The exception of the faulted result. + An already completed task with the specified exception. + + + + Returns an already completed task instance with the specified error. + + Type of the result. + The exception of the faulted result. + An already completed task with the specified exception. + + + + Returns an already completed task for the specified synchronous operation. + + The synchronous operation to perform. + An already completed task. If the succeeded this will be a successfully completed task, + otherwise it will be a faulted task holding the exception thrown. + The advantage of this method over CompletedTask property is that if the fails + this method returns a faulted task, instead of throwing exception. + + + + Returns an already completed task for the specified synchronous operation. + + The type of the result returned by the operation. This MUST NOT be a Task type. + The synchronous operation to perform. + An already completed task. If the succeeded this will be a successfully completed task, + otherwise it will be a faulted task holding the exception thrown. + The advantage of this method over GetCompletedTask property is that if the fails + this method returns a faulted task, instead of throwing exception. + + + + Returns an already completed task for the specified synchronous operation which returns a task. + + The synchronous operation to perform. + The task returned by the or a faulted task if the operation failed. + The advantage of this method over direct call is that if the fails + this method returns a faulted task, instead of throwing exception. + + + + Returns an already completed task for the specified synchronous operation which returns a task. + + The type of the task result. + The synchronous operation to perform. + The task returned by the or a faulted task if the operation failed. + The advantage of this method over direct call is that if the fails + this method returns a faulted task, instead of throwing exception. + + + + Returns a new task which will consist of the followed by a call to the + which will only be invoked if the antecendent task succeeded. + + The task to "append" the operation to. + The operation to execute if the succeeded. + A new task which represents the antecedent task followed by a conditional invoke to the operation. + This method unlike ContinueWith will return a task which will fail if the antecedent task fails, thus it propagates failures. + + + + Returns a new task which will consist of the followed by a call to the + which will only be invoked if the antecendent task succeeded. + + The result type of the operation. This MUST NOT be a Task or a type derived from Task. + The task to "append" the operation to. + The operation to execute if the succeeded. + A new task which represents the antecedent task followed by a conditional invoke to the operation. + + This method unlike ContinueWith will return a task which will fail if the antecedent task fails, thus it propagates failures. + This method doesn't support operations which return another Task instance, to use that call FollowOnSuccessWithTask instead. + + + + + Returns a new task which will consist of the followed by a call to the + which will only be invoked if the antecendent task succeeded. + + The result type of the antecedent task. + The task to "append" the operation to. + The operation to execute if the succeeded. + A new task which represents the antecedent task followed by a conditional invoke to the operation. + This method unlike ContinueWith will return a task which will fail if the antecedent task fails, thus it propagates failures. + + + + Returns a new task which will consist of the followed by a call to the + which will only be invoked if the antecendent task succeeded. + + The result type of the antecedent task. + The result type of the operation. This MUST NOT be a Task or a type derived from Task. + The task to "append" the operation to. + The operation to execute if the succeeded. + A new task which represents the antecedent task followed by a conditional invoke to the operation. + + This method unlike ContinueWith will return a task which will fail if the antecedent task fails, thus it propagates failures. + This method doesn't support operations which return another Task instance, to use that call FollowOnSuccessWithTask instead. + + + + + Returns a new task which will consist of the followed by a call to the + which will only be invoked if the antecendent task succeeded. + + The task to "append" the operation to. + The operation to execute if the succeeded. + A new task which represents the antecedent task followed by a conditional invoke to the operation. + + This method unlike ContinueWith will return a task which will fail if the antecedent task fails, thus it propagates failures. + This method handles operation which returns another task. The method will unwrap and return a task which finishes when both + the antecedent task, the operation as well as the task returned by that operation finished. + + + + + Returns a new task which will consist of the followed by a call to the + which will only be invoked if the antecendent task succeeded. + + The result type of the operation. This MUST NOT be a Task or a type derived from Task. + The task to "append" the operation to. + The operation to execute if the succeeded. + A new task which represents the antecedent task followed by a conditional invoke to the operation. + + This method unlike ContinueWith will return a task which will fail if the antecedent task fails, thus it propagates failures. + This method handles operation which returns another task. The method will unwrap and return a task which finishes when both + the antecedent task, the operation as well as the task returned by that operation finished. + + + + + Returns a new task which will consist of the followed by a call to the + which will only be invoked if the antecendent task succeeded. + + The result type of the antecedent task. + The task to "append" the operation to. + The operation to execute if the succeeded. + A new task which represents the antecedent task followed by a conditional invoke to the operation. + + This method unlike ContinueWith will return a task which will fail if the antecedent task fails, thus it propagates failures. + This method handles operation which returns another task. The method will unwrap and return a task which finishes when both + the antecedent task, the operation as well as the task returned by that operation finished. + + + + + Returns a new task which will consist of the followed by a call to the + which will only be invoked if the antecendent task succeeded. + + The result type of the antecedent task. + The result type of the operation. This MUST NOT be a Task or a type derived from Task. + The task to "append" the operation to. + The operation to execute if the succeeded. + A new task which represents the antecedent task followed by a conditional invoke to the operation. + + This method unlike ContinueWith will return a task which will fail if the antecedent task fails, thus it propagates failures. + This method handles operation which returns another task. The method will unwrap and return a task which finishes when both + the antecedent task, the operation as well as the task returned by that operation finished. + + + + + Returns a new task which will consist of the followed by a call to the + which will only be invoked if the antecendent task faulted. + + The task to "append" the operation to. + The operation to execute if the faulted. + A new task which represents the antecedent task followed by a conditional invoke to the operation. + This method unlike ContinueWith will return a task which will fail if the antecedent task fails, thus it propagates failures. + + + + Returns a new task which will consist of the followed by a call to the + which will only be invoked if the antecendent task faulted. + + The type of the result of the task. + The task to "append" the operation to. + The operation to execute if the faulted. + A new task which represents the antecedent task followed by a conditional invoke to the operation. + This method unlike ContinueWith will return a task which will fail if the antecedent task fails, thus it propagates failures. + + + + Returns a new task which will consist of the followed by a call to the + which will only be invoked if the antecendent task faulted and it failed with exception of type TExceptionType. + + The type of the result of the task. + The exception type to catch. + The task to "append" the operation to. + The operation to execute if the faulted with an exception of type TExceptionType. + A new task which represents the antecedent task followed by a conditional invoke to the operation. + This method unlike ContinueWith will return a task which will fail if the antecedent task fails and the exception is not of the TExceptionType, + if the exception type matches, the task will return the value returned by the catchBlock. + + + + Returns a new task which will consist of the followed by a call to the + which will get called no matter what the result of the antecedent task was. + + The task to "append" the operation to. + The operation to execute after the finished. + A new task which represents the antecedent task followed by an invoke to the operation. + + This method unlike ContinueWith will return a task which will fail if the antecedent task fails, thus it propagates failures. + Note that the operation may not return any value, since the original result of the antecedent task will be used always. + Also if the operation fails, the resulting task fails. If both tasks fail, the antecedent task failure is reported only. + + + + Returns a new task which will consist of the followed by a call to the + which will get called no matter what the result of the antecedent task was. + + The type of the result of the task. + The task to "append" the operation to. + The operation to execute after the finished. + A new task which represents the antecedent task followed by an invoke to the operation. + + This method unlike ContinueWith will return a task which will fail if the antecedent task fails, thus it propagates failures. + Note that the operation may not return any value, since the original result of the antecedent task will be used always. + Also if the operation fails, the resulting task fails. If both tasks fail, the antecedent task failure is reported only. + + + Suppresses default exception handling of a Task that would otherwise reraise the exception on the finalizer thread. + The Task to be monitored. + The original Task. + + + Gets the TaskScheduler instance that should be used to schedule tasks. + Factory to get the scheduler for. + The scheduler for the specified factory. + + + Asynchronously iterates through an enumerable of tasks. + The target factory. + The enumerable containing the tasks to be iterated through. + A Task that represents the complete asynchronous operation. + + + + The func used as the continuation (the func in the ContinueWith) for FollowOnSuccess implementations. + + The type of the result of the operation to follow up with. + The task which just finished. + The task completion source to apply the result to. + The func to execute as the follow up action in case of success of the . + + + + The implementation helper for FollowOnSuccess methods which don't allow result type of Task. + + The type of the result of the followup operation, this MUST NOT be a Task type. + The task to follow with operation. + The operation to follow up with. + A new Task which wraps both the and the conditional execution of . + + + + The implementation helper for FollowOnFault methods. + + The type of the result of the task. + The task to follow with operation in case of fault. + Func which gets a task result value. + The operation to follow up with. + A new Task which wraps both the and the conditional execution of . + + + + The implementation helper for FollowOnFaultAndCatchException methods. + + The type of the result of the task. + The type of the exception to catch. + The task to follow with operation in case of fault. + Func which gets a task result value. + The operation to follow up with. + A new Task which wraps both the and the conditional execution of . + + + + Returns a new task which will consist of the followed by a call to the + which will get called no matter what the result of the antecedent task was. + + The type of the result of the task. + The task to "append" the operation to. + Function which gets a task result. + The operation to execute after the finished. + A new task which represents the antecedent task followed by an invoke to the operation. + + This method unlike ContinueWith will return a task which will fail if the antecedent task fails, thus it propagates failures. + Note that the operation may not return any value, since the original result of the antecedent task will be used always. + Also if the operation fails, the resulting task fails. If both tasks fail, the antecedent task failure is reported only. + + + + Returns already completed task instance. + + + + + Helper methods that provide a common API surface on all platforms. + + + + + Use this instead of Type.EmptyTypes. + + + + + Use this instead of Uri.UriSchemeHttp. + + + + + Use this instead of Uri.UriSchemeHttps. + + + + + Replacement for Type.Assembly. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsValueType. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsGenericParameter. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsAbstract. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsGenericType. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsGenericTypeDefinition. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsVisible. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsInterface. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsClass. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsEnum. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.BaseType. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.ContainsGenericParameters. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Array.AsReadOnly(T[]). + + Type of items in the array. + Array to use to create the ReadOnlyCollection. + ReadOnlyCollection containing the specified array items. + + + + Converts a string to a DateTime. + + String to be converted. + See documentation for method being accessed in the body of the method. + + + + Converts a string to a DateTimeOffset. + + String to be converted. + See documentation for method being accessed in the body of the method. + + + + Adds the seconds padding as zeros to the date time string if seconds part is missing. + + String that needs seconds padding + DateTime string after adding seconds padding + + + + Converts the DateTime to a string, internal method. + + DateTime to convert to String. + Converted String. + + + + Converts a DateTime to a string. + + DateTime to be converted. + See documentation for property being accessed in the body of the method. + + + + Gets the specified type. + + Name of the type to get. + Throws if the type could not be found. + Type instance that represents the specified type name. + + + + Gets the TypeCode for the specified type. + + Type on which to call this helper method. + TypeCode representing the specified type. + + + + Gets the Unicode Category of the specified character. + + Character to get category of. + Category of the character. + + + + Replacement for usage of MemberInfo.MemberType property. + + MemberInfo on which to access this method. + True if the specified member is a property, otherwise false. + + + + Replacement for usage of Type.IsPrimitive property. + + Type on which to access this method. + True if the specified type is primitive, otherwise false. + + + + Replacement for usage of Type.IsSealed property. + + Type on which to access this method. + True if the specified type is sealed, otherwise false. + + + + Replacement for usage of MemberInfo.MemberType property. + + MemberInfo on which to access this method. + True if the specified member is a method, otherwise false. + + + + Compares two methodInfos and returns true if they represent the same method. + Need this for Windows Phone as the method Infos of the same method are not always instance equivalent. + + MemberInfo to compare. + MemberInfo to compare. + True if the specified member is a method, otherwise false. + + + + Gets public properties for the specified type. + + Type on which to call this helper method. + True if method should return only instance properties, false if it should return both instance and static properties. + Enumerable of public properties for the type. + + + + Gets public properties for the specified type. + + Type on which to call this helper method. + True if method should return only instance properties, false if it should return both instance and static properties. + True if method should return only properties that are declared on the type, false if it should return properties declared on the type as well as those inherited from any base types. + Enumerable of public properties for the type. + + + + Gets instance constructors for the specified type. + + Type on which to call this helper method. + True if method should return only public constructors, false if it should return only non-public constructors. + Enumerable of instance constructors for the specified type. + + + + Gets a instance constructor for the type that takes the specified argument types. + + Type on which to call this helper method. + True if method should search only public constructors, false if it should search only non-public constructors. + Array of argument types for the constructor. + ConstructorInfo for the constructor with the specified characteristics if found, otherwise null. + + + + Tries to the get method from the type, returns null if not found. + + The type. + The name. + The parameter types. + Returns True if found. + + + + Gets a method on the specified type. + + Type on which to call this helper method. + Name of the method on the type. + True if method should search only public methods, false if it should search only non-public methods. + True if method should search only static methods, false if it should search only instance methods. + MethodInfo for the method with the specified characteristics if found, otherwise null. + + + + Gets a method on the specified type. + + Type on which to call this helper method. + Name of the method on the type. + Argument types for the method. + True if method should search only public methods, false if it should search only non-public methods. + True if method should search only static methods, false if it should search only instance methods. + MethodInfo for the method with the specified characteristics if found, otherwise null. + + + + Gets all public static methods for a type. + + Type on which to call this helper method. + Enumerable of all public static methods for the specified type. + + + + Replacement for Type.GetNestedTypes(BindingFlags.NonPublic) + + Type on which to call this helper method. + All types nested in the current type + + + + Creates a Compiled Regex expression + + Pattern to match. + Options to use. + Regex expression to match supplied patter + Is marked as compiled option only in platforms otherwise RegexOption.None is used + + + + Sets public key string for friend assemblies. + + + + ProductPublicKey is an official MS supported public key for external releases. + + + TestPublicKey is an unsupported strong key for testing and internal use only + + + Dont know what this is + + + Used for comparison with external assemblies for silverlight like Microsoft.VisualBasic. + + + Used for comparison with external assemblies for desktop like Microsoft.VisualBasic. + + + + AutoGenerated resource class. Usage: + + string s = TextRes.GetString(TextRes.MyIdenfitier); + + + + + Strongly-typed and parameterized string resources. + + + + + A string like "The format '{0}' does not support writing a payload of kind '{1}'." + + + + + A string like "The format '{0}' does not support writing custom instance annotations." + + + + + A string like "The format '{0}' does not support reading a payload of kind '{1}'." + + + + + A string like "A relative URI value '{0}' was specified in the data to write, but the metadata document URI or the metadata for the item to be written was not specified for the writer. The metadata document URI and the metadata for the item to be written must be provided to the writer when using relative URI values." + + + + + A string like "A relative URI value '{0}' was specified in the data to write, but a base URI was not specified for the writer. A base URI must be set when using relative URI values." + + + + + A string like "The property '{0}' is a stream property, but it is not a property of an ODataEntry instance. In OData, stream properties must be properties of ODataEntry instances." + + + + + A string like "An invalid state transition has been detected in an OData writer. Cannot transition from state '{0}' to state '{1}'." + + + + + A string like "Cannot transition from state '{0}' to state '{1}'. The only valid actions in state '{0}' are to write an entry or a feed." + + + + + A string like "Cannot transition from state '{0}' to state '{1}'. The only valid action in state '{0}' is to write a navigation link." + + + + + A string like "Cannot transition from state '{0}' to state '{1}'. You must first call ODataWriter.WriteEnd to finish writing a null ODataEntry." + + + + + A string like "Cannot transition from state '{0}' to state '{1}'. The only valid action in state '{0}' is to write an entry." + + + + + A string like "Cannot transition from state '{0}' to state '{1}'. The only valid actions in state '{0}' are to write an entry or a feed." + + + + + A string like "Cannot transition from state '{0}' to state '{1}'. Nothing further can be written once the writer has completed." + + + + + A string like "Cannot transition from state '{0}' to state '{1}'. Nothing can be written once the writer entered the error state." + + + + + A string like "ODataWriter.WriteEnd was called in an invalid state ('{0}'); WriteEnd is only supported in states 'Entry', 'Feed', 'NavigationLink', and 'NavigationLinkWithContent'." + + + + + A string like "Multiple properties with the name '{0}' were detected in an entry or a complex value. In OData, duplicate property names are not allowed." + + + + + A string like "Multiple navigation links with the same name '{0}' for a singleton navigation property were detected on an entry. In OData, a singleton navigation property can have only one navigation link." + + + + + A string like "Multiple annotations with the name '{0}' were detected. In OData, duplicate annotations are not allowed." + + + + + A string like "Multiple annotations with the name '{0}' were detected for the property with name '{1}'. In OData, duplicate annotations are not allowed." + + + + + A string like "Multiple annotations with the name '{0}' were detected for the instance annotation with name '{1}'. In OData, duplicate annotations are not allowed." + + + + + A string like "An annotation with name '{0}' for property '{1}' was detected after the property, or after an annotation for another property. In OData, annotations for a property must be in a single group and must appear before the property they annotate." + + + + + A string like "Cannot convert a value of type '{0}' to the string representation of an Atom primitive value." + + + + + A string like "The value of type '{0}' is not supported and cannot be converted to a JSON representation." + + + + + A string like "The version '{0}' specified by the payload is higher than the maximum protocol version '{1}' specified by the ODataMessageReaderSettings.MaxProtocolVersion property." + + + + + A string like "The property '{0}' is not supported when ODataVersion is greater than '{1}'." + + + + + A string like "Parameters in the payload are only supported in version 3.0 of the OData protocol and higher versions. They are not supported in version {0}." + + + + + A string like "Association links are only supported in version 3.0 of the OData protocol and higher versions. They are not supported in version {0}." + + + + + A string like "The inline count feature is only supported in version 2.0 of the OData protocol and higher versions. It is not supported in version {0}." + + + + + A string like "The next link feature is only supported in version 2.0 of the OData protocol and higher versions. It is not supported in version {0}." + + + + + A string like "The delta link feature is only supported in version 3.0 of the OData protocol and higher versions. It is not supported in version {0}." + + + + + A string like "A collection property '{0}' was detected; Collection properties are only supported in version 3.0 of the OData protocol and higher versions. They are not supported in version {1}." + + + + + A string like "Collection types are only supported in version 3.0 of the OData protocol and higher versions. They are not supported in version {0}." + + + + + A string like "Stream properties are only supported in version 3.0 of the OData protocol and higher versions. They are not supported in version {0}." + + + + + A string like "The entity property mapping specified on type '{0}' is only supported in version {1} of the OData protocol and higher versions. It is not supported in version {2}." + + + + + A string like "Geography and Geometry types are only supported in version 3.0 of the OData protocol and higher versions. They are not supported in version {0}." + + + + + A string like "The '{0}' value for the href of a link, which was either specified or computed, does not match the '{1}' value specified in the metadata of the link. When an href is specified in metadata, the href values must match." + + + + + A string like "The '{0}' value for the title of a link, which was either specified or computed, does not match the '{1}' value specified in the metadata of the link. When a title is specified in metadata, the titles must match." + + + + + A string like "The '{0}' value for the relation of a link, which was either specified or computed, does not match the '{1}' value specified in the metadata of the link. When a relation is specified in metadata, the relations must match." + + + + + A string like "The '{0}' value for the media type of a link, which was either specified or computed, does not match the '{1}' value specified in the metadata of the link. If a media type is specified in metadata, the media types must match." + + + + + A string like "An annotation of type string was expected for the '{{http://schemas.microsoft.com/ado/2007/08/dataservices/metadata}}:{0}' annotation, but an annotation of type '{1}' was found." + + + + + A string like "The '{0}' value for the term of a category, which was either specified or computed, does not match the value '{1}' specified in the ATOM metadata of the category. When a term is specified in Atom metadata, the terms must match." + + + + + A string like "The '{0}' value for the scheme of a category, which was either specified or computed, does not match the value '{1}' specified in the ATOM metadata of the category. When a scheme is specified in Atom metadata, the schemes must match." + + + + + A string like "The text kind '{1}' specified by the atom metadata property '{0}' conflicts with the text kind '{2}' mapped to this property by using entity property mapping. When both the metadata and the entity property mapping specify text kinds, those text kinds must be equal." + + + + + A string like "The value '{1}' specified by the atom metadata property '{0}' conflicts with the value '{2}' mapped to this property by using entity property mapping. When both the metadata and the entity property mapping specify a value, these values must be equal." + + + + + A string like "The content type '{0}' is not supported when writing raw values." + + + + + A string like "Cannot set message headers for the invalid payload kind '{0}'." + + + + + A string like "The payload kind '{0}' used in the last call to ODataUtils.SetHeadersForPayload is incompatible with the payload being written, which is of kind '{1}'." + + + + + A string like "The stream property '{0}' cannot be written to the payload as a top level property." + + + + + A string like "The ODataMessageWriter.WriteProperty method was called with an owning type '{0}' of kind '{1}'. The owning type of a property can only be of kind Complex or Entity." + + + + + A string like "The ODataMessageWriter.WriteProperty method was called with a producing function import with return type '{0}'. The producing function import for property payloads must return type which is either a primitive, complex, primitive collection of complex collection type." + + + + + A string like "The navigation property named '{0}' given to ODataMessageWriter.WriteEntityReferenceLinks represents a singleton property. When writing multiple entity reference links, the navigation property must be a collection." + + + + + A string like "A JsonPaddingFunctionName was specified, but the content-type '{0}' is not supported with Json Padding." + + + + + A string like "The type '{0}' specified as the collection's item type is not primitive or complex. An ODataCollectionWriter can only write collections of primitive or complex values." + + + + + A string like "Cannot create an ODataCollectionWriter for ODataFormat.{0}. Only ODataFormat.PlainXml and ODataFormat.Json are supported." + + + + + A string like "Cannot transition from state '{0}' to state '{1}'. The only valid actions in state '{0}' are to write the collection or to write nothing at all." + + + + + A string like "Cannot transition from state '{0}' to state '{1}'. The only valid actions in state '{0}' are to write an item or to write the end of the collection." + + + + + A string like "Cannot transition from state '{0}' to state '{1}'. The only valid actions in state '{0}' are to write an item or the end of the collection." + + + + + A string like "ODataCollectionWriter.WriteEnd was called in an invalid state ('{0}'); WriteEnd is only supported in states 'Start', 'Collection', and 'Item'." + + + + + A string like "A collection with name '{0}' is being written with producing function import name '{1}'. If the producing function import is specified the collection name must be either null or match the name of the function import." + + + + + A string like "The producing function import '{0}' specified for the collection writer returns type '{1}' which is not a collection of primitive or complex values. An ODataCollectionWriter can only write collections of primitive or complex values." + + + + + A string like "An invalid HTTP method '{0}' was detected for a query operation. Query operations only support the HTTP 'GET' method." + + + + + A string like "An invalid HTTP method '{0}' was detected for a request in a change set. Requests in change sets only support the HTTP methods 'POST', 'PUT', 'DELETE', 'MERGE', and 'PATCH'." + + + + + A string like "The header with name '{0}' was not present in the header collection of the batch operation." + + + + + A string like "Multiple headers with names that match '{0}', when using a case insensitive comparison, have been added. When case-insensitive header names are used, at most one header can be added for each name." + + + + + A string like "The parameter '{0}' has already been written. Duplicate parameter names are not allowed in the parameter payload." + + + + + A string like "The parameter '{0}' is of Edm type kind '{1}'. You cannot call WriteValue on a parameter that is not of Edm type kinds 'Primitive' or 'Complex'." + + + + + A string like "The value for parameter '{0}' is of type '{1}'. WriteValue can only write null, ODataComplexValue and primitive types that are not Stream type." + + + + + A string like "The parameter '{0}' is of Edm type kind '{1}'. You cannot call CreateCollectionWriter on a parameter that is not of Edm type kind 'Collection'." + + + + + A string like "The name '{0}' is not a recognized parameter name for function import '{1}'." + + + + + A string like "The parameters {0} of the function import '{1}' could not be found when writing the parameter payload. All parameters present in the function import must be written to the parameter payload." + + + + + A string like "The current batch message contains too many parts. Only batch messages with a maximum number of '{0}' query operations and change sets are allowed." + + + + + A string like "The current change set contains too many operations. Only change sets with a maximum number of '{0}' operations are allowed." + + + + + A string like "The content ID '{0}' was found more than once in the same change set. Content IDs have to be unique across all operations of a change set." + + + + + A string like "The relative URI '{0}' was specified in a batch operation, but a base URI was not specified for the batch writer or batch reader." + + + + + A string like "The relative URI '{0}' was specified in a batch operation, but a base URI was not specified for the batch writer or batch reader. When the relative URI is a reference to a content ID, the content ID does not exist in the current change set." + + + + + A string like "The method CreateOperationRequestMessage was called in state '{0}', which is not allowed. CreateOperationRequestMessage can only be called in state 'Operation'." + + + + + A string like "The method CreateOperationResponseMessage was called in state '{0}', which is not allowed. CreateOperationResponseMessage can only be called in state 'Operation'." + + + + + A string like "ODataBatchReader.ReadAsync or ODataBatchReader.Read was called in an invalid state. No further calls can be made to the reader in state '{0}'." + + + + + A string like "The current batch message contains too many parts. A maximum number of '{0}' query operations and change sets are allowed in a batch message." + + + + + A string like "The current change set contains too many operations. A maximum number of '{0}' operations are allowed in a change set." + + + + + A string like "The content ID '{0}' was found more than once in the same change set. Content IDs have to be unique across all operations of a change set." + + + + + A string like "The message header '{0}' is invalid. The header value must be of the format '<header name>: <header value>'." + + + + + A string like "The request line '{0}' is invalid. The request line at the start of each operation must be of the format 'HttpMethod RequestUrl HttpVersion'." + + + + + A string like "The response line '{0}' is invalid. The response line at the start of each operation must be of the format 'HttpVersion StatusCode StatusCodeString'." + + + + + A string like "The HTTP version '{0}' used in a batch operation request or response is not valid. The value must be '{1}'." + + + + + A string like " The HTTP status code '{0}' is invalid. An HTTP status code must be an integer value." + + + + + A string like "A missing or invalid '{0}' header was found. The '{0}' header must be specified for each batch operation, and its value must be '{1}'." + + + + + A string like "The '{0}' header value '{1}' is invalid. When this is the start of the change set, the value must be '{2}'; otherwise it must be '{3}'." + + + + + A string like "The content length header '{0}' is not valid. The content length header must be a valid Int32 literal and must be greater than or equal to 0." + + + + + A string like "The header '{0}' was specified multiple times. Each header must appear only once in a batch part." + + + + + A string like "Invalid multi-byte encoding '{0}' detected. Multi-byte encodings other than UTF-8 are only supported for operation payloads. They are not supported in batch or change set parts." + + + + + A string like "Too many white spaces after a boundary delimiter and before the terminating line feed. For security reasons, the total number of characters for a boundary including white spaces must not exceed {0}." + + + + + A string like "The MIME type '{0}' is invalid or unspecified." + + + + + A string like "The MIME type '{0}' requires a '/' character between type and subtype, such as 'text/plain'." + + + + + A string like "The MIME type '{0}' requires a subtype definition." + + + + + A string like "The MIME type is missing a parameter value for a parameter with the name '{0}'." + + + + + A string like "An error occurred when parsing the HTTP header '{0}'. The header value '{1}' is incorrect at position '{2}' because the escape character '{3}' is not inside a quoted-string." + + + + + A string like "An error occurred when parsing the HTTP header '{0}'. The header value '{1}' is incorrect at position '{2}' because it terminates with the escape character '{3}'. In a quoted-string, the escape characters must always be followed by a character." + + + + + A string like "An error occurred when parsing the HTTP header '{0}'. The header value '{1}' is incorrect at position '{2}' because the closing quote character was not found for the quoted-string." + + + + + A string like "An error occurred when parsing the HTTP header '{0}'. The header value '{1}' is incorrect at position '{2}' because the character '{3}' is not allowed in a quoted-string. For more information, see RFC 2616, Sections 3.6 and 2.2." + + + + + A string like "The MIME type '{0}' requires a semi-colon character (';') before a parameter definition." + + + + + A string like "An invalid quality value was detected in the header string '{0}'; quality values must start with '0' or '1' but not with '{1}'." + + + + + A string like "An invalid quality value '{0}' was detected in the header string '{1}'; quality values must be in the range [0, 1]." + + + + + A string like "An error occurred when converting the character '{0}' to an integer." + + + + + A string like "The separator ',' was missing between charset values in the header '{0}'." + + + + + A string like "A separator character was missing between charset values in the header '{0}'." + + + + + A string like "An invalid (empty) charset name found in the header '{0}'." + + + + + A string like "An unexpected end of the q-Value was detected in the header '{0}'." + + + + + A string like "The expected literal '{0}' was not found at position '{1}' in the string '{2}'." + + + + + A string like "The string '{0}' cannot be converted into a supported HTTP method. The only supported HTTP methods are GET, DELETE, PUT, POST, PATCH and MERGE." + + + + + A string like "The specified content type '{0}' contains either no media type or more than one media type, which is not allowed. You must specify exactly one media type as the content type." + + + + + A string like "An error occurred when parsing the HTTP header '{0}'. The header value '{1}' is incorrect at position '{2}' because '{3}' is not a recognized separator. The supported separators are ',', ';', and '='." + + + + + A string like "An error occurred when parsing the HTTP header '{0}'. The header value '{1}' is incorrect at position '{2}' because a token is expected but a quoted-string is found instead." + + + + + A string like "An error occurred when parsing the HTTP header '{0}'. The header value '{1}' is incorrect at position '{2}' because a token or a quoted-string is expected at this position but were not found." + + + + + A string like "An error occurred when parsing the HTTP header '{0}'. The header value '{1}' is incorrect at position '{2}' because '{3}' is not a valid separator after a quoted-string." + + + + + A string like "An error occurred when parsing the HTTP header '{0}'. The header value '{1}' is incorrect at position '{2}' because the header value should not end with the separator '{3}'." + + + + + A string like "The character set '{0}' is not supported." + + + + + A string like "A supported MIME type could not be found that matches the acceptable MIME types for the request. The supported type(s) '{0}' do not match any of the acceptable MIME types '{1}'." + + + + + A string like "A supported MIME type could not be found that matches the content type of the response. None of the supported type(s) '{0}' matches the content type '{1}'." + + + + + A string like "The specified content type '{0}' contains either no media type or more than one media type, which is not allowed. You must specify exactly one media type as the content type." + + + + + A string like "The content type '{0}' specifies a batch payload; however, the payload either does not include a batch boundary or includes more than one boundary. In OData, batch payload content types must specify exactly one batch boundary in the '{1}' parameter of the content type." + + + + + A string like "The '{0}' value provided for the EntityPropertyMappingAttribute is not valid." + + + + + A string like "The TargetName property path '{0}' set in the EntityPropertyMappingAttribute is not valid." + + + + + A string like "The value '{0}' of the targetNamespaceUri parameter provided to the EntityPropertyMappingAttribute does not have a valid URI format." + + + + + A string like "The PropertyName property value '{1}' set in the EntityPropertyMappingAttribute on type '{0}' is not valid." + + + + + A string like "The property '{0}' provided at the end of the PropertyName property of the EntityPropertyMappingAttribute on a type is not a primitive type or a collection type." + + + + + A string like "The property '{0}' provided in the middle of the PropertyName property of the EntityPropertyMappingAttribute on a type is not a complex type." + + + + + A string like "More than one EntityPropertyMappingAttribute on type '{0}' have a 'PropertyName' value '{1}'. In OData, an entity property cannot be mapped more than once." + + + + + A string like "The property '{0}' on type '{1}' is not present." + + + + + A string like "The property '{0}' defined on type '{1}' is not present in the instance of the type." + + + + + A string like "The property '{0}' on the type '{1}' is of the type 'Edm.Stream'. Stream properties cannot be mapped with an entity property mapping." + + + + + A string like "The property '{0}' on the type '{1}' is a spatial type. Spatial type properties cannot be mapped with an entity property mapping." + + + + + A string like "The open property '{0}' on the type '{1}' is a spatial type. Spatial type properties cannot be mapped with an entity property mapping." + + + + + A string like "The open property '{0}' on the type '{1}' does not have a primitive type. Only open primitive properties can be mapped with an entity property mapping." + + + + + A string like "The property '{0}' on the type '{1}' is a collection. Collection properties cannot be mapped with an entity property mapping." + + + + + A string like "The TargetName property path '{0}' set in the EntityPropertyMappingAttribute is not valid because it contains an empty segment." + + + + + A string like "The TargetName property paths '{0}' and '{1}' set in two EntityPropertyMappingAttribute instances are invalid because they would result in mixed content. Mixed content produced by entity property mappings is not supported." + + + + + A string like "The attribute identifier '{0}' is provided in the middle of the 'TargetName' property of EntityPropertyMappingAttribute." + + + + + A string like "More than one EntityPropertyMappingAttribute on the type '{0}' have the same 'TargetName' value '{1}'. The conflicting properties are '{2}' and '{3}'. In OData, target names of entity property mappings must be unique on a given type." + + + + + A string like "The property value corresponding to '{0}' property in SyndicationItemProperty could not be converted to the type DateTimeOffset." + + + + + A string like "The collection property '{0}' has no items but is mapped to the author element. Only non-empty collection properties can be mapped to the author element in an entry." + + + + + A string like "The property '{0}' on type '{1}' that is mapped to '{2}' has a 'null' value. Properties that are mapped to attributes cannot be null." + + + + + A string like "'{0}' is not a valid value for 'atom:link/@length' attribute. " + + + + + A string like "The value '{0}' for the property '{1}' on type '{2}' that is mapped to 'link/@rel' is not valid. Properties that are mapped to 'link/@rel' cannot have values that are Atom-defined simple identifiers, such as alternate, related, self, enclosure, via, describedby, service, edit, or edit-media; cannot be an Atom-defined simple identifier following the IANA namespace, such as 'http://www.iana.org/assignments/relation/edit'; and cannot begin with the namespace 'http://schemas.microsoft.com/ado/2007/08/dataservices'." + + + + + A string like "The value '{0}' for the property '{1}' on type '{2}' that is mapped to 'category/@scheme' is not valid. Properties that are mapped to 'category/@scheme' must have values that are URIs and cannot begin with the namespace 'http://schemas.microsoft.com/ado/2007/08/dataservices'." + + + + + A string like "Expected literal type token but found token '{0}'." + + + + + A string like "The relative URI '{0}' cannot be escaped because it starts with '{1}' and a base URI is not available. Relative URIs without a base URI cannot start with '/', '\\' or '..'." + + + + + A string like "The type '{0}' is not supported when converting to a URI literal." + + + + + A string like "The format '{0}' is not supported when converting to a URI literal. The supported formats are ODataFormat.JsonLight and ODataFormat.VerboseJson." + + + + + A string like "Type verification failed. Expected type '{0}' but received the value '{1}'." + + + + + A string like "Type verification failed. Expected type '{0}' but received non-matching null value with associated type '{1}'." + + + + + A string like "Type verification failed. Expected non-nullable type '{0}' but received a null value." + + + + + A string like "The value of type '{0}' could not be converted to the string representation of a raw primitive value." + + + + + A string like "A default MIME type could not be found for the requested payload in format '{0}'." + + + + + A string like "The value '{0}' of the DataServiceVersion HTTP header is invalid. Only '1.0', '2.0' and '3.0' are supported as values for the DataServiceVersion header." + + + + + A string like "The value returned by the '{0}' property cannot be modified until the end of the owning entry is reported by the reader." + + + + + A string like "A null value was found with the expected type '{0}[Nullable=False]'. The expected type '{0}[Nullable=False]' does not allow null values." + + + + + A string like "A null value was found for the property named '{0}', which has the expected type '{1}[Nullable=False]'. The expected type '{1}[Nullable=False]' does not allow null values." + + + + + A string like "Complex type '{1}' is a subtype of a base type '{0}'. Derived complex types are not supported." + + + + + A string like "Cannot convert a primitive value to the expected type '{0}'. See the inner exception for more details." + + + + + A string like "The base URI '{0}' specified in ODataMessageReaderSettings.BaseUri is invalid; it must be either null or an absolute URI." + + + + + A string like "An undeclared property '{0}' was found on type '{1}', which is marked as open; however, either the ODataUndeclaredPropertyBehaviorKinds.IgnoreUndeclaredValueProperty or the ODataUndeclaredPropertyBehaviorKinds.ReportUndeclaredLinkProperty setting is used. The ODataUndeclaredPropertyBehaviorKinds.IgnoreUndeclaredValueProperty or ODataUndeclaredPropertyBehaviorKinds.ReportUndeclaredLinkProperty setting cannot be used with open types." + + + + + A string like "The metadata URI '{0}' references the entity set with name '{1}'; however, the name of the expected entity set is '{2}' and does not match the entity set referenced in the metadata URI." + + + + + A string like "The metadata URI '{0}' references the entity type with name '{1}'; however, the name of the expected entity type is '{2}' which is not compatible with the entity type with name '{1}'." + + + + + A string like "The metadata URI '{0}' references the property with name '{1}' on type '{2}'; however, the name of the expected property is '{3}'." + + + + + A string like "The metadata URI '{0}' references the property with name '{1}' on type '{2}'; however, the declaring type of the expected property is '{3}'." + + + + + A string like "The metadata URI '{0}' references the function import with name '{1}'; however, the name of the expected producing function import is '{2}'." + + + + + A string like "The metadata URI '{0}' references the function import with name '{1}' which returns a collection with item type '{2}'; however, the item type of the collection returned by the expected producing function import is '{3}'." + + + + + A string like "The metadata URI '{0}' references a property with name '{1}' on type '{2}'; however, a producing function import with name '{3}' was specified." + + + + + A string like "The metadata URI '{0}' references a function import with name '{1}'; however, an expected structural property with name '{2}' on type '{3}' was specified." + + + + + A string like "The collection name '{0}' was read from the payload; however, the name of the expected producing function import is '{1}'." + + + + + A string like "The property or function import name '{0}' was read from the payload; however, the name of the expected property or function import is '{1}'." + + + + + A string like "The metadata URI '{0}' references the property with name '{1}' on type '{2}'; however, the expected property with the same name is declared on type '{3}'." + + + + + A string like "The metadata URI '{0}' references the property with name '{1}' and type '{2}' on declaring type '{3}'; however, the expected property type is '{4}'." + + + + + A string like "The metadata URI '{0}' references the function import with name '{1}'; however, the name of the expected function import is '{2}'." + + + + + A string like "The metadata URI '{0}' references the function import with name '{1}' and return type '{2}'; however, the expected return type is '{3}'." + + + + + A string like "The metadata URI '{0}' references the type '{1}'; however the expected type is '{2}'." + + + + + A string like "The metadata URI '{0}' refers to the item type '{1}' which is not assignable to the expected item type '{2}'." + + + + + A string like "The parameter '{0}' is specified with a non-null value, but no metadata is available for the reader. The expected type can only be specified if metadata is made available to the reader." + + + + + A string like "The parameter '{0}' is specified with a non-null value, but no metadata is available for the reader. The entity set can only be specified if metadata is made available to the reader." + + + + + A string like "The parameter '{0}' is specified with a non-null value, but no metadata is available for the reader. The function import can only be specified if metadata is made available to the reader." + + + + + A string like "The producing function import '{0}' for a collection reader has the return type '{1}'. Only function imports returning collections of primitive or complex values can be specified as the producing function import for a collection reader." + + + + + A string like "The expected type for a collection reader is of kind '{0}'. Only types of Primitive or ComplexType kind can be specified as the expected type for a collection reader." + + + + + A string like "The expected type for a value is of kind '{0}'. Only types of Primitive kind can be specified as the expected type for reading a value." + + + + + A string like "The wildcard '*' was detected in the value '{0}' of the content type header. The value of the content type header cannot contain wildcards." + + + + + A string like "The navigation property '{0}' with singleton cardinality on type '{1}' was specified for reading a collection of entity reference links. A navigation property with collection cardinality has to be provided." + + + + + A string like "The content type '{0}' specifies a batch payload but does not include a batch boundary. In OData, batch payload content types must specify a batch boundary in the '{1}' parameter of the content type." + + + + + A string like "ODataReader.ReadAsync or ODataReader.Read was called in an invalid state. No further calls can be made to the reader in state '{0}'." + + + + + A string like "Calling Read or ReadAsync on an ODataReader instance is not allowed in state '{0}'." + + + + + A string like "A node of type '{0}' was read from the JSON reader when trying to read the entries of a feed. A 'StartObject' or 'EndArray' node was expected." + + + + + A string like "A node of type '{0}' was read from the JSON reader when trying to read the start of a feed. A 'StartObject' or 'StartArray' node was expected." + + + + + A string like "A node of type '{0}' was read from the JSON reader when trying to read the start of an entry. A 'StartObject' node was expected." + + + + + A string like "Cannot convert a value of type 'Edm.Int32' to the expected target type '{0}'." + + + + + A string like "Cannot convert a value of type 'Edm.Double' to the expected target type '{0}'." + + + + + A string like "Cannot convert a value of type 'Edm.Boolean' to the expected target type '{0}'." + + + + + A string like "Cannot convert a value of type 'Edm.DateTime' to the expected target type '{0}'." + + + + + A string like "Cannot convert a value of type 'Edm.DateTimeOffset' to the expected target type '{0}'." + + + + + A string like "Multiple '{0}' properties were found in the value of the '__metadata' property. In OData, the value of the '__metadata' property must have at most one '{0}' property." + + + + + A string like "Multiple '{0}' properties were found in an entity reference link wrapper object. In OData, an entity reference link wrapper must have at most one '{0}' property." + + + + + A string like "Multiple '{0}' properties were found in an error or inner error object. In OData, an error or inner error must have at most one '{0}' property." + + + + + A string like "The '{0}' property in a feed wrapper has a null value. In OData, the '{0}' property must have a non-null value." + + + + + A string like "The '{0}' property in the value of the '__mediaresource' property has a null value. In OData, the '{0}' property must have a string value." + + + + + A string like "The '{0}' property for a collection of entity reference links has a null value. In OData, the '{0}' property must have a non-null string value." + + + + + A string like "The '{0}' property in a collection of entity reference links has a null value. In OData, the '{0}' property must have a non-null string value." + + + + + A string like "The '{0}' property in the value of the '__metadata' property has a null value. In OData, the '{0}' property must have a non-null string value." + + + + + A string like "A relative URI value '{0}' was specified in the payload, but no base URI for it was found. If the payload contains a relative URI a base URI must be specified on the reader settings." + + + + + A string like "A node of type '{0}' was read from the JSON reader when trying to read the items of a collection; however, a 'StartArray' node was expected." + + + + + A string like "A node of type '{0}' was read from the JSON reader when trying to read the start of an entity reference link. In OData, entity reference links must be objects." + + + + + A string like "A node of type '{0}' was read from the JSON reader when trying to read the entries of a feed; however, a 'StartArray' node was expected." + + + + + A string like "Multiple '{0}' properties were found for a stream reference value. In OData, a stream reference value can only contain one '{0}' property." + + + + + A string like "Found a node of type '{1}' when starting to read the property value, however a node of type 'StartObject' was expected. The '{0}' property of an entry metadata must have an object value. " + + + + + A string like "A node of type '{0}' was read from the JSON reader when trying to read the contents of a resource reference navigation link; however, a 'StartObject' node or 'PrimitiveValue' node with null value was expected." + + + + + A string like "A node of type '{0}' was read from the JSON reader when trying to read the contents of an entity set reference navigation link; however, a 'StartObject' or 'StartArray' node was expected." + + + + + A string like "An annotation group member with an empty name was found for the annotation group with name '{0}'. In OData, annotation group members must have a non-null, non-empty names." + + + + + A string like "An annotation group member with name '{0}' in annotation group '{1}' has an invalid value. In OData, annotation group member values must be strings; values of type '{2}' are not supported." + + + + + A string like "An annotation group member with name '{0}' in annotation group '{1}' is not an annotation. In OData, JSON Light annotation groups can only contain instance and property annotations." + + + + + A string like "Multiple annotation groups with name '{0}' were found in the payload. In OData, annotation group names must be unique for the entire payload and the same annotation group instance has to be used for its declaration and when referencing it." + + + + + A string like "Multiple operations have the same 'Metadata' property value of '{0}'. The 'Target' property value of these operations must be set to a non-null value." + + + + + A string like "Multiple operations have the same 'Metadata' property value of '{0}' and the same 'Target' property value of '{1}'. When multiple operations have the same 'Metadata' property value, their 'Target' property values must be unique." + + + + + A string like "A property with name '{0}' was found in the error object when reading a top-level error. In OData, a top-level error object must have exactly one property with name 'error'." + + + + + A string like "A property with name '{0}' was found in the message value of a top-level error. In OData, the message value of a top-level error value can only have properties with name 'lang' or 'value'." + + + + + A string like "A property with name '{0}' was found in the error value of a top-level error. In OData, a top-level error value can only have properties with name 'code', 'message', or 'innererror'." + + + + + A string like "A node of type '{0}' was read from the JSON reader when trying to read a value of a property; however, a 'PrimitiveValue' or 'StartObject' node was expected." + + + + + A string like "Multiple '{0}' properties were found in a collection. In OData, a collection can only have one '{0}' property." + + + + + A string like "The 'type' property value '{0}' is not a valid type name. The value of the 'type' property must be a non-empty string." + + + + + A string like "The 'type' property value '{0}' is not valid. The type name can only be specified when the primitive property is a spatial property. Please make sure that the type name is either a spatial type name or a non-primitive type name." + + + + + A string like "Found a node of type '{0}' when starting to read the property value; however, a node of type 'StartObject' was expected. The '__metadata' property must have an object value." + + + + + A string like "ODataCollectionReader.ReadAsync or ODataCollectionReader.Read was called in an invalid state. No further calls can be made to the reader in state '{0}'." + + + + + A string like "The current state of the collection reader is '{0}'; however, the expected item type of a collection reader can only be set in state '{1}'." + + + + + A string like "ODataParameterReader.ReadAsync or ODataParameterReader.Read was called in an invalid state. No further calls can be made to the reader in state '{0}'." + + + + + A string like "ODataParameterReader.ReadAsync or ODataParameterReader.Read was called in the '{0}' state. '{1}' must be called in this state, and the created reader must be in the 'Completed' state before the next ODataParameterReader.ReadAsync or ODataParameterReader.Read can be called." + + + + + A string like "ODataParameterReader.ReadAsync or ODataParameterReader.Read was called in the '{0}' state and '{1}' was called but the created reader is not in the 'Completed' state. The created reader must be in 'Completed' state before the next ODataParameterReader.ReadAsync or ODataParameterReader.Read can be called." + + + + + A string like "You cannot call the method '{0}' in state '{1}'." + + + + + A string like "The '{0}' method has already been called for the parameter '{1}'. Only one create reader method call is allowed for each entry, feed, or collection parameter." + + + + + A string like "The parameter '{0}' in the request payload is not a valid parameter for the function import '{1}'." + + + + + A string like "Multiple parameters with the name '{0}' were found in the request payload." + + + + + A string like "One or more parameters of the function import '{0}' are missing from the request payload. The missing parameters are: {1}." + + + + + A string like "The parameter '{0}' is of the '{1}' primitive type, which is not supported." + + + + + A string like "The parameter '{0}' is of an unsupported type kind '{1}'. The supported type kinds are Primitive, Complex, Primitive Collection and Complex Collection." + + + + + A string like "When trying to read a null collection parameter value in verbose JSON, a node of type '{0}' with the value '{1}' was read from the JSON reader; however, a 'null' value was expected." + + + + + A string like "The parameter '{0}' is specified with a null value. For JSON, the '{0}' argument to the 'CreateParameterReader' method cannot be null." + + + + + A string like "A node of type '{0}' was read from the JSON reader when trying to read the start of a collection with a collection wrapper object. A 'StartObject' node was expected." + + + + + A string like "When trying to read the start of a collection without a collection wrapper object, a node of type '{0}' was read from the JSON reader; however, a 'StartArray' node was expected." + + + + + A string like "The 'Metadata' property on an {0} must be set to a non-null value." + + + + + A string like "The 'Target' property on an {0} must be set to a non-null value." + + + + + A string like "The '{0}' enumerable contains a null item. This enumerable cannot contain null items." + + + + + A string like "The property '{0}' does not exist on type '{1}'. Make sure to only use property names that are defined by the type." + + + + + A string like "A primitive value was specified; however, a value of the non-primitive type '{0}' was expected." + + + + + A string like "Unsupported primitive type. A primitive type could not be determined for an instance of type '{0}'." + + + + + A string like "An incompatible primitive type '{0}[Nullable={1}]' was found for an item that was expected to be of type '{2}[Nullable={3}]'." + + + + + A string like "Type name '{0}' is an invalid collection type name; a collection type name must be in the format 'Collection(<itemTypeName>)'." + + + + + A string like "A type named '{0}' could not be resolved by the model. When a model is available, each type name must resolve to a valid type." + + + + + A string like "Incompatible type kinds were found. The type '{0}' was found to be of kind '{2}' instead of the expected kind '{1}'." + + + + + A string like "Incompatible type kinds were found. Found type kind '{0}' instead of the expected kind '{1}'." + + + + + A string like "A value with type '{0}' was found, which is of kind '{1}'. Value can only be of kind 'Primitive', 'Complex' or 'Collection'." + + + + + A string like "The property '{0}' cannot be a stream property because it is not of kind EdmPrimitiveTypeKind.Stream." + + + + + A string like "The ETag value '{0}' is not valid. An ETag value must be a quoted string or 'W/' followed by a quoted string. Refer to HTTP RFC 2616 for details on valid ETag formats." + + + + + A string like "A value was encountered that has a type name that is incompatible with the metadata. The value specified its type as '{0}', but the type specified in the metadata is '{1}'." + + + + + A string like "An open collection property '{0}' was found. In OData, open collection properties are not supported." + + + + + A string like "An open stream property '{0}' was found. In OData, open stream properties are not supported." + + + + + A string like "An invalid collection type kind '{0}' was found. In OData, collection types must be of kind 'Collection'." + + + + + A string like "An entry with type '{0}' was found with a media resource, but this entity type is not a media link entry (MLE). When the type is not an MLE entity, the entry cannot have a media resource." + + + + + A string like "An entry with type '{0}' was found without a media resource, but this entity type is a media link entry (MLE). When the type is an MLE entity, the entry must have a media resource." + + + + + A string like "An entry with type '{0}' was found, but it is not assignable to the expected type '{1}'. The type specified in the entry must be equal to either the expected type or a derived type." + + + + + A string like "A navigation property with name '{0}' was found on type '{1}', however this property was not declared. Open navigation properties are not supported; all navigation properties must be declared in metadata." + + + + + A string like "A property with name '{0}' on type '{1}' has kind '{2}', but it is expected to be of kind 'Navigation'." + + + + + A string like "The boundary delimiter '{0}' is invalid. A boundary delimiter must be non-null, be non-empty, and have a maximum of {1} characters." + + + + + A string like "The maximum recursion depth limit was reached. The depth of nested values in a single property cannot exceed {0}." + + + + + A string like "The depth limit for entries in nested expanded navigation links was reached. The number of nested expanded entries cannot exceed {0}." + + + + + A string like "A null value was found in a collection, but the expected collection item type '{0}' does not allow null values." + + + + + A string like "The property name '{0}' is invalid; property names must not contain any of the reserved characters {1}." + + + + + A string like "The maximum number of entity property mappings allowed on an entity type and all its base types has been exceeded. A total of {0} entity property mappings were found, but a maximum of {1} entity property mappings are allowed." + + + + + A string like "Encountered a property '{0}' that was expected to be a reference to a location in the $metadata document but does not contain a '#' character or is otherwise not a valid metadata reference property. A metadata reference property must contain a '#' and be a valid absolute URI or begin with a '#' and be a valid URI fragment." + + + + + A string like "A top level property with name '{0}' and a producing function import with name '{1}' is being written. If the producing function import is specified the property name must be either null or must match the function import name." + + + + + A string like "A duplicate value '{0}' was detected as the name of a resource collection. Resource collections must have unique names in a given workspace." + + + + + A string like "The base URI '{0}' specified in ODataMessageWriterSettings.BaseUri is invalid; it must either be null or an absolute URI." + + + + + A string like "The type '{0}' of an entry in an expanded link is not compatible with the element type '{1}' of the expanded link. Entries in an expanded link must have entity types that are assignable to the element type of the expanded link." + + + + + A string like "The ODataNavigationLink with the URL value '{0}' specifies in its 'IsCollection' property that its payload is a feed, but the actual payload is an entry." + + + + + A string like "The ODataNavigationLink with the URL value '{0}' specifies in its 'IsCollection' property that its payload is an entry, but the actual payload is a feed." + + + + + A string like "The ODataNavigationLink with the URL value '{0}' specifies in its 'IsCollection' property that its payload is a feed, but the metadata declares it as an entry." + + + + + A string like "The ODataNavigationLink with the URL value '{0}' specifies in its 'IsCollection' property that its payload is an entry, but the metadata declares it as feed." + + + + + A string like "The content of the ODataNavigationLink with the URL value '{0}' is a feed, but the metadata declares it as an entry." + + + + + A string like "The content of the ODataNavigationLink with the URL value '{0}' is an entry, but the metadata declares it as feed." + + + + + A string like "The collection property '{0}' has a null value, which is not allowed. In OData, collection properties cannot have null values." + + + + + A string like "The property '{0}[Nullable=False]' of type '{1}' has a null value, which is not allowed." + + + + + A string like "The stream property '{0}' has a null value, which is not allowed. In OData, stream properties cannot have null values." + + + + + A string like "An action or a function with metadata '{0}' was detected when writing a request; actions and functions are only supported in responses." + + + + + A string like "An association link with name '{0}' could not be written to the request payload. Association links are only supported in responses." + + + + + A string like "An stream property with name '{0}' could not be written to the request payload. Stream properties are only supported in responses." + + + + + A string like "The metadata document URI '{0}' specified in ODataMessageWriterSettings.MetadataDocumentUri is invalid; it must be either null or an absolute URI." + + + + + A string like "The ODataNavigationLink.Url property on an navigation link '{0}' is null. The ODataNavigationLink.Url property must be set to a non-null value that represents the entity or entities the navigation link references." + + + + + A string like "The ODataNavigationLink.IsCollection property on a navigation link '{0}' is null. The ODataNavigationLink.IsCollection property must be specified when writing a link into a request." + + + + + A string like "An XML node of type '{0}' was found in a string value. An element with a string value can only contain Text, CDATA, SignificantWhitespace, Whitespace or Comment nodes." + + + + + A string like "An XML node of type '{0}' was found at the root level. The root level of an OData payload must contain a single XML element and no text nodes." + + + + + A string like "The element '{0}' has non-empty content, an attribute with name {{http://schemas.microsoft.com/ado/2007/08/dataservices/metadata}}:null, and value of 'true'. When an element has an attribute with name {{http://schemas.microsoft.com/ado/2007/08/dataservices/metadata}}:null and value 'true', it must be empty." + + + + + A string like "The metadata document could not be read from the message content.\r\n{0}" + + + + + A string like "The metadata document could not be written as specified.\r\n{0}" + + + + + A string like "The value of the '{0}' attribute on type '{1}' is not allowed. Supported values are 'true' or 'false'." + + + + + A string like "The value of the '{0}' attribute on property '{1}' of type '{2}' is not allowed. Supported values are 'true' or 'false'." + + + + + A string like "The value of the '{0}' attribute on type '{1}' is not allowed. Supported values are 'text', 'html' and 'xhtml'." + + + + + A string like "The value of the '{0}' attribute on property '{1}' of type '{2}' is not allowed. Supported values are 'text', 'html' and 'xhtml'." + + + + + A string like "The required '{0}' attribute is missing on type '{1}'." + + + + + A string like "The required '{0}' attribute is missing on property '{1}' on type '{2}'." + + + + + A string like "The '{0}' attribute is not allowed on type '{1}' when a property is mapped to a non-AtomPub element." + + + + + A string like "The '{0}' attribute is not allowed on property '{1}' on type '{2}' when the property is mapped to a non-AtomPub element." + + + + + A string like "The '{0}' attribute is not allowed on type '{1}' when a property is mapped to an AtomPub element." + + + + + A string like "The '{0}' attribute is not allowed on property '{1}' on type '{2}' when the property is mapped to an AtomPub element." + + + + + A string like "The value for the annotation with namespace '{0}' and local name '{1}' is of type '{2}'. Only string values are supported." + + + + + A string like "A navigation link '{0}' was found with type 'feed', but its matching navigation property is of kind EntityReference. A navigation link with type 'feed' must match a navigation property of kind EntitySetReference." + + + + + A string like "A relative URI value '{0}' was specified in the payload, but no base URI for it was found. When the payload contains a relative URI, there must be an xml:base in the payload or else a base URI must specified in the reader settings." + + + + + A string like "A child element of the collection was named '{0}'. Each child element representing the value of the collection must be named 'element', and each must belong to the '{1}' namespace." + + + + + A string like "A root element in namespace '{0}' was found. A top-level collection must have the root element in the '{1}' namespace." + + + + + A string like "A root element in namespace '{0}' was found. A top-level property payload must have the root element in the '{1}' namespace." + + + + + A string like "The element '{0}' has non-empty content, an attribute with name {{http://schemas.microsoft.com/ado/2007/08/dataservices/metadata}}:null, and value of 'true'. When an element has an attribute with name {{http://schemas.microsoft.com/ado/2007/08/dataservices/metadata}}:null and a value of 'true', it must be empty." + + + + + A string like "The element with name '{0}' is not a valid collection item. The name of the collection item element must be 'element' and it must belong to the '{1}' namespace." + + + + + A string like "The property '{0}' on type '{1}' was found in the {{http://schemas.microsoft.com/ado/2007/08/dataservices/metadata}}:properties element, and it is declared as a navigation property. Navigation properties in ATOM must be represented as {{http://www.w3.org/2005/Atom}}:link elements." + + + + + A string like "Writing null value for the instance annotation '{0}' is not allowed. The instance annotation '{0}' has the expected type '{1}[Nullable=False]'." + + + + + A string like "A node of type '{0}' was found where a node of type 'Element' was expected. An entry must be represented as an XML element." + + + + + A string like "An element with name '{0}' in namespace '{1}' was found; however, an entry was expected. An entry must be represented as an {{http://www.w3.org/2005/Atom}}:entry element." + + + + + A string like "The 'type' attribute on element {{http://www.w3.org/2005/Atom}}:content is either missing or has an invalid value '{0}'. Only 'application/xml' and 'application/atom+xml' are supported as the value of the 'type' attribute on the {{http://www.w3.org/2005/Atom}}:content element." + + + + + A string like "An XML node '{0}' was found in the {{http://www.w3.org/2005/Atom}}:content element. The only valid child nodes of the {{http://www.w3.org/2005/Atom}}:content element are insignificant nodes and the {{http://schemas.microsoft.com/ado/2007/08/dataservices/metadata}}:properties element." + + + + + A string like "An element with name '{0}' in namespace '{1}' was found; however, a feed was expected. A feed must be represented as a {{http://www.w3.org/2005/Atom}}:feed element." + + + + + A string like "An element with name '{0}' in namespace 'http://www.w3.org/2005/Atom' was found inside the {{http://schemas.microsoft.com/ado/2007/08/dataservices/metadata}}:inline element. Only 'entry' and 'feed' elements from the 'http://www.w3.org/2005/Atom' namespace, or elements from other namespaces are allowed inside the {{http://schemas.microsoft.com/ado/2007/08/dataservices/metadata}}:inline element." + + + + + A string like "Another expanded '{0}' was found in {{http://schemas.microsoft.com/ado/2007/08/dataservices/metadata}}:inline, but it already contains an expanded feed or entry. Only one expanded feed or expanded entry is allowed in the {{http://schemas.microsoft.com/ado/2007/08/dataservices/metadata}}:inline element." + + + + + A string like "Multiple edit links were found for the stream property '{0}'. Only one edit link is allowed for a given stream property." + + + + + A string like "Multiple read links were found for the stream property '{0}'. Only one read link is allowed for a given stream property." + + + + + A string like "Multiple content type values were found for the stream property '{0}'. When a stream property is represented as two {{http://www.w3.org/2005/Atom}}:link elements that both have the 'type' attribute, then both values must be the same." + + + + + A string like "Found a stream property '{0}', but there is already another property with the same name on the entity. The stream property name cannot conflict with the name of another property." + + + + + A string like "The 'metadata' attribute on the {{http://schemas.microsoft.com/ado/2007/08/dataservices/metadata}}:{0} element is missing." + + + + + A string like "The 'target' attribute on the {{http://schemas.microsoft.com/ado/2007/08/dataservices/metadata}}:{0} element is missing." + + + + + A string like "Multiple 'link' elements with a relation of '{0}' were found on an entry. In OData, at most one link element with a '{0}' relation is allowed." + + + + + A string like "Multiple 'link' elements with a relation of '{0}' were found on a feed. In OData, at most one link element with a '{0}' relation is allowed." + + + + + A string like "Duplicate '{{{0}}}:{1}' elements were found. In OData, at most one '{{{0}}}:{1}' element is allowed." + + + + + A string like "The value of the 'type' attribute on the association link for the navigation property '{0}' is invalid. The value of the 'type' attribute on an association link must be 'application/xml'. " + + + + + A string like "Encountered an 'annotation' element with a 'target' attribute value of '{0}' and a term name of '{1}'. When an 'annotation' element occurs as a direct child of an 'entry' or 'feed' element, it must have either no 'target' attribute or a 'target' attribute with a value of '.'." + + + + + A string like "A root element with name '{0}' was found in namespace '{1}'. The root element of a service document must be named 'service' and it must belong to the 'http://www.w3.org/2007/app' namespace." + + + + + A string like "An element with name '{0}' was found in namespace 'http://www.w3.org/2007/app'. With the exception of extension elements, a service document can contain only a single {{http://www.w3.org/2007/app}}:workspace element." + + + + + A string like "An element with name '{0}' was found in namespace 'http://www.w3.org/2007/app'. A workspace element can only contain the {{http://www.w3.org/2005/Atom}}:title element, extension elements, and the {{http://www.w3.org/2007/app}}:collection element." + + + + + A string like "An element with name '{0}' was fond in namespace 'http://www.w3.org/2007/app'. A {{http://www.w3.org/2007/app}}:collection element can only contain the {{http://www.w3.org/2005/Atom}}:title element, extension elements, and the {{http://www.w3.org/2007/app}}:accept or {{http://www.w3.org/2007/app}}:categories element." + + + + + A string like "The type attribute with value '{0}' was fond on an Atom text construct element with local name '{1}'. The type attribute must be missing or else it must have a value 'text', 'html' or 'xhtml'." + + + + + A string like "Multiple '{0}' elements were found inside a '{1}' element. A '{1}' element cannot contain more than one '{0}' element." + + + + + A string like "The element with name '{0}' in namespace '{1}' is not a valid root element for an error. The root element of an error must be 'error' and must belong to the 'http://schemas.microsoft.com/ado/2007/08/dataservices/metadata' namespace." + + + + + A string like "Multiple '{{http://schemas.microsoft.com/ado/2007/08/dataservices/metadata}}:{0}' elements were found in a top-level error value. In OData, the value of a top-level error value can have no more than one '{{http://schemas.microsoft.com/ado/2007/08/dataservices/metadata}}:{0}' element" + + + + + A string like "Multiple '{{http://schemas.microsoft.com/ado/2007/08/dataservices/metadata}}:{0}' elements were found in an inner error value. In OData, the value of an inner error value can have at most one '{{http://schemas.microsoft.com/ado/2007/08/dataservices/metadata}}:{0}' element." + + + + + A string like "The element with name '{0}' in namespace '{1}' is not a valid start element for an entity reference link. The start element of an entity reference link must be 'uri' and it must belong to the 'http://schemas.microsoft.com/ado/2007/08/dataservices' namespace." + + + + + A string like "The element with name '{0}' in namespace '{1}' is not a valid start element for entity reference links. The start element of entity reference links must be 'links' and it must belong to the 'http://schemas.microsoft.com/ado/2007/08/dataservices' namespace." + + + + + A string like "Multiple '{{{0}}}:{1}' elements were found in an entity reference links element. In OData, the value of an entity reference links element must have at most one '{{{0}}}:{1}' element." + + + + + A string like "The entity property mapping with source path '{0}' uses an open complex or collection property. Open complex or collection properties cannot be read through entity property mapping." + + + + + A string like "Multiple values were found for the non-collection property '{0}' on type '{1}' that is mapped to '{2}'." + + + + + A string like "A 'fixed' attribute with the value '{0}' was found on a 'categories' element. When the 'fixed' attribute is not missing, it must have a value of either 'yes' or 'no'." + + + + + A string like "Multiple 'title' elements were found inside a '{0}' element. A '{0}' element can only contain a single {{http://www.w3.org/2005/Atom}}:title element." + + + + + A string like "The specified resource collection name '{0}' does not match the specified title '{1}' as set in AtomResourceCollectionMetadata.Title." + + + + + A string like "An invalid item type kind '{0}' was found. Items in a collection can only be of type kind 'Primitive' or 'Complex', but not of type kind '{0}'." + + + + + A string like "An item of type kind '{0}' was found in a collection that otherwise has items of type kind '{1}'. In OData, all items in a collection must have the same type kind." + + + + + A string like "An item with type name '{0}' was found in a collection of items with type name '{1}'. In OData, all items in a collection must have the same type name." + + + + + A string like "An entry of type '{0}' was found in a feed that otherwise has entries of type '{1}'. In OData, all entries in a feed must have a common base type." + + + + + A string like "The maximum number of bytes allowed to be read from the stream has been exceeded. After the last read operation, a total of {0} bytes has been read from the stream; however a maximum of {1} bytes is allowed." + + + + + A string like "The custom type resolver set in ODataMessageWriterSettings.EnableWcfDataServicesClientBehavior returned 'null' when resolving the type '{0}'. When a custom type resolver is specified, it cannot return null." + + + + + A string like "The type '{0}' was found for a primitive value. In OData, the type '{0}' is not a supported primitive type." + + + + + A string like "Incompatible primitive type kinds were found. The type '{0}' was found to be of kind '{2}' instead of the expected kind '{1}'." + + + + + A string like "Incompatible primitive type kinds were found. Found type kind '{0}' instead of the expected kind '{1}'." + + + + + A string like "A value with primitive kind '{0}' cannot be converted into a primitive object value." + + + + + A string like "The property '{0}' is not declared on the non-open type '{1}'." + + + + + A string like "Multiple annotations for term '{0}' were found on element '{1}'. Only a single annotation for the term '{0}' can be specified." + + + + + A string like "Multiple annotations for term '{0}' with qualifier '{1}' were found on element '{2}'. Only a single annotation for the term '{0}' with the qualifier '{1}' can be specified." + + + + + A string like "An annotation for term '{0}' with an invalid qualifier '{1}' was found on element '{2}'. Only a single annotation for the term '{0}' without any qualifier can be specified." + + + + + A string like "An annotation for term '{0}' with an invalid qualifier '{1}' was found on element '{2}'. A single annotation for the term '{0}' with the qualifier '{3}' is expected." + + + + + A string like "The entity set '{0}' doesn't have the 'OData.EntitySetUri' annotation. This annotation is required." + + + + + A string like "The entity set '{0}' has a URI '{1}' which has no path segments. An entity set URI suffix cannot be appended to a URI without path segments." + + + + + A string like "Neither the 'OData.EntityInstanceUri' nor the 'OData.EntitySetUriSuffix' annotation was found for entity set '{0}'. One of these annotations is required." + + + + + A string like "The entity type '{0}' is not compatible with the base type '{1}' of the provided entity set '{2}'. When an entity type is specified for an OData feed or entry reader, it has to be the same or a subtype of the base type of the specified entity set." + + + + + A string like "The parameter '{0}' is specified with a null value. For JSON Light, the '{0}' argument to the 'CreateParameterReader' method cannot be null." + + + + + A string like "The required property '{0}' was not found at the expected position in the payload. Instead, found a property named '{1}'." + + + + + A string like "The annotation '{0}' was targeting the instance annotation '{1}'. Only the '{2}' annotation is allowed to target an instance annotation." + + + + + A string like "The annotation '{0}' is found targeting the instance annotation '{1}'. However the value for the instance annotation '{1}' is not found immediately after. In JSON Light, an annotation targeting an instance annotation must be immediately followed by the value of the targeted instance annotation." + + + + + A string like "The base type '{0}' of the entity set specified for writing a JSON Light payload is not assignable from the specified entity type '{1}'. When an entity type is specified it has to be the same or derived from the base type of the entity set." + + + + + A string like "The annotation '{0}' was found. This annotation is either not recognized or not expected at the current position." + + + + + A string like "The property '{0}' has a property annotation '{1}'. This annotation is either not recognized or not expected at the current position." + + + + + A string like "An OData property annotation '{0}' was found. This property annotation is either not recognized or not expected at the current position." + + + + + A string like "A property with name '{0}' was found. This property is either not recognized or not expected at the current position." + + + + + A string like "A top-level property with name '{0}' was found in the payload; however, property and collection payloads must always have a top-level property with name '{1}'." + + + + + A string like "The 'odata.type' instance annotation value '{0}' is not a valid type name. The value of the 'odata.type' instance annotation must be a non-empty string." + + + + + A string like "The 'odata.type' instance annotation value '{0}' is not valid. The type name can only be specified when the primitive property is a spatial property. Please make sure that the type name is either a spatial type name or a non-primitive type name." + + + + + A string like "One or more property annotations for property '{0}' were found in the top-level property or collection payload without the property to annotate. Top-level property and collection payloads must contain a single property, with optional annotations for this property." + + + + + A string like "One or more property annotations for property '{0}' were found in the complex value without the property to annotate. Complex values must only contain property annotations for existing properties." + + + + + A string like "A complex property with an '{0}' property annotation was found. Complex properties must not have the '{0}' property annotation, instead the '{0}' should be specified as an instance annotation in the complex value." + + + + + A string like "The property '{0}' has a property annotation '{1}'. Primitive, complex, collection or open properties can only have an 'odata.type' property annotation." + + + + + A string like "The property with name '{0}' was found after the data property with name '{1}'. If a type is specified for a data property, it must appear before the data property." + + + + + A string like "An '{0}' annotation was read inside a JSON object representing a primitive value; type annotations for primitive values have to be property annotations of the owning property." + + + + + A string like "A top-level property with an invalid primitive null value was found. In OData, top-level properties with null value have to be serialized as JSON object with an '{0}' annotation that has the value '{1}'." + + + + + A string like "Encountered a metadata reference property '{0}' in a scope other than an entry. In OData, a property name with a '#' character indicates a reference into the metadata and is only supported for describing operations bound to an entry." + + + + + A string like "The property with name '{0}' was found in a null payload. In OData, no properties or OData annotations can appear in a null payload." + + + + + A string like "The metadata URI '{0}' references the null value; however the payload is not a null value payload." + + + + + A string like "The '{0}' instance or property annotation has a null value. In OData, the '{0}' instance or property annotation must have a non-null string value." + + + + + A string like "An '{0}' annotation was found with an invalid value. In OData, the only valid value for the '{0}' annotation is '{1}'." + + + + + A string like "The InstanceAnnotations collection has more than one instance annotations with the name '{0}'. All instance annotation names must be unique within the collection." + + + + + A string like "The metadata URI '{0}' was found in a service document payload. Metadata URIs for service documents must not have a fragment." + + + + + A string like "The metadata URI '{0}' is not valid for the expected payload kind '{1}'." + + + + + A string like "The metadata URI '{0}' references the entity set or type '{1}'. However, no entity set or type with name '{1}' is declared in the metadata." + + + + + A string like "The metadata URI '{0}' references the property '{1}' on type '{2}'. However, type '{2}' does not declare a property with name '{1}' and is not an open type. " + + + + + A string like "The metadata URI '{0}' ends with the suffix '{1}'. However, a metadata URI containing an entity set and type cast must either have no suffix or end in '{2}'." + + + + + A string like "The metadata URI '{0}' includes a type cast to entity type '{1}'. However, no entity type '{1}' is declared in the metadata." + + + + + A string like "The metadata URI '{0}' includes a type cast to entity type '{1}'. However, the entity type '{1}' is not a subtype of the entity type '{2}' which is the base type of the entity set with name '{3}'." + + + + + A string like "The metadata URI '{0}' ends with the suffix '{1}'. However, a metadata URI for an entity reference link containing a collection navigation property must end in '{2}'." + + + + + A string like "The metadata URI '{0}' references the property with name '{1}'. However, a metadata URI for an entity reference link must reference a navigation property which '{1}' is not." + + + + + A string like "The metadata URI '{0}' references the singleton navigation property with name '{1}'. However, when a metadata URI for an entity reference link ends in '{2}' it must reference a collection navigation property." + + + + + A string like "The metadata URI '{0}' has a fragment with '{1}' parts. However, valid metadata URIs must have at most '{2}' parts." + + + + + A string like "The metadata URI '{0}' references the entity set or function import '{1}'. However, no entity set or function import with name '{1}' is declared in the metadata." + + + + + A string like "A '$select' query option was found for the payload kind '{0}'. In OData, a '$select' query option is only supported for payload kinds 'Entry' and 'Feed'." + + + + + A string like "The metadata URI '{0}' has $links in an invalid position. The Metadata URI must specify the entity set, optional type segment, $links, a navigation property." + + + + + A string like "The metadata URI '{0}' references the entity set '{1}'. However, no entity set name '{1}' is declared in the metadata." + + + + + A string like "The '{0}' instance annotation in an entry object is preceded by a property or property annotation. In OData, the '{0}' instance annotation must be before any property or property annotation in an entry object." + + + + + A string like "A node of type '{0}' was read from the JSON reader when trying to read the start of the content of a feed; however, a node of type 'StartArray' was expected." + + + + + A string like "Did not find the required '{0}' property for the expected feed." + + + + + A string like "A node of type '{0}' was read from the JSON reader when trying to read the entries of a feed; however, a node of type 'StartObject' or 'EndArray' was expected." + + + + + A string like "A property annotation for a property with name '{0}' was found when reading a top-level feed. No property annotations, only instance annotations are allowed when reading top-level feeds." + + + + + A string like "A property with name '{0}' was found when reading a top-level feed. No properties other than the feed property with name '{1}' are allowed." + + + + + A string like "A property '{0}' which only has property annotations in the payload but no property value is declared to be of type '{1}'. In OData, only navigation properties and named streams can be represented as properties without values." + + + + + A string like "A property '{0}' which only has property annotations in the payload but no property value is an open property. In OData, open property must be represented as a property with value." + + + + + A string like "The stream property '{0}' has a property annotation '{1}'. Stream property can only have the 'odata.mediaEditLink', 'odata.mediaReadLink', 'odata.mediaETag' and 'odata.mediaContentType' property annotations." + + + + + A string like "A stream property '{0}' has a value in the payload. In OData, stream property must not have a value, it must only use property annotations." + + + + + A string like "The navigation property '{0}' has a property annotation '{1}'. Deferred navigation links can only have the 'odata.navigationLinkUrl' and 'odata.associationLinkUrl' property annotations." + + + + + A string like "A node of type '{0}' was read from the JSON reader when trying to read the contents of a resource reference navigation link; however, a 'StartObject' node or 'PrimitiveValue' node with null value was expected." + + + + + A string like "A node of type '{0}' was read from the JSON reader when trying to read the contents of an entity set reference navigation link; however, a 'StartArray' node was expected." + + + + + A string like "The navigation property '{0}' has a property annotation '{1}'. Expanded entry navigation links can only have the 'odata.navigationLinkUrl' and 'odata.associationLinkUrl' property annotations." + + + + + A string like "The navigation property '{0}' has a property annotation '{1}'. Expanded feed navigation links can only have the 'odata.navigationLinkUrl', 'odata.associationLinkUrl' and 'odata.nextLink' property annotations." + + + + + A string like "Multiple property annotations '{0}' were found when reading the expanded navigation link '{1}'. Only a single property annotation '{0}' can be specified for an expanded navigation link." + + + + + A string like "A property annotation '{0}' was found after the property '{1}' it is annotating. Only the 'odata.nextLink' property annotation can be used after the property it is annotating." + + + + + A string like "An annotation group member with an empty name was found for the annotation group with name '{0}'. In OData, annotation group members must have a non-null, non-empty names." + + + + + A string like "An annotation group member with name '{0}' in annotation group '{1}' has an invalid value. In OData, annotation group member values must be strings; values of type '{2}' are not supported." + + + + + A string like "The navigation property '{0}' has a property annotation '{1}'. Navigation links in request payloads can only have the '{2}' property annotation." + + + + + A string like "The resource reference navigation property '{0}' has a property annotation '{1}' with an array value. Resource reference navigation properties can only have a property annotation '{1}' with a string value." + + + + + A string like "The resource set reference navigation property '{0}' has a property annotation '{1}' with a string value. Resource set reference navigation properties can only have a property annotation '{1}' with an array value." + + + + + A string like "The value of '{0}' property annotation is an empty array. The '{0}' property annotation must have a non-empty array as its value." + + + + + A string like "The navigation property '{0}' has no expanded value and no '{1}' property annotation. Navigation property in request without expanded value must have the '{1}' property annotation." + + + + + A string like "The resource reference navigation property '{0}' has both the '{1}' property annotation as well as a value. Resource reference navigation properties can have either '{1}' property annotations or values, but not both." + + + + + A string like "An undeclared property '{0}' which only has property annotations in the payload but no property value was found in the payload. In OData, only declared navigation properties and declared named streams can be represented as properties without values." + + + + + A string like "The metadata URI '{0}' references the function import '{1}'. However, no or multiple function imports with name '{1}' are declared in the metadata." + + + + + A string like "Encountered the function import '{0}' which can not be resolved to an ODataAction or ODataFunction." + + + + + A string like "Multiple '{0}' properties were found for an operation '{1}'. In OData, an operation can have at most one '{0}' property." + + + + + A string like "Multiple 'target' properties were found for an operation '{0}'. In OData, an operation must have exactly one 'target' property." + + + + + A string like "Multiple target bindings encountered for the operation '{0}' but the 'target' property was not found in an operation value. To differentiate between multiple target bindings, each operation value must have exactly one 'target' property." + + + + + A string like "The '{0}' property of the operation '{1}' cannot have a null value." + + + + + A string like "Encountered a reference into metadata '{0}' which does not refer to the known metadata url '{1}'. Open metadata reference properties are not supported." + + + + + A string like "A relative URI value '{0}' was specified in the payload, but the {1} annotation is missing from the payload. The payload must only contain absolute URIs or the {1} annotation must be on the payload." + + + + + A string like "The {0} annotation is missing from the payload." + + + + + A string like "When trying to read the start of a collection, the expected collection property with name '{0}' was not found." + + + + + A string like "A node of type '{0}' was read from the JSON reader when trying to read the items of a collection; however, a 'StartArray' node was expected." + + + + + A string like "A property or annotation for a property with name '{0}' or an instance annotation with name '{0}' was found after reading the items of a top-level collection. No additional properties or annotations are allowed after the collection property." + + + + + A string like "An 'odata.type' annotation with value '{0}' was found for a top-level collection payload; however, top-level collections must specify a collection type." + + + + + A string like "A node of type '{0}' was read from the JSON reader when trying to read the start of an entity reference link. In JSON Light, entity reference links must be objects." + + + + + A string like "A property annotation with name '{0}' was detected when reading an entity reference link; entity reference links do not support property annotations." + + + + + A string like "An instance annotation with name '{0}' or a property annotation for the property with name '{0}' was found when reading an entity reference link. No OData property or instance annotations are allowed when reading entity reference links." + + + + + A string like "A property with name '{0}' was found when reading an entity reference link. No properties other than the entity reference link property with name '{1}' are allowed." + + + + + A string like "The required property '{0}' for an entity reference link was not found." + + + + + A string like "Multiple '{0}' properties were found in an entity reference link object; however, a single '{0}' property was expected." + + + + + A string like "The '{0}' property of an entity reference link object cannot have a null value." + + + + + A string like "A property with name '{0}' or a property annotation for a property with name '{0}' was found when trying to read a collection of entity reference links; however, a property with name '{1}' was expected." + + + + + A string like "A property annotation for a property with name '{0}' was found when reading an entity reference links payload. No property annotations, only instance annotations are allowed when reading entity reference links." + + + + + A string like "Did not find the required '{0}' property for an entity reference links payload." + + + + + A string like "The '{0}' property of an operation '{1}' in '{2}' cannot have a null value." + + + + + A string like "Found a node of type '{1}' when starting to read the '{0}' operations value, however a node of type 'StartObject' was expected. The '{0}' operations value must have an object value. " + + + + + A string like "The '{0}' operations object can only have one property for each distinct metadata; however, a duplicate of metadata '{1}' was found." + + + + + A string like "Found a node of type '{1}' when starting to read the value of the '{0}' property in '{2}'; however, a node of type 'StartArray' was expected. The value of each property in the '{2}' operations object must be an array value." + + + + + A string like "Found a node of type '{1}' when reading an item in the array value of the '{0}' property; however, a node of type 'StartObject' was expected. The items in the array value for the '{0}' property in the '{2}' operations object must be object values." + + + + + A string like "Multiple '{0}' properties were found for an operation '{1}' in '{2}'. In OData, an operation can have at most one '{0}' property." + + + + + A string like "Multiple 'target' properties were found for an operation '{0}' in '{1}'. In OData, an operation must have exactly one 'target' property." + + + + + A string like "The 'target' property was not found in an operation '{0}' in '{1}'. In OData, an operation must have exactly one 'target' property." + + + + + A string like "Multiple '{0}' properties were found in a service document. In OData, a service document must have exactly one '{0}' property." + + + + + A string like "Multiple '{0}' properties were found in a resource collection in a service document. In OData, a resource collection must have exactly one '{0}' property." + + + + + A string like "No '{0}' property was found for a service document. In OData, a service document must have exactly one '{0}' property." + + + + + A string like "Encountered a resource collection without a '{0}' property. In service documents, resource collections must contain a '{0}' property." + + + + + A string like "An unrecognized property annotation '{0}' was found in a '{1}' object in a service document. OData property annotations are not allowed in workspaces." + + + + + A string like "An unrecognized instance annotation '{0}' was found in a '{1}' object in a service document. OData instance annotations are not allowed in workspaces." + + + + + A string like "An unrecognized property annotation '{0}' was found in a resource collection in a service document. OData property annotations are not allowed in resource collections." + + + + + A string like "An unrecognized instance annotation '{0}' was found in a resource collection in a service document. OData instance annotations are not allowed in resource collections." + + + + + A string like "Encountered unexpected property '{0}' in a resource collection. In service documents, resource collections may only have '{1}' and '{2}' properties." + + + + + A string like "Encountered unexpected property '{0}' in a service document. The top level object of a service document may only have a '{1}' property." + + + + + A string like "Encountered a property annotation for the property '{0}' which wasn't immediately followed by the property. Property annotations must occur directly before the property being annotated." + + + + + A string like "One or more property annotations for property '{0}' were found in a parameter payload without the property to annotate. Parameter payloads must not contain property annotations for properties that are not in the payload." + + + + + A string like "The parameter '{0}' is of the '{1}' primitive type, which is not supported in JSON Light." + + + + + A string like "When trying to read a null collection parameter value in JSON Light, a node of type '{0}' with the value '{1}' was read from the JSON reader; however, a primitive 'null' value was expected." + + + + + A string like "The parameter '{0}' is of an unsupported type kind '{1}'. Only primitive, complex, primitive collection and complex collection types are supported." + + + + + A string like "An OData property annotation '{0}' was found in an error payload; however, error payloads do not support OData property annotations." + + + + + A string like "An OData instance annotation '{0}' was found in an error payload; however, error payloads do not support OData instance annotations." + + + + + A string like "One or more property annotations for property '{0}' were found in an error payload without the property to annotate. Error payloads must not contain property annotations for properties that are not in the payload." + + + + + A string like "A property with name '{0}' was found in the error value of a top-level error. In OData, a top-level error value can only have properties with name 'code', 'message', or 'innererror', or custom instance annotations." + + + + + A string like "The entity type '{0}' has no key properties. Entity types must define at least one key property." + + + + + A string like "The key property '{0}' on type '{1}' has a null value. Key properties must not have null values." + + + + + A string like "An ODataEntry of type '{0}' is found without key properties. When writing without a user model, each entry must contain at least one property whose 'ODataProperty.SerializationInfo.PropertyKind' set to 'ODataPropertyKind.Key'. When writing with a user model, the entity type '{0}' defined in the model must define at least one key property." + + + + + A string like "The key property '{0}' on type '{1}' has a null value. Key properties must not have null values." + + + + + A string like "The property '{0}' on type '{1}' is a non-primitive value. All key and etag properties must be of primitive types." + + + + + A string like "The primitive property '{0}' on type '{1}' has a value which is not a primitive value." + + + + + A string like "The entity instance value of type '{0}' doesn't have a value for property '{1}'. To compute an entity's metadata, its key and concurrency-token property values must be provided." + + + + + A string like "Encountered an annotation group containing a property '{0}' which is not a valid annotation name." + + + + + A string like "Encountered an annotation group named '{0}' containing a property '{1}' which is not a valid annotation name." + + + + + A string like "Encountered a reference to an annotation group named '{0}', but no annotation group with that name has been defined at this point in the payload." + + + + + A string like "Encountered multiple annotation group named '{0}'. Annotation group names must be unique within a payload." + + + + + A string like "An ODataPrimitiveValue was instantiated with a value of type '{0}'. ODataPrimitiveValue can only wrap values which can be represented as primitive EDM types." + + + + + A string like "'{0}' is an invalid instance annotation name. An instance annotation name must contain a period that is not at the start or end of the name." + + + + + A string like "'{0}' is a reserved instance annotation name because it starts with '{1}'. Reserved names are not allowed for custom instance annotations." + + + + + A string like "'{0}' is an invalid instance annotation name." + + + + + A string like "The value of the 'type' attribute on an 'annotation' element was '{0}', which is incompatible with the '{1}' attribute." + + + + + A string like "Encountered the attribute '{0}' on a non-empty 'annotation' element. If attribute value notation is used to specify the annotation's value, then there can be no body to the element." + + + + + A string like "The pattern '{0}' is not a valid pattern to match an annotation. It must contain at least one '.' separating the namespace and the name segments of an annotation." + + + + + A string like "The pattern '{0}' is not a valid pattern to match an annotation. It must not contain a namespace or name segment that is empty." + + + + + A string like "The pattern '{0}' is not a supported pattern to match an annotation. It must not contain '*' as part of a segment." + + + + + A string like "The pattern '{0}' is not a supported pattern to match an annotation. '*' must be the last segment of the pattern." + + + + + A string like "A service operation with name '{0}' could not be found in the provided model." + + + + + A string like "Found multiple service operations with name '{0}' in a single entity container. Service operation overloads are not supported." + + + + + A string like "An entity set with name '{0}' could not be found in the provided model." + + + + + A string like "Only operands with primitive types are allowed in binary operators. Found operand types '{0}' and '{1}'." + + + + + A string like "Both operands of a binary operators must have the same type. Found different operand types '{0}' and '{1}'." + + + + + A string like "The specified URI '{0}' must be absolute." + + + + + A string like "Invalid value '{0}' for $skip query option found. The $skip query option requires a non-negative integer value." + + + + + A string like "Invalid value '{0}' for $top query option found. The $top query option requires a non-negative integer value." + + + + + A string like "Invalid value '{0}' for $inlinecount query option found. Valid values are '{1}'." + + + + + A string like "Query option '{0}' was specified more than once, but it must be specified at most once." + + + + + A string like "The CLR literal of type '{0}' is not supported to be written as a Uri part." + + + + + A string like "QueryToken '{0}' is not supported to be written as a Uri part." + + + + + A string like "Expression expected at position {0} in '{1}'." + + + + + A string like "'(' expected at position {0} in '{1}'." + + + + + A string like "')' or ',' expected at position {0} in '{1}'." + + + + + A string like "')' or operator expected at position {0} in '{1}'." + + + + + A string like "Expecting a Star token but got: '{0}'." + + + + + A string like "The range variable '{0}' has already been declared." + + + + + A string like "The URI '{0}' is not valid because it is not based on '{1}'." + + + + + A string like "The key value '{0}' was not recognized as a valid literal." + + + + + A string like "Unable to find property '{2}' on the instance type '{1}' of the structured type '{0}'." + + + + + A string like "An unsupported query token kind '{0}' was found." + + + + + A string like "Could not find an entity set for root segment '{0}'." + + + + + A string like "Type '{0}' is not an entity type. Key value can only be applied to an entity type." + + + + + A string like "Could not find a property named '{1}' on type '{0}'." + + + + + A string like "Property '{0}' is not declared on type '{1}' or is not a key property. Only key properties can be used in key lookups." + + + + + A string like "An unnamed key value was used in a key lookup on a type '{0}' which has more than one key property. Unnamed key value can only be used on a type with one key property." + + + + + A string like "A key property '{0}' was found twice in a key lookup. Each key property can be specified just once in a key lookup." + + + + + A string like "A key lookup on type '{0}' didn't specify values for all key properties. All key properties must be specified in a key lookup." + + + + + A string like "Expression of type '{0}' cannot be converted to type '{1}'." + + + + + A string like "Segment '{0}' which is a service operation returning non-queryable result has a key lookup. Only service operations returning queryable results can have a key lookup applied to them." + + + + + A string like "Service operation '{0}' of kind '{1}' returns type '{2}' which is not an entity type. Service operations of kind QueryWithMultipleResults or QueryWithSingleResult can only return entity types." + + + + + A string like "Service operation '{0}' is missing the required parameter '{1}'." + + + + + A string like "The parameter '{0}' with value '{1}' for the service operation '{2}' is not a valid literal of type '{3}'." + + + + + A string like "The MultiValue property '{0}' cannot be used in $filter or $orderby query expression. MultiValue properties are not supported with these query options." + + + + + A string like "The operand for a binary operator '{0}' is not a single value. Binary operators require both operands to be single values." + + + + + A string like "The operand for a unary operator '{0}' is not a single value. Unary operators require the operand to be a single value." + + + + + A string like "The parent value for a property access of a property '{0}' is not a single value. Property access can only be applied to a single value." + + + + + A string like "A binary operator with incompatible types was detected. Found operand types '{0}' and '{1}' for operator kind '{2}'." + + + + + A string like "A unary operator with an incompatible type was detected. Found operand type '{0}' for operator kind '{1}'." + + + + + A string like "An unknown function with name '{0}' was found. This may also be a key lookup on a navigation property, which is not allowed." + + + + + A string like "The argument for an invocation of a function with name '{0}' is not a single value. All arguments for this function must be single values." + + + + + A string like "No function signature for the function with name '{0}' matches the specified arguments. The function signatures considered are: {1}." + + + + + A string like "The system query option '{0}' is not supported." + + + + + A string like "A token of kind '{0}' was bound to the value null; this is invalid. A query token must always be bound to a non-null query node." + + + + + A string like "The value '{0}' is not a non-negative integer value. In OData, the $top query option must specify a non-negative integer value." + + + + + A string like "The value '{0}' is not a non-negative integer value. In OData, the $skip query option must specify a non-negative integer value." + + + + + A string like " The service operation '{0}' does not have an associated result kind. Without a result kind, a service operation cannot be bound." + + + + + A string like "Encountered invalid type cast. '{0}' is not assignable from '{1}'." + + + + + A string like "The parameter '{0}' is not in scope." + + + + + A string like "The Cast or IsOf expression has an invalid number of operands: number of operands is '{0}' and it should be 1 or 2." + + + + + A string like "The geo.length function has an invalid number of operands: number of operands is '{0}' and it should be 1." + + + + + A string like "The geo.intersects function has an invalid number of operands: number of operands is '{0}' and it should be 2." + + + + + A string like "The operator '{0}' is not supported in this release. " + + + + + A string like "'{0}' queries are not supported in this release." + + + + + A string like "Can only bind segments that are Navigation, Structural, Complex, or Collections. We found a segment '{0}' that isn't any of those. Please revise the query." + + + + + A string like "The '{0}' option cannot be applied to the query path. '{0}' can only be applied to a collection of entities. " + + + + + A string like "Cannot find a suitable overload for function '{0}' that takes '{1}' arguments." + + + + + A string like "Cannot compose function '{0}' to a parent doesn't represent a single value." + + + + + A string like "Found a function import for '{0}', but it is invalid for Filter/Orderby." + + + + + A string like "Found a built-in function '{0}' with a parent token. Built-in functions cannot have parent tokens. " + + + + + A string like "Found a function '{0}' on an open property. Functions on open properties are not supported." + + + + + A string like "'{0}' is not a valid InlineCount option." + + + + + A string like "The child type '{0}' in a cast was not an entity type. Casts can only be performed on entity types." + + + + + A string like "Invalid content-id '{0}' for batch reference segment." + + + + + A string like "Property '{0}' is of an unrecognized EdmPropertyKind." + + + + + A string like "Cant find the property '{0}' in the model." + + + + + A string like "Only properties specified in $expand can be traversed in $select query options. Selected item was '{0}'." + + + + + A string like "Found a type segment '{0}' that isn't an entity type." + + + + + A string like "Trying to follow type segments on a segment that isn't a type. Segment was '{0}'." + + + + + A string like "Found a system token, '{0}', while parsing a select clause." + + + + + A string like "Found an invalid segment, '{0}', while parsing a select clause." + + + + + A string like "The type '{0}' is not defined in the model." + + + + + A string like "Property '{0}' on type '{1}' is not a navigation property. Only navigation properties can be expanded." + + + + + A string like "An entity type '{0}' was given to NonEntityParameterQueryNode. Use EntityParameterQueryNode instead." + + + + + A string like "An EntityCollectionServiceOperationQueryNode was provided with a IEdmFunctionImport with return type '{0}', which is not an entity type." + + + + + A string like "A node of this kind requires the associated property to be a structural, non-collection type, but property '{0}' is not structural." + + + + + A string like "A node of this kind requires the associated property to be a structural, non-collection type, but property '{0}' is a collection." + + + + + A string like "A node of this kind requires the associated property to be a structural, collection type, but property '{0}' is not a collection." + + + + + A string like "Term '{0}' is not valid in a $select or $expand expression." + + + + + A string like "Functions are not allowed in a $select expression, but one was found in the expression '{0}'." + + + + + A string like "Top option must be an integer, its set to '{0}' instead." + + + + + A string like "Skip option must be an integer, its set to '{0}' instead." + + + + + A string like "Found system token '{0}' in select or expand clause '{1}'." + + + + + A string like "The URI '{0}' must be an absolute URI." + + + + + A string like "The result of parsing $expand contained at least {0} items, but the maximum allowed is {1}." + + + + + A string like "The result of parsing $expand was at least {0} items deep, but the maximum allowed is {1}." + + + + + A string like "The service operation '{0}' is missing a ODataServiceOperationResultKind attribute." + + + + + A string like "Multiple Service Operations with the name '{0}' were found. There can only be one Service Operation with a given name in a model." + + + + + A string like "The request URI is not valid. $links cannot be applied to the segment '{0}' since $links can only follow an entity segment." + + + + + A string like "The type '{0}' does not inherit from and is not a base type of '{1}'. The type of '{2}' must be related to the Type of the EntitySet." + + + + + A string like "Found a segment of type '{0} in an expand path, but only NavigationProperty and Type segments are allowed." + + + + + A string like "Found a segment of type '{0} in a select path, but only TypeSegment, NavigationPropertySegment, PropertySegment, OperationSegment or OpenPropertySegments are allowed." + + + + + A string like "The Entity Set of the operation '{0}' is not specified. This is most likely an error in the IEdmModel." + + + + + A string like "The target Entity Set of Navigation Property '{0}' could not be found. This is most likely an error in the IEdmModel." + + + + + A string like "The function overloads matching '{0}' are invalid. This is most likely an error in the IEdmModel." + + + + + A string like "Unable to resolve function overloads to a single function. There was more than one function in the model with name '{0}' and parameter names '{1}'." + + + + + A string like "Multiple action overloads were found with the same binding parameter for '{0}'." + + + + + A string like "The request URI is not valid. The segment '{0}' is not valid. Since the uri contains the '{1}' segment, there must be only one segment specified after that." + + + + + A string like "The request URI is not valid. The segment '{0}' must be the last segment in the URI because it is one of the following: $batch, $value, $metadata, a collection property, a named media resource, a service operation that does not return a value, or a service action." + + + + + A string like "The request URI is not valid. The segment '{0}' must refer to a navigation property since the previous segment identifier is '{1}'." + + + + + A string like "The request URI is not valid. There must a segment specified after the '{0}' segment and the segment must refer to a entity resource." + + + + + A string like "The request URI is not valid, $count cannot be applied to the segment '{0}' since $count can only follow a resource segment." + + + + + A string like "The request URI is not valid, since the segment '{0}' refers to a singleton, and the segment '{1}' can only follow a resource collection." + + + + + A string like "The request URI is not valid. Since the segment '{0}' refers to a collection, this must be the last segment in the request URI. All intermediate segments must refer to a single resource." + + + + + A string like "The request URI is not valid. The segment '{0}' cannot include key predicates, however it may end with empty parenthesis." + + + + + A string like "The segment '{1}' in the request URI is not valid. The segment '{0}' refers to a primitive property, function, or service operation, so the only supported value from the next segment is '$value'." + + + + + A string like "The type '{0}' specified in the URI is neither a base type nor a sub-type of the previously-specified type '{1}'." + + + + + A string like "Complex types can not be marked as 'Open'. Error occurred for type '{0}'." + + + + + A string like "Open navigation properties are not supported on OpenTypes. Property name: '{0}'." + + + + + A string like "The response requires that version {0} of the protocol be used, but the MaxProtocolVersion of the data service is set to {1}." + + + + + A string like "The number of keys specified in the URI does not match number of key properties for the resource '{0}'." + + + + + A string like "Resource not found for the segment '{0}'." + + + + + A string like "Batched service action '{0}' cannot be invoked because it was bound to an entity created in the same changeset." + + + + + A string like "Resource Not Found - '{0}' refers to a service operation or function which does not allow further composition." + + + + + A string like "An internal error '{0}' occurred." + + + + + A string like "A non-negative integer value was expected, but the value '{0}' is not a valid non-negative integer." + + + + + A string like "A positive integer value was expected, but the value '{0}' is not a valid positive integer." + + + + + A string like "A positive long value was expected; however, the value '{0}' is not a valid positive long value." + + + + + A string like "An identifier was expected at position {0}." + + + + + A string like "There is an unterminated string literal at position {0} in '{1}'." + + + + + A string like "Syntax error: character '{0}' is not valid at position {1} in '{2}'." + + + + + A string like "Syntax error at position {0} in '{1}'." + + + + + A string like "There is an unterminated literal at position {0} in '{1}'." + + + + + A string like "A digit was expected at position {0} in '{1}'." + + + + + A string like "Unrecognized '{0}' literal '{1}' at '{2}' in '{3}'." + + + + + A string like "Invalid JSON. An unexpected comma was found in scope '{0}'. A comma is only valid between properties of an object or between elements of an array." + + + + + A string like "Invalid JSON. Unexpected token '{0}'." + + + + + A string like "Invalid JSON. A colon character ':' is expected after the property name '{0}', but none was found." + + + + + A string like "Invalid JSON. An unrecognized escape sequence '{0}' was found in a JSON string value." + + + + + A string like "Invalid JSON. The value '{0}' is not a valid number." + + + + + A string like "Invalid JSON. A comma character ',' was expected in scope '{0}'. Every two elements in an array and properties of an object must be separated by commas." + + + + + A string like "Invalid JSON. The property name '{0}' is not valid. The name of a property cannot be empty." + + + + + A string like "An unexpected '{1}' node was found when reading from the JSON reader. A '{0}' node was expected." + + + + + A string like "Cannot read the value '{0}' for the property '{1}' as a quoted JSON string value." + + + + + A string like "Cannot read the value '{0}' as a quoted JSON string value." + + + + + A string like "Cannot read the value '{0}' as a double numeric value." + + + + + A string like "Value cannot be empty." + + + + + A string like "An asynchronous operation was requested on an IODataRequestMessage instance. For asynchronous operations to succeed, the request message instance must implement IODataRequestMessageAsync." + + + + + A string like "The IODataRequestMessageAsync.GetStreamAsync method returned null. An asynchronous method that returns a task can never return null." + + + + + A string like "The IODataRequestMessage.GetStream or IODataRequestMessageAsync.GetStreamAsync method returned a null stream value. The message can never return a null stream." + + + + + A string like "An asynchronous operation was requested on an IODataResponseMessage instance. For asynchronous operations to succeed, the response message instance must implement IODataResponseMessageAsync." + + + + + A string like "The IODataResponseMessageAsync.GetStreamAsync method returned null. An asynchronous method that returns a task can never return null." + + + + + A string like "The IODataResponseMessage.GetStream or IODataResponseMessageAsync.GetStreamAsync method returned a null stream value. The message can never return a null stream." + + + + + A string like "A writer or stream has been disposed with data still in the buffer. You must call Flush or FlushAsync before calling Dispose when some data has already been written." + + + + + A string like "Only a top-level feed can have the 'ODataFeed.Count' property value specified. Expanded links do not support inline counts." + + + + + A string like "The ODataFeed.Count must be null for request payloads. Inline counts are only supported in responses." + + + + + A string like "Cannot write a top-level feed with a writer that was created to write a top-level entry." + + + + + A string like "Cannot write a top-level entry with a writer that was created to write a top-level feed." + + + + + A string like "A synchronous operation was called on an asynchronous writer. Calls on a writer instance must be either all synchronous or all asynchronous." + + + + + A string like "An asynchronous operation was called on a synchronous writer. Calls on a writer instance must be either all synchronous or all asynchronous." + + + + + A string like "An entity reference link was written without a surrounding navigation link. The WriteEntityReferenceLink or WriteEntityReferenceLinkAsync methods can only be used when writing the content of a navigation link." + + + + + A string like "An entity reference link was written into a response. The WriteEntityReferenceLink or WriteEntityReferenceLinkAsync methods can only be used when writing a request." + + + + + A string like "A deferred link was written into a request. In requests, each navigation link must have a feed, entry, or entity reference link written into it." + + + + + A string like "More than one item was written into the content of a navigation link. In OData, a navigation link can only contain more than one item in its content when it is a navigation link, ODataNavigationLink.IsCollection set to true, and the writer is writing a request." + + + + + A string like "The ODataFeed.DeltaLink property must be null for expanded feeds. Delta link is not supported on expanded feeds." + + + + + A string like "An error occurred while processing the OData message." + + + + + A string like "An error was read from the payload. See the 'Error' property for more details." + + + + + A string like "An error occurred while parsing part of the URI." + + + + + A string like "Version 3.0 of the OData protocol is not supported by this library. Please use version 1.0 or 2.0 instead." + + + + + A string like "An ODataCollectionStart with a 'null' name was passed to the ATOM collection writer. In ATOM, an ODataCollectionStart cannot have a 'null' name." + + + + + A string like "The startEntryXmlCustomizationCallback set in ODataMessageWriterSettings.EnableWcfDataServicesClientBehavior can never return the same XmlWriter instance that was provided in its parameter." + + + + + A string like "A null value was detected in the 'AtomEntryMetadata.Authors' enumerable; the author metadata does not support null values." + + + + + A string like "A null value was detected in the 'AtomEntryMetadata.Categories' enumerable; the category metadata does not support null values." + + + + + A string like "A null value was detected in the 'AtomEntryMetadata.Contributors' enumerable; the contributor metadata does not support null values." + + + + + A string like "A null value was detected in the 'AtomEntryMetadata.Links' enumerable; the link metadata does not support null values." + + + + + A string like "The 'AtomLinkMetadata.Href' property is required and cannot be null." + + + + + A string like "The 'AtomCategoryMetadata.Term' property is required and cannot be null." + + + + + A string like "The 'AtomCategoriesMetadata.Href' property can only be set when no other property is set. When the 'Href' property is not null, the categories cannot have any 'Fixed' or 'Scheme' values, and the 'Categories' collection must be null or empty." + + + + + A string like "The ODataMessageWriter has already been used to write a message payload. An ODataMessageWriter can only be used once to write a payload for a given message." + + + + + A string like "Top-level entity reference link collection payloads are not allowed in requests." + + + + + A string like "An error cannot be written to a request payload. Errors are only supported in responses." + + + + + A string like "A service document cannot be written to request payloads. Service documents are only supported in responses." + + + + + A string like "A metadata document cannot be written to request payloads. Metadata documents are only supported in responses." + + + + + A string like "Cannot write the value 'null' in raw format." + + + + + A string like "The WriteError method or the WriteErrorAsync method on the ODataMessageWriter has already been called to write an error payload. Only a single error payload can be written with each ODataMessageWriter instance." + + + + + A string like "The WriteError method or the WriteErrorAsync method on ODataMessageWriter cannot be called after the WriteValue method or the WriteValueAsync method is called. In OData, writing an in-stream error for raw values is not supported." + + + + + A string like "No model was specified in the ODataMessageWriterSettings; a model has to be provided in the ODataMessageWriterSettings in order to write a metadata document." + + + + + A string like "No model was specified in the ODataMessageWriterSettings; a model has to be provided in the ODataMessageWriterSettings when CreateODataParameterWriter is called with a non-null function import." + + + + + A string like "Both startEntryXmlCustomizationCallback and endEntryXmlCustomizationCallback must be either null or non-null." + + + + + A string like "A synchronous operation was called on an asynchronous collection writer. All calls on a collection writer instance must be either synchronous or asynchronous." + + + + + A string like "An asynchronous operation was called on a synchronous collection writer. All calls on a collection writer instance must be either synchronous or asynchronous." + + + + + A string like "An ODataCollectionStart with an empty name was passed to the collection writer. An ODataCollectionStart cannot have an empty name." + + + + + A string like "Writing an in-stream error is not supported when writing a parameter payload." + + + + + A string like "CreateParameterWriter was called on a response message. A parameter payload is only allowed in a request message." + + + + + A string like "A synchronous operation was called on an asynchronous parameter writer. All calls on a parameter writer instance must be either synchronous or asynchronous." + + + + + A string like "An asynchronous operation was called on a synchronous parameter writer. All calls on a parameter writer instance must be either synchronous or asynchronous." + + + + + A string like "WriteStart can only be called once, and it must be called before writing anything else." + + + + + A string like "WriteValue and CreateCollectionWriter can only be called after WriteStart and before WriteEnd; they cannot be called until the previously created sub-writer is completed." + + + + + A string like "WriteEnd can only be called after WriteStart and after the previously created sub-writer has completed." + + + + + A string like "The writer is in either the 'Error' or 'Completed' state. No further writes can be performed on this writer." + + + + + A string like "ODataBatchWriter.Flush or ODataBatchWriter.FlushAsync was called while a stream being used to write operation content, obtained from the operation message by using GetStream or GetStreamAsync, was still active. This is not allowed. ODataBatchWriter.Flush or ODataBatchWriter.FlushAsync can only be called when an active stream for the operation content does not exist." + + + + + A string like "An invalid method call on ODataBatchWriter was detected. You cannot call ODataBatchWriter.WriteEndBatch with an active change set; you must first call ODataBatchWriter.WriteEndChangeset." + + + + + A string like "An invalid method call on ODataBatchWriter was detected. You cannot call ODataBatchWriter.WriteStartChangeset with an active change set; you must first call ODataBatchWriter.WriteEndChangeset." + + + + + A string like "An invalid method call on ODataBatchWriter was detected. You cannot call ODataBatchWriter.WriteEndChangeset without an active change set; you must first call ODataBatchWriter.WriteStartChangeset." + + + + + A string like "An invalid method call on ODataBatchWriter was detected. After creating the writer, the only valid methods are ODataBatchWriter.WriteStartBatch and ODataBatchWriter.FlushAsync." + + + + + A string like "An invalid method call on ODataBatchWriter was detected. After calling WriteStartBatch, the only valid methods on ODataBatchWriter are WriteStartChangeset, CreateOperationRequestMessage, CreateOperationResponseMessage, WriteEndBatch, and FlushAsync." + + + + + A string like "An invalid method call on ODataBatchWriter was detected. After calling WriteStartChangeset, the only valid methods on ODataBatchWriter are CreateOperationRequestMessage, CreateOperationResponseMessage, WriteEndChangeset, and FlushAsync." + + + + + A string like "An invalid method call on ODataBatchWriter was detected. After calling CreateOperationRequestMessage or CreateOperationResponseMessage, the only valid methods on ODataBatchWriter are WriteStartChangeset, WriteEndChangeset, WriteEndBatch, and FlushAsync." + + + + + A string like "An invalid method call on ODataBatchWriter was detected. You cannot use the batch writer while another writer is writing the content of an operation. Dispose the stream for the operation before continuing to use the ODataBatchWriter." + + + + + A string like "An invalid method call on ODataBatchWriter was detected. After writing the content of an operation, the only valid methods on ODataBatchWriter are CreateOperationRequestMessage, CreateOperationResponseMessage, WriteStartChangeset, WriteEndChangeset, WriteEndBatch and FlushAsync." + + + + + A string like "An invalid method call on ODataBatchWriter was detected. After calling WriteEndChangeset, the only valid methods on ODataBatchWriter are CreateOperationRequestMessage, CreateOperationResponseMessage, WriteStartChangeset, WriteEndBatch, and FlushAsync." + + + + + A string like "An invalid method call on ODataBatchWriter was detected. You can only call ODataBatchWriter.FlushAsync after ODataBatchWriter.WriteEndBatch has been called." + + + + + A string like "When writing a batch response, you cannot create a batch operation request message." + + + + + A string like "When writing a batch request, you cannot create a batch operation response message." + + + + + A string like "A synchronous operation was called on an asynchronous batch writer. Calls on a batch writer instance must be either all synchronous or all asynchronous." + + + + + A string like "An asynchronous operation was called on a synchronous batch writer. Calls on a batch writer instance must be either all synchronous or all asynchronous." + + + + + A string like "The WriteError and WriteErrorAsync methods on ODataMessageWriter cannot be called when a batch is being written by using ODataBatchWriter. In OData, writing an in-stream error for a batch payload is not supported." + + + + + A string like "An attempt to change the properties of the message or to retrieve the payload stream for the message has failed. Either the payload stream has already been requested or the processing of the message has been completed. In both cases, no more changes can be made to the message." + + + + + A string like "Cannot access a closed stream." + + + + + A string like "When reading a batch response, you cannot create a batch operation request message." + + + + + A string like "When reading a batch request, you cannot create a batch operation response message." + + + + + A string like "A request message for the operation has already been created. You cannot create a request message for the same operation multiple times." + + + + + A string like "A response message for the operation has already been created. You cannot create a response message for the same operation multiple times." + + + + + A string like "You cannot use a batch reader while the stream for the content of an operation is still active. You must first dispose the operation stream before further calls to the batch reader are made." + + + + + A string like "A synchronous operation was called on an asynchronous batch reader. Calls on a batch reader instance must be either all synchronous or all asynchronous." + + + + + A string like "An asynchronous operation was called on a synchronous batch reader. Calls on a batch reader instance must be either all synchronous or all asynchronous." + + + + + A string like "An operation was detected, but no message was created for it. You must create a message for every operation found in a batch or change set." + + + + + A string like "The 'Content-Type' header is missing. The 'Content-Type' header must be specified for each MIME part of a batch message." + + + + + A string like "Nested change sets in a batch payload are not supported." + + + + + A string like "Encountered an unexpected end of input while reading the batch payload." + + + + + A string like "The MIME type is missing a parameter name for a parameter definition." + + + + + A string like "The value for the Content-Type header is missing." + + + + + A string like "An IEdmTypeReference must be provided with a matching IEdmModel. No model was provided." + + + + + A string like "A built-in model was detected when trying to save annotations. Annotations can only be saved to a user-defined model." + + + + + A string like "An invalid enum value was specified for the version number." + + + + + A string like "The MIME type annotation must not have a null value." + + + + + A string like "The HTTP method annotation must not have a null value." + + + + + A string like "The 'IsAlwaysBindable' annotation cannot be set to 'true' for a non-bindable function import." + + + + + A string like "The 'IsAlwaysBindable' annotation was found with a 'true' value in a non-bindable function import. The 'IsAlwaysBindable' annotation cannot be 'true' for a non-bindable function import." + + + + + A string like "No URI value was found for an entity reference link. A single URI value was expected." + + + + + A string like "A value without a type name was found and no expected type is available. When the model is specified, each value in the payload must have a type which can be either specified in the payload, explicitly by the caller or implicitly inferred from the parent value." + + + + + A string like "An entry without a type name was found, but no expected type was specified. To allow entries without type information, the expected type must also be specified when the model is specified." + + + + + A string like "The ODataMessageReaderSettings.UndeclaredPropertyBehaviorKinds is not set to ODataUndeclaredPropertyBehaviorKinds.None. When reading request payloads, the ODataMessageReaderSettings.UndeclaredPropertyBehaviorKinds property must be set to ODataUndeclaredPropertyBehaviorKinds.None; other values are not supported." + + + + + A string like "The ODataMessageReader has already been used to read a message payload. An ODataMessageReader can only be used once to read a payload for a given message." + + + + + A string like "A top-level error cannot be read from request payloads. Top-level errors are only supported in responses." + + + + + A string like "A service document cannot be read from request payloads. Service documents are only supported in responses." + + + + + A string like "A metadata document cannot be read from request payloads. Metadata documents are only supported in responses." + + + + + A string like "The expected type for property reading is of entity collection kind. Top-level properties can only be of primitive, complex, primitive collection or complex collection kind." + + + + + A string like "The expected type for property reading is of entity kind. Top-level properties cannot be of entity type." + + + + + A string like "The expected type for property reading is Edm.Stream. Top-level properties cannot be of stream type." + + + + + A string like "A missing or empty content type header was found when trying to read a message. The content type header is required." + + + + + A string like "Top-level entity reference link collection payloads are not allowed in requests." + + + + + A string like "GetFormat was called before reading was started. GetFormat can only be called after a read method was called or a reader was created." + + + + + A string like "DetectPayloadKind or DetectPayloadKindAsync was called more than once; DetectPayloadKind or DetectPayloadKindAsync can only be called once." + + + + + A string like "Payload kind detection has not completed. Read or create methods cannot be called on the ODataMessageReader before payload kind detection is complete." + + + + + A string like "The ODataMessageReader is using the server behavior for WCF Data Services, as specified in its settings. Payload kind detection is not supported when using the WCF Data services server behavior." + + + + + A string like "A parameter payload cannot be read from a response payload. Parameter payloads are only supported in requests." + + + + + A string like "An attempt was made to modify the message. The message cannot be modified." + + + + + A string like "A synchronous operation was called on an asynchronous reader. Calls on a reader instance must be either all synchronous or all asynchronous." + + + + + A string like "An asynchronous operation was called on a synchronous reader. Calls on a reader instance must be either all synchronous or all asynchronous." + + + + + A string like "Parsing JSON feeds or entries without model is not supported." + + + + + A string like "Primitive values of type 'Edm.Decimal' and 'Edm.Int64' must be quoted in the payload. Make sure the value is quoted." + + + + + A string like "The top-level data wrapper object does not have a property 'd'. In JSON responses, a top-level data wrapper object with a 'd' property is expected." + + + + + A string like "Multiple 'd' properties were found in the top-level data wrapper object. In JSON, the top-level data wrapper object is expected to have a single 'd' property." + + + + + A string like "Did not find the required 'results' property on the object wrapping a collection in protocol version 2.0 and greater." + + + + + A string like "Multiple 'results' properties were found for a collection. In OData, a collection cannot have more than one 'results' property." + + + + + A string like "Did not find the required 'results' property on the object wrapping an entity reference link in protocol version 2.0 and greater." + + + + + A string like "Multiple 'uri' properties were found in an entity reference link object; however, a single 'uri' property was expected." + + + + + A string like "The 'uri' property of an entity reference link object cannot have a null value." + + + + + A string like "Did not find the required 'results' property on the object wrapping a feed." + + + + + A string like "Multiple '__metadata' properties were found in an entry. In OData, an entry can only contain one '__metadata' property." + + + + + A string like "Multiple 'uri' properties were found in the deferred link object; however, a single 'uri' property was expected." + + + + + A string like "The 'uri' property of a deferred link object cannot have a null value." + + + + + A string like "The 'uri' property was not found in a deferred link object. A single 'uri' property is expected." + + + + + A string like "A 'PrimitiveValue' node with non-null value was found when trying to read the value of a navigation property; however, a 'StartArray' node, a 'StartObject' node, or a 'PrimitiveValue' node with null value was expected." + + + + + A string like "Found multiple 'results' properties in the object wrapping a feed in protocol version 2.0 and greater. In OData, the feed wrapping object can only contain a single 'results' property." + + + + + A string like "Could not parse an expected stream reference value. In OData, a stream reference value must be a JSON object with a single property called '__mediaresource'." + + + + + A string like "A stream property was found in a JSON request payload. Stream properties are only supported in responses." + + + + + A string like "An annotation group with a null or empty name was found for an entry. In OData, annotation groups must have a non-null, non-empty name that is unique across the entire payload." + + + + + A string like "A JSON Light annotation group was detected when writing a request payload. In OData, JSON Light annotation groups are only supported in responses." + + + + + A string like "Parsing a JSON top-level property without a model is not supported." + + + + + A string like "Either zero or more than one top-level properties were found. A top-level property must be represented as a JSON object with exactly one property." + + + + + A string like "Multiple '__metadata' properties were found in a complex value. In OData, a complex value can only have one '__metadata' property." + + + + + A string like "A collection was found without the 'results' property. In OData, each collection must be represented as a JSON object with a property 'results'." + + + + + A string like "Multiple 'EntitySets' properties were found for a service document. In OData, a service document must have exactly one 'EntitySets' property." + + + + + A string like "No 'EntitySets' property was found for a service document. In OData, a service document must have exactly one 'EntitySets' property." + + + + + A string like "A synchronous operation was called on an asynchronous collection reader. All calls on a collection reader instance must be either synchronous or asynchronous." + + + + + A string like "An asynchronous operation was called on a synchronous collection reader. All calls on a collection reader instance must be either synchronous or asynchronous." + + + + + A string like "A synchronous operation was called on an asynchronous parameter reader. All calls on a parameter reader instance must be either synchronous or asynchronous." + + + + + A string like "An asynchronous operation was called on a synchronous parameter reader. All calls on a parameter reader instance must be either synchronous or asynchronous." + + + + + A string like "Parsing JSON collections without model is not supported." + + + + + A string like "The 'Name' property on an ODataAssociationLink must be set to a non-empty string." + + + + + A string like "The 'Url' property on an ODataAssociationLink must be set to a non-null value that represents the association or associations the link references." + + + + + A string like "An empty type name was found; the name of a type cannot be an empty string." + + + + + A string like "The 'Url' property on a resource collection must be set to a non-null value." + + + + + A string like "A resource collection without a Url was detected; a resource collection must have a non-null Url value." + + + + + A string like "A null value was detected in the items of a collection property value; non-streaming instances of collection types do not support null values as items." + + + + + A string like "The 'Name' property on an ODataNavigationLink must be set to a non-empty string." + + + + + A string like "Nested collection instances are not allowed." + + + + + A string like "An ODataStreamReferenceValue item was found in a collection property value, which is not allowed. Collection properties can only have primitive and complex values as items." + + + + + A string like "A null value was detected when enumerating the collections in a workspace. Workspace collections cannot be null." + + + + + A string like "An ODataFeed without an ID was detected; in OData, a Feed must have a non-null, non-empty ID value." + + + + + A string like "The 'ODataEntry.Properties' enumerable contains a null item. This enumerable cannot contain null items." + + + + + A string like "An ODataProperty instance without a name was detected; an ODataProperty must have a non-null, non-empty name." + + + + + A string like "No TypeName was found for an ODataComplexValue of an open property, ODataEntry or custom instance annotation, even though metadata was specified. If a model is passed to the writer, each complex value on an open property, entry or custom instance annotation must have a type name." + + + + + A string like "The ODataFeed.NextPageLink must be null for request payloads. A next link is only supported in responses." + + + + + A string like "A default stream ODataStreamReferenceValue was detected with a 'ContentType' property but without a ReadLink value. In OData, a default stream must either have both a content type and a read link, or neither of them." + + + + + A string like "A default stream ODataStreamReferenceValue was detected with a 'ReadLink' property but without a ContentType value. In OData, a default stream must either have both a content type and a read link, or neither of them." + + + + + A string like "An ODataStreamReferenceValue was detected with null values for both EditLink and ReadLink. In OData, a stream resource must have at least an edit link or a read link." + + + + + A string like "An ODataStreamReferenceValue was detected with an ETag but without an edit link. In OData, a stream resource must have an edit link to have an ETag." + + + + + A string like "An ODataStreamReferenceValue was detected with an empty string 'ContentType' property. In OData, a stream resource must either have a non-empty content type or it must be null." + + + + + A string like "An entry with an empty ID value was detected. In OData, an entry must either a non-empty ID value or no ID value." + + + + + A string like "An ODataEntityReferenceLink with a null Url was detected; an ODataEntityReferenceLink must have a non-null Url." + + + + + A string like "The 'ODataEntityReferenceLinks.Links' enumerable contains a null item. This enumerable cannot contain null items." + + + + + A string like "A JSON Padding function was specified on ODataMessageWriterSettings when trying to write a request message. JSON Padding is only for writing responses." + + + + + A string like "An Atom entry can be either a regular entry or a media link entry (MLE). This means that there cannot be data in both the {http://www.w3.org/2005/Atom}:content element, which indicates a regular entry, and the {http://schemas.microsoft.com/ado/2007/08/dataservices/metadata}:properties element, which indicates an MLE. " + + + + + A string like "An expanded feed was found in a navigation link of type entry; however, only an expanded entry can occur in a navigation link of type entry." + + + + + A string like "An expanded entry was found in a navigation link of type feed; however, only an expanded feed can occur in a navigation link of type feed." + + + + + A string like "A deferred entry was found in a navigation link of type feed; however, only a deferred feed can occur in a navigation link of type feed." + + + + + A string like "The entryXmlCustomizationCallback set in ODataMessageReaderSettings.EnableWcfDataServicesClientBehavior can never return the same XmlReader instance that was provided in its parameter." + + + + + A string like "Found a value with type name ''. Type name cannot be an empty string." + + + + + A string like "The root element of the collection cannot contain the {http://schemas.microsoft.com/ado/2007/08/dataservices/metadata}:type attribute or the {http://schemas.microsoft.com/ado/2007/08/dataservices/metadata}:null attribute." + + + + + A string like "Only collection properties that contain primitive types or complex types are supported." + + + + + A string like "The element {http://www.w3.org/2005/Atom}:content has non-empty content, and it has an attribute with name 'src'. When the {http://www.w3.org/2005/Atom}:content element has the 'src' attribute, it cannot also have content." + + + + + A string like "Multiple {http://schemas.microsoft.com/ado/2007/08/dataservices/metadata}:inline elements were found in a {http://www.w3.org/2005/Atom}:link element. Each {http://www.w3.org/2005/Atom}:link element can contain no more than one {http://schemas.microsoft.com/ado/2007/08/dataservices/metadata}:inline child element." + + + + + A string like "Found a stream property link with empty name. In OData, a stream property must have a non-empty name." + + + + + A string like "Encountered an 'annotation' element inside a nested feed. Annotations are not currently supported for nested feeds." + + + + + A string like "Encountered a 'Delta Link' element inside a nested feed. Delta Links are not supported for nested feeds." + + + + + A string like "The service document is missing the 'workspace' element. A service document must contain a single {http://www.w3.org/2007/app}:workspace element." + + + + + A string like "Multiple 'workspace' elements were found inside the service document. A service document must contain a single {http://www.w3.org/2007/app}:workspace element." + + + + + A string like "Multiple 'accept' elements were found inside a 'collection' element. A 'collection' element can only contain a single {http://www.w3.org/2007/app}:accept element." + + + + + A string like "The ODataMessageReaderSettings used to read a JSON Light payload do not specify a metadata document URI. For reading JSON Light payloads a metadata document URI is required." + + + + + A string like "ODataMessageReader.DetectPayloadKind was called for a request payload. Payload kind detection is only supported for responses in JSON Light." + + + + + A string like "Parsing JSON Light feeds or entries in requests without entity set is not supported. Pass in the entity set as a parameter to ODataMessageReader.CreateODataEntryReader or ODataMessageReader.CreateODataFeedReader method." + + + + + A string like "An attempt to read a collection request payload without specifying a producing function import or collection item type was detected. When reading collection payloads in requests, a producing function import or expected item type has to be provided." + + + + + A string like "An attempt to read an entity reference link in a request without specifying a navigation property was detected. When reading entity reference link payloads in requests, a navigation property has to be provided." + + + + + A string like "Parsing JSON Light payloads without a model is only supported for error payloads." + + + + + A string like "The 'BaseUri' on the 'ODataMessageReaderSettings' must be set to a non-null absolute URI to read JSON Light format." + + + + + A string like "An attempt to read a collection request payload without specifying a collection item type was detected. When reading collection payloads in requests, an expected item type has to be provided." + + + + + A string like "In JSON the item type must be specified when creating a collection writer." + + + + + A string like "The required instance annotation 'odata.metadata' was not found at the beginning of a response payload." + + + + + A string like "An attempt to write an entity reference link inside a navigation link after a feed has been written inside the same navigation link in a request was detected. In JSON Light requests, all entity reference links inside a navigation link have to be written before all feeds inside the same navigation link." + + + + + A string like "The ODataFeed.InstanceAnnotations collection must be empty for expanded feeds. Custom instance annotations are not supported on expanded feeds." + + + + + A string like "The ODataMessageWriterSettings used to write a JSON Light payload do not specify a metadata document URI. For writing JSON Light payloads a metadata document URI is required." + + + + + A string like "Neither an expected type nor a type name in the OData object model was provided for a complex value. When writing a request payload, either an expected type or a type name has to be specified." + + + + + A string like "Neither an expected type nor a type name in the OData object model was provided for a collection property. When writing a request payload, either an expected type or a type name has to be specified." + + + + + A string like "Found a resource collection without a name. When writing a service document in JSON Light, the Name property of a resource collection must not be null or empty." + + + + + A string like "When writing a JSON response, a user model must be specified and the entity set and entity type must be passed to the ODataMessageWriter.CreateEntryWriter method or the ODataFeedAndEntrySerializationInfo must be set on the ODataEntry or ODataFeed that is being writen." + + + + + A string like "When writing a JSON response in full metadata mode with ODataMessageWriterSettings.AutoComputePayloadMetadataInJson set to true, a user model must be specified and the entity set and entity type must be passed to the ODataMessageWriter.CreateEntryWriter method or the ODataEntry.TypeName must be set." + + + + + A string like "The collection type name for the top level collection is unknown. When writing a JSON response, the item type must be passed to the ODataMessageWriter.CreateCollectionWriter method or the ODataCollectionStartSerializationInfo must be set on the ODataCollectionStart." + + + + + A string like "The entity set name or navigation property name for the top level entity reference link is unknown. When writing a JSON response, the entity set and navigation property must be passed to the ODataMessageWriter.WriteEntityReferenceLink method or the ODataEntityReferenceLinkSerializationInfo must be set on the ODataEntityReferenceLink." + + + + + A string like "The entity set name or navigation property name for the top level entity reference link collection is unknown. When writing a JSON response, the entity set and navigation property must be passed to the ODataMessageWriter.WriteEntityReferenceLinks method or the ODataEntityReferenceLinksSerializationInfo must be set on the ODataEntityReferenceLinks." + + + + + A string like "No top-level properties were found. A top-level property or collection in JSON Light must be represented as a JSON object with exactly one property which is not an annotation." + + + + + A string like "The 'odata.type' instance annotation in a complex object is not the first property of the object. In OData, the 'odata.type' instance annotation must be the first property of the complex object." + + + + + A string like "The value specified for the spatial property was not valid. You must specify a valid spatial value." + + + + + A string like "A null metadata URI was found in the payload. Metadata URIs must not be null." + + + + + A string like "No model was specified for the ODataMessageReader. A message reader requires a model for JSON Light payload to be specified in the ODataMessageReader constructor." + + + + + A string like "The IODataJsonLightModelResolver or IODataJsonLightModelResolverAsync returned a null or a core model. The model resolver must return a valid user model." + + + + + A string like "The 'odata.type' instance annotation in an entry object is preceded by an invalid property. In OData, the 'odata.type' instance annotation must be either the first property in the JSON object or the second if the 'odata.metadata' instance annotation is present." + + + + + A string like "A property annotation was found for a top-level feed; however, top-level feeds only support instance annotations." + + + + + A string like "A stream property was found in a JSON Light request payload. Stream properties are only supported in responses." + + + + + A string like "A 'PrimitiveValue' node with non-null value was found when trying to read the value of a navigation property; however, a 'StartArray' node, a 'StartObject' node, or a 'PrimitiveValue' node with null value was expected." + + + + + A string like "An annotation group with a null or empty name was found for an entry. In OData, annotation groups must have a non-null, non-empty name that is unique across the whole payload." + + + + + A string like "A JSON Light annotation group was detected when writing a request payload. In OData, JSON Light annotation groups are only supported in responses." + + + + + A string like "A metadata reference property was found in a JSON Light request payload. Metadata reference properties are only supported in responses." + + + + + A string like "An annotation group was found at an unexpected position in the payload. Annotation groups must be the first property of the object they are annotating and may not be nested." + + + + + A string like "Encountered an entry with a type defined in an annotation group and in the entry body. The type of an entry may only be specified once." + + + + + A string like "A property annotation was found for entity reference links; however, entity reference links only support instance annotations." + + + + + A string like "An OData property annotation was found for a parameter payload; however, parameter payloads do not support OData property annotations." + + + + + A string like "When parsing a select clause a '*' segment was found before last segment of a property path. In OData, a '*' segment can only appear as last segment of a property path." + + + + + A string like "When parsing a select clause a '*' segment was found immediately after a type segment in a property path. In OData, a '*' segment cannot appear following a type segment." + + + + + A string like "Encountered an annotation group declaration for which there was no 'name' property. All annotation group declarations must specify a non-empty name in the 'name' property." + + + + + A string like "Encountered multiple 'name' properties within a single annotation group declaration. An annotation group must contain exactly one 'name' property." + + + + + A string like "Cannot create an ODataPrimitiveValue from null; use ODataNullValue instead." + + + + + A string like "An InstanceAnnotationCollection was set on an object other than ODataError. Currently, instance annotations are only supported on ODataError." + + + + + A string like "The value of an instance annotation cannot be of type ODataStreamReferenceValue." + + + + + A string like "A type name was not provided for an instance of ODataComplexValue." + + + + + A string like "A type name was not provided for an instance of ODataCollectionValue." + + + + + A string like "Encountered an 'annotation' element without a 'term' attribute. All 'annotation' elements must have a 'term' attribute." + + + + + A string like "Encountered an 'annotation' element with more than one attribute from following set: 'int', 'string', 'decimal', 'float', and 'bool'. Only one such attribute may appear on an 'annotation' element." + + + + + A string like "If ODataMessageWriterSettings.AutoComputePayloadMetadataInJson is set to true, the entity set must be specified when writing JSON with full metadata." + + + + + A string like "Setting a metadata annotation on a primitive type is not supported." + + + + + A string like "The maximum depth setting must be a number greater than zero." + + + + + A string like "Recursion depth exceeded allowed limit." + + + + + A string like "Invalid to redefine visitor in nested Any/All queries." + + + + + A string like "Bad Request: there was an error in the query syntax." + + + + + A string like "Too many segments in URI." + + + + + A string like "Inner or start path segments must be navigation properties in $select." + + + + + A string like "Found a non-path property in a select token." + + + + + A string like "Cannot construct an ExpandItem from a navigation property whose type is not an entity." + + + + + A string like "An unsupported extension query token was found." + + + + + A string like "The $filter expression must evaluate to a single boolean value." + + + + + A string like "The $orderby expression must evaluate to a single value of primitive type." + + + + + A string like "A PropertyAccessQueryToken without a parent was encountered outside of $filter or $orderby expression. The PropertyAccessQueryToken without a parent token is only allowed inside $filter or $orderby expressions." + + + + + A string like "Found a Built in function without a Function Signature." + + + + + A string like "Encountered Root segment in non-root location." + + + + + A string like "A segment without an associated type was given as input." + + + + + A string like "Any/All may only be used following a collection." + + + + + A string like "The navigation property must not be null." + + + + + A string like "A navigation property can only follow single entity nodes." + + + + + A string like "The Any/All query expression must evaluate to a single boolean value." + + + + + A string like "Cast or IsOf Function must have a type in its arguments." + + + + + A string like "The Cast and IsOf functions do not support collection arguments or types." + + + + + A string like "The geo.length function was called with a non-single-value operand." + + + + + A string like "The geo.length function was called with a non-LineString operand." + + + + + A string like "The geo.intersects function was called with a non-single-value operand." + + + + + A string like "The geo.intersects function was called with invalid arg types." + + + + + A string like "Type argument with an invalid type name." + + + + + A string like "Collection open properties are not supported in this release." + + + + + A string like "Parameter names must be unique. There is most likely an error in the model." + + + + + A string like "Found a property token that isn't a path in the select syntactic tree." + + + + + A string like "Any selection that is expanded must have the same type qualifier on both selection and expansion." + + + + + A string like "Cannot delete selection items from an AllSelection, please create the SelectExpandClause with a Partial Selection instead." + + + + + A string like "Links segments must always be followed by a navigation property." + + + + + A string like "Trying to traverse a non-normalized expand tree." + + + + + A string like "Found a path within a select or expand query option that isn't ended by a non-type segment." + + + + + A string like "Trying to parse a type segment path that is too long." + + + + + A string like "The navigation property must have a target multiplicity of 'One' or 'ZeroOrOne' to create a SingleNavigationNode." + + + + + A string like "The navigation property must have a target multiplicity of 'Many' to create a CollectionNavigationNode." + + + + + A string like "Only static Entity Set reference expressions are supported currently." + + + + + A string like "An instance of CollectionFunctionCallNode can only be created with a primitive or complex collection type. For functions returning a collection of entities, use EntityCollectionFunctionCallNode instead." + + + + + A string like "An instance of EntityCollectionFunctionCallNode can only be created with an entity collection type. For functions returning a collection of primitive or complex values, use CollectionFunctionCallNode instead." + + + + + A string like "Only call AddTerms on ExpandTermTokens that have already been expanded by ExpandTerm." + + + + + A string like "Found a segment that isn't a path while parsing the path within a select or expand query option." + + + + + A string like "A service root URI must be provided to the ODataUriParser in order to use this method." + + + + + A string like "The limit must be greater than or equal to zero" + + + + + A string like "Functions are not supported in this version. Only Actions and Service Operations are supported." + + + + + A string like "$value cannot be applied to a collection." + + + + + A string like "A feed may contain a next page link, a delta link or neither, but must not contain both." + + + + + A string like "The last segment, and only the last segment, must be a navigation property in $expand." + + + + + A string like "The last segment in a $select cannot be a TypeSegment." + + + + + A string like "An operation can only be the last segment in $select." + + + + + A string like "A navigation property can only be the last segment in $select." + + + + + A string like "No type could be computed for this Segment since there were multiple possible operations with varying return types." + + + + + A string like "The return type from the operation is not possible with the given entity set." + + + + + A string like "Please construct this SingleValueFunctionCallNode using the IEnumerable<IEdmFunctionImport> overload before accessing FunctionImports." + + + + + A string like "Please construct this SingleEntityFunctionCallNode using the IEnumerable<IEdmFunctionImport> overload before accessing FunctionImports." + + + + + A string like "Calling the wrong overload to convert named values to type." + + + + + A string like "Cannot use a non-primitive type as a parameter." + + + + + A string like "Calling the wrong overload to convert positional values to type." + + + + + A string like "Empty segment encountered in request URL. Please make sure that a valid request URL is specified." + + + + + A string like "Bad Request - Error in query syntax." + + + + + A string like "The request URI is not valid, the segment $count cannot be applied to the root of the service." + + + + + A string like "$value must not be specified for spatial values." + + + + + A string like "Error processing request stream. In batch mode, a resource can be cross-referenced only for bind/unbind operations. " + + + + + A string like "Segments with multiple key values must specify them in 'name=value' form." + + + + + A string like "Forbidden" + + + + + A string like "Found an operation bound to a non-entity type." + + + + + A string like "Value cannot be null or empty." + + + + + A string like "Found an unbalanced bracket expression." + + + + + A string like "Invalid JSON. More than one value was found at the root of the JSON content. JSON content can only have one value at the root level, which is an array, an object or a primitive value." + + + + + A string like "Invalid JSON. Unexpected end of input was found in JSON content. Not all object and array scopes were closed." + + + + + A string like "Invalid JSON. A token was not recognized in the JSON content." + + + + + A string like "Invalid JSON. Unexpected end of input reached while processing a JSON string value." + + + + + Strongly-typed and parameterized exception factory. + + + + + The exception that is thrown when a null reference (Nothing in Visual Basic) is passed to a method that does not accept it as a valid argument. + + + + + The exception that is thrown when the value of an argument is outside the allowable range of values as defined by the invoked method. + + + + + The exception that is thrown when the author has yet to implement the logic at this point in the program. This can act as an exception based TODO tag. + + + + + The exception that is thrown when an invoked method is not supported, or when there is an attempt to read, seek, or write to a stream that does not support the invoked functionality. + + + + diff --git a/TinyFileManager.NET/bin/Microsoft.Data.Services.Client.dll b/TinyFileManager.NET/bin/Microsoft.Data.Services.Client.dll new file mode 100644 index 0000000..65c265c Binary files /dev/null and b/TinyFileManager.NET/bin/Microsoft.Data.Services.Client.dll differ diff --git a/TinyFileManager.NET/bin/Microsoft.Data.Services.Client.xml b/TinyFileManager.NET/bin/Microsoft.Data.Services.Client.xml new file mode 100644 index 0000000..79ec753 --- /dev/null +++ b/TinyFileManager.NET/bin/Microsoft.Data.Services.Client.xml @@ -0,0 +1,22106 @@ + + + + Microsoft.Data.Services.Client + + + + + Class with utility methods to help with debug only code. + + + + + Checks that the method which called this helper method + was not called by any code outside of the Microsoft.Data.OData.dll. + + + The method is only called when in DEBUG builds, since it's quite expensive and we expect + all our external callers to run DEBUG builds at least sometimes. + The method is also called when compiling for FxCop analysis, as we run our official FxCop + pass on RET build and we need to check that all internal methods call this one to check for accessibility + even though only in debug builds. + + + + + Checks that the method which called this helper method + was not called by any code outside of the Microsoft.Data.OData.dll. + + Set to true if this check is called from a public method which should also be checked for non-external callers. + In that case, make sure that the calling method will not get inlined! + + The method is only called when in DEBUG builds, since it's quite expensive and we expect + all our external callers to run DEBUG builds at least sometimes. + The method is also called when compiling for FxCop analysis, as we run our official FxCop + pass on RET build and we need to check that all internal methods call this one to check for accessibility + even though only in debug builds. + + + + + Class with utility methods to deal with EDM values + + + + + Converts a primitive OData value to the corresponding . + + The primitive OData value to convert. + The for the primitive value (if available). + An for the . + + + + Gets the clr value of the edm value based on its type. + + The edm value. + The clr value + + + + Converts a floating-point edm value to a clr value + + The edm floating-point value. + Kind of the primitive. + The converted value + + + + Converts an integer edm value to a clr value. + + The integer value. + Kind of the primitive. + The converted value + + + + Convert a primitive value which didn't match any of the known values of the enumeration. + + The value to convert. + The expected primitive type or null. + The converted value. + + + + Tries to convert the given value if it is of a type specific to the client library but still able to be mapped to EDM. + + The value to convert. + The expected type of the value or null. + The converted value, if conversion was possible. + Whether or not conversion was possible. + + + + Ensures a primitive type reference for a given primitive type kind. + + The possibly null type reference. + The primitive type kind to ensure. + An instance created for the + if is null; if is not null, validates it and then returns it. + + + + Extensibility point for customizing how OData entity metadata (edit-links, IDs, ETags, etc) is built. + + + + + Gets the edit link of the entity. + + + The absolute URI of the edit link for the entity. + Or null if it is not possible to determine the edit link. + + + + + Gets the read link of the entity. + + + The absolute URI of the read link for the entity. + Or null if it is not possible to determine the read link. + + + + + Gets the ID of the entity. + + + The ID for the entity. + Or null if it is not possible to determine the ID. + + + + + Gets the ETag of the entity. + + + The ETag for the entity. + Or null if it is not possible to determine the ETag. + + + + + Gets the edit link of a stream value. + + The name of the stream property the edit link is computed for; + or null for the default media resource. + + The absolute URI of the edit link for the specified stream property or the default media resource. + Or null if it is not possible to determine the stream edit link. + + + + + Gets the read link of a stream value. + + The name of the stream property the read link is computed for; + or null for the default media resource. + + The absolute URI of the read link for the specified stream property or the default media resource. + Or null if it is not possible to determine the stream read link. + + + + + Gets the navigation link URI for the specified navigation property. + + The name of the navigation property to get the navigation link URI for. + The value of the link URI as seen on the wire or provided explicitly by the user or previously returned by the metadata builder, which may be null. + true if the value of the was seen on the wire or provided explicitly by the user or previously returned by + the metadata builder, false otherwise. This flag allows the metadata builder to determine whether a null navigation link url is an uninitialized value or a value that was set explicitly. + + The navigation link URI for the navigation property. + null if its not possible to determine the navigation link for the specified navigation property. + + + + + Gets the association link URI for the specified navigation property. + + The name of the navigation property to get the association link URI for. + The value of the link URI as seen on the wire or provided explicitly by the user or previously returned by the metadata builder, which may be null. + true if the value of the was seen on the wire or provided explicitly by the user or previously returned by + the metadata builder, false otherwise. This flag allows the metadata builder to determine whether a null association link url is an uninitialized value or a value that was set explicitly. + + The association link URI for the navigation property. + null if its not possible to determine the association link for the specified navigation property. + + + + + Get the operation target URI for the specified . + + The fully qualified name of the operation for which to get the target URI. + The binding parameter type name to include in the target, or null/empty if there is none. + + The target URI for the operation. + null if it is not possible to determine the target URI for the specified operation. + + + + + Get the operation title for the specified . + + The fully qualified name of the operation for which to get the target URI. + + The title for the operation. + null if it is not possible to determine the title for the specified operation. + + + + + Extensibility point for customizing how OData uri's are built. + + + + + Builds the base URI for the entity container. + + + The base URI for the entity container. + This can be either an absolute URI, + or relative URI which will be combined with the URI of the metadata document for the service. + null if the model doesn't have the service base URI annotation. + + + + + Builds the URI for an entity set. + + The URI to append to. + The entity set name. + The entity set URI. + + + + Appends to create the entity instance URI for the specified . + + The URI to append to + The entity instance to use. + + The entity instance URI. + + + + + Builds the edit link for a stream property. + + The URI to append to. + + The name of the stream property the link is computed for; + or null for the default media resource. + + The edit link for the stream. + + + + Builds the read link for a stream property. + + The URI to append to. + + The name of the stream property the link is computed for; + or null for the default media resource. + + The read link for the stream. + + + + Builds the navigation link for the navigation property. + + The URI to append to. + The name of the navigation property to get the navigation link URI for. + The navigation link URI for the navigation property. + + + + Builds the association link for the navigation property. + + The URI to append to. + The name of the navigation property to get the association link URI for. + The association link URI for the navigation property. + + + + Builds the operation target URI for the specified . + + The URI to append to. + The fully qualified name of the operation for which to get the target URI. + The binding parameter type name to include in the target, or null/empty if there is none. + The target URI for the operation. + + + + Builds a URI with the given type name appended as a new segment on the base URI. + + The URI to append to. + The fully qualified type name to append. + The URI with the type segment appended. + + + + Shared JSON util code for ODataLib and Server. + + + + + Determines if the given double is serialized as a string in JSON. + + The value to check. + true if the value should be written as a string, false if should be written as a JSON number. + + + + Determines if the given primitive value is of a basic type where we can rely on just the JSON representation to convey type information. + If so, we don't have to write the type name. + + The primitive value in question. + The type of the primitive value. + true if the given primitive value is of a basic JSON type, false otherwise. + + + + A simple implementation of LazyOfT since the framework version is not available in all platforms we compile this code in... + + Type to lazy create. + + + + For thread safty in creating the value. + + + + + The factory method to create the lazy instance. + + + + + Holds the lazy instance to create. + + + + + true if the factory method has been called, false otherwise. + + + + + Creates an instance of ODataLazyOfT. + + The factory method to create the lazy instance. + + + + Creates an instance of ODataLazyOfT. + + The factory method to create the lazy instance. + true if the value will be created in a thread safety, false assume single thread access to Value. + + + + Creates the value. + + + + + Creates the value if it hasn't already been created and returns the created value. + + + + + Common defintions and functions for ALL product assemblies + + + Common defintions and functions for the server and client lib + + + + Type of OutOfMemoryException. + + + Type of StackOverflowException. + + + Type of ThreadAbortException. + + + + Determines whether the specified exception can be caught and + handled, or whether it should be allowed to continue unwinding. + + to test. + + true if the specified exception can be caught and handled; + false otherwise. + + + + + List of types unsupported by the client + + + + + Test whether a type is unsupported by the client lib + + The type to test + Returns true if the type is not supported + + + + Returns collection item type name or null if the provided type name is not a collection. + + Collection type name read from payload. + Whether it is a nested (recursive) call. + Collection element type name or null if not a collection. + + The following rules are used for collection type names: + - it has to start with "Collection(" and end with ")" - trailing and leading whitespaces make the type not to be recognized as collection. + - there is to be no characters (including whitespaces) between "Collection" and "(" - otherwise it won't be recognized as collection + - collection item type name has to be a non-empty string - i.e. "Collection()" won't be recognized as collection + - nested collection - e.g. "Collection(Collection(Edm.Int32))" - are not supported - we will throw + Note the following are examples of valid type names which are not collection: + - "Collection()" + - " Collection(Edm.Int32)" + - "Collection (Edm.Int32)" + - "Collection(" + If the type name is not recognized as a collection it will be eventually passed to type resolver if it is not a known primitive type. + + + + + Convert the DataServiceProtocolVersion to ODataVersion. + + DataServiceProtocolVersion value to convert. + an ODataVersion value for the given DataServiceProtocolVersion value. + + + + Converts the given version instance to ODataVersion enum. + + Version instance containing the response payload. + ODataVersion enum value for the given version. + + + + Gets the type name (without namespace) of the specified , + appropriate as an externally-visible type name. + + Type to get name for. + The type name for . + + + + Gets the type namespace of the specified , + appropriate as an externally-visible type name. + + Type to get namespace for. + The namespace for . + + + Tries to read a WCF Data Service version string. + Text to read. + Parsed version and trailing text. + true if the version was read successfully; false otherwise. + + + + Set the message quota limits for WCF Data services server. + + Instance of ODataMessageQuotas. + + + Provides helper methods for processing HTTP requests. + + + UTF-8 encoding, without the BOM preamble. + + While a BOM preamble on UTF8 is generally benign, it seems that some MIME handlers under IE6 will not + process the payload correctly when included. + + Because the data service should include the encoding as part of the Content-Type in the response, + there should be no ambiguity as to what encoding is being used. + + For further information, see http://www.unicode.org/faq/utf_bom.html#BOM. + + + + Reads a Content-Type header and extracts the MIME type/subtype. + The Content-Type header. + The MIME type in standard type/subtype form, without parameters. + parameters of content type + + + Builds a Content-Type given the mime type and all the parameters. + The MIME type in standard type/subtype form, without parameters. + Parameters to be appended in the mime type. + content type containing the mime type and all the parameters. + + + Reads a Content-Type header and extracts the MIME type/subtype and encoding. + The Content-Type header. + The MIME type in standard type/subtype form, without parameters. + Encoding (possibly null). + parameters of content type + + + Gets the named encoding if specified. + Name (possibly null or empty). + + The named encoding if specified; the encoding for HTTP missing + charset specification otherwise. + + + See http://tools.ietf.org/html/rfc2616#section-3.4.1 for details. + + + + Reads the type and subtype specifications for a MIME type. + Text in which specification exists. + Pointer into text. + Type of media found. + Subtype of media found. + + + Reads a media type definition as used in a Content-Type header. + Text to read. + The defined by the specified + All syntactic errors will produce a 400 - Bad Request status code. + + + + Reads a token on the specified text by advancing an index on it. + + Text to read token from. + Index for the position being scanned on text. + true if the end of the text was reached; false otherwise. + + + + Skips whitespace in the specified text by advancing an index to + the next non-whitespace character. + + Text to scan. + Index to begin scanning from. + true if the end of the string was reached, false otherwise. + + + Read a parameter for a media type/range. + Text to read from. + Pointer in text. + Array with parameters to grow as necessary. + + + + Reads Mime type parameter value for a particular parameter in the Content-Type/Accept headers. + + Name of parameter. + Header text. + Parsing index in . + String representing the value of the parameter. + + + + Determines whether the specified character is a valid HTTP separator. + + Character to verify. + true if c is a separator; false otherwise. + + See RFC 2616 2.2 for further information. + + + + + Determines whether the specified character is a valid HTTP header token character. + + Character to verify. + true if c is a valid HTTP header token character; false otherwise. + + + Encoding to fall back to an appropriate encoding is not available. + + + Encoding implied by an unspecified encoding value. + See http://tools.ietf.org/html/rfc2616#section-3.4.1 for details. + + + Class to store media parameter information. + + + + Creates a new instance of MediaParameter. + + Name of the parameter. + Value of the parameter. + True if the value of the parameter is quoted, otherwise false. + + + + Gets the original value of the parameter. + + the original value of the parameter. + + + Gets the name of the parameter. + + + Value of the parameter. + + + true if the value is quoted, otherwise false. + + + Use this class to represent a media type definition. + + + Parameters specified on the media type. + + + Sub-type specification (for example, 'plain'). + + + Type specification (for example, 'text'). + + + + Initializes a new read-only instance. + + Type specification (for example, 'text'). + Sub-type specification (for example, 'plain'). + Parameters specified on the media type. + + + + Selects the encoding appropriate for this media type specification + (possibly null). + + + The encoding explicitly defined on the media type specification, or + the default encoding for well-known media types. + + + As per http://tools.ietf.org/html/rfc2616#section-3.7, the type, + subtype and parameter name attributes are case-insensitive. + + + + Returns the MIME type in standard type/subtype form, without parameters. + + + media type parameters + + + + Component for formatting literals for use in URIs, ETags, and skip-tokens. + + + + Constant table of nibble-to-hex convertion values. + + + Default singleton instance for parenthetical keys, etags, or skiptokens. + + + Default singleton instance for keys formatted as segments. + + + + Gets the literal formatter for keys. + + if set to true then the key is going to be written as a segment, rather than in parentheses. + The literal formatter for keys. + + + Converts the specified value to an encoded, serializable string for URI key. + Non-null value to convert. + value converted to a serializable string for URI key. + + + + Escapes the result accoridng to URI escaping rules. + + The result to escape. + The escaped string. + + + Converts the given byte[] into string. + byte[] that needs to be converted. + String containing hex values representing the byte[]. + + + + Formats the literal without a type prefix, quotes, or escaping. + + The non-null value to format. + The formatted literal, without type marker or quotes. + + + + Formats the literal without a type prefix or quotes, but does escape it. + + The non-null value to format. + The formatted literal, without type marker or quotes. + + + + Gets the literal formatter for URL constants. + + + + + Helper utilities that capture any deltas between ODL, the WCF DS Client, and the WCF DS Server. + + + + + Creates a new exception instance to be thrown if the value is not a type that can be formatted as a literal. + DEVNOTE: Will return a different exception depending on whether this is ODataLib, the WCF DS Server, or the WCF DS client. + + The literal value that could not be converted. + The exception that should be thrown. + + + + Tries to convert the given value to one of the standard recognized types. Used specifically for handling XML and binary types. + + The original value. + The value converted to one of the standard types. + Whether or not the value was converted. + + + + Appends the decimal marker to string form of double value if necessary. + DEVNOTE: Only used by the client and ODL, for legacy/back-compat reasons. + + Input string. + String with decimal marker optionally added. + + + + Returns whether a 'd' literal suffix to a double value based on its value. + DEVNOTE: The WCF DS client never added the 'd', but WCF DS Server and ODL do. + + The value itself. + Whether or not to append the 'd' suffix. + + + + Tries to convert an instance of System.Data.Linq.Binary to a byte array. + + The original value which might be an instance of System.Data.Linq.Binary. + The converted byte array, if it was converted. + Whether or not the value was converted. + + + + Default literal formatter implementation. + + + + If true, literals will not be URL encoded. + + + + Creates a new instance of . + + + + + Creates a new instance of . + + If true, literals will not be URL encoded. + + + Converts the specified value to an encoded, serializable string for URI key. + Non-null value to convert. + value converted to a serializable string for URI key. + + + + Escapes the result accoridng to URI escaping rules. + + The result to escape. + The escaped string. + + + + Formats the literal with a type prefix and quotes (if the type requires it). + + The value to format. + The formatted literal, with type marker if needed. + + + + Literal formatter for keys which are written as URI segments. + Very similar to the default, but it never puts the type markers or single quotes around the value. + + + + + Creates a new instance of . + + + + Converts the specified value to an encoded, serializable string for URI key. + Non-null value to convert. + value converted to a serializable string for URI key. + + + + If the string starts with a '$', prepends another '$' to escape it. + + The string value. + The string value with a leading '$' escaped, if one was present. + + + + An implementation that supports delay-loading of properties. + + + + The lock object for the delayed property loading. + + + An action that is used to create the properties for this type. + + + + Initializes a new instance of the EdmComplexTypeWithDelayLoadedProperties class. + + Namespace the entity belongs to. + Name of the entity. + The base type of this entity type. + Denotes an entity that cannot be instantiated. + An action that is used to create the properties for this type. + + + + Ensures that the properties have been loaded and can be used. + + + + + Gets the properties declared immediately within this type. + + + + + An implementation that supports delay-loading of properties. + + + + The lock object for the delayed property loading. + + + An action that is used to create the properties for this type. + + + + Initializes a new instance of the EdmEntityTypeWithDelayLoadedProperties class. + + Namespace the entity belongs to. + Name of the entity. + The base type of this entity type. + Denotes an entity that cannot be instantiated. + Denotes if the type is open. + An action that is used to create the properties for this type. + + + + Ensures that the properties have been loaded and can be used. + + + + + Gets or sets the structural properties of the entity type that make up the entity key. + + + + + Gets the properties declared immediately within this type. + + + + + Component for serializing entity key values for building identities, edit links, etc. + + + + Singleton instance of the default serializer. + + + Singleton instance of the segment-based serializer. + + + + Creates a new key serializer. + + The url convention to use. + + A new key serializer. + + + + + Appends the key expression for an entity to the given + + The type used to represent properties. + The builder to append onto. + The key properties. + The callback to get each property's name. + The callback to get each property's value. + + + + Gets the value of the key property and serializes it to a string. + + The type used to represent properties. + The callback to get the value for a property. + The key property. + The literal formatter to use. + The serialized key property value. + + + + Appends the key using the parentheses-based syntax (e.g. Customers(1)) onto the given . + + The builder to append onto. + The type used to represent properties. + The key properties. + The callback to get each property's name. + The callback to get each property's value. + + + + Default implementation of the key serializer which uses parentheses (e.g. Customers(1)). + + + + + Appends the key expression for an entity to the given + + The builder to append onto. + The type used to represent properties. + The key properties. + The callback to get each property's name. + The callback to get each property's value. + + + + Implementation of the key serializer which uses segments (e.g. Customers/1). + + + + + Creates a new instance of . + + + + + Appends the key expression for an entity to the given + + The builder to append onto. + The type used to represent properties. + The key properties. + The callback to get each property's name. + The callback to get each property's value. + + + + Appends the key for the current resource using segment-based syntax (e.g. Customers/1) onto the given . + + The builder to append onto. + The type used to represent properties. + The key properties. + The callback to get each property's value. + + + + Component for representing the url convention in use by the server, client, or codegen. + + + + + The namespace of the term to use when building value annotations for indicating the conventions used. + + + + + The name of the term to use when building value annotations for indicating the conventions used. + + + + + The string value for indicating that the key-as-segment convention is being used in annotations and headers. + + + + + The name of the request header for indicating what conventions are being used. + + + + + Whether to generate entity keys as '/'-delimited segments instead of using parenthesis. + + + + + Prevents a default instance of the class from being created. + + Whether keys should be generated as segments. + + + + Helper for creating an instance with explicit value. Should only be called from unit tests. + + Whether keys should be generated as segments. + A new UrlConvention instance with the given value. + + + + Adds the required headers for the url convention. + + The request headers to add to. + + + + Whether to generate entity keys as '/'-delimited segments instead of using parenthesis. + + + + + Class that contains all the constants for various schemas. + + + + "InitializeService" method name for service initialize. + + + id of the corresponding body + + + byte-length of the corresponding body + + + mime-type of the corresponding body + + + content disposition of the response (a hint how to handle the response) + + + 'DataServiceVersion' - HTTP header name for data service version. + + + 'MaxDataServiceVersion' - HTTP header name for maximum understood data service version. + + + + 'Prefer' - HTTP request header name for client preferences. + Refer to: http://tools.ietf.org/id/draft-snell-http-prefer-02.txt for details. + + + + Return no content Prefer header hint value. + + + Return content Prefer header hint value. + + + 'no-cache' - HTTP value for Cache-Control header. + + + 'charset' - HTTP parameter name. + + + HTTP method name for GET requests. + + + HTTP method name for POST requests. + + + Http Put Method name - basically used for updating resource. + + + HTTP method name for delete requests. + + + HTTP method name for MERGE requests. + + + HTTP method name for PATCH requests. + + + HTTP query string parameter value for expand. + + + HTTP query string parameter value for filtering. + + + HTTP query string parameter value for ordering. + + + HTTP query string parameter value for skipping elements. + + + HTTP query string parameter value for limiting the number of elements. + + + HTTP query string parameter value for counting query result set + + + HTTP query string parameter value for skipping results based on paging. + + + Property prefix for the skip token property in expanded results for a skip token + + + HTTP query string parameter value for counting query result set + + + HTTP query string parameter value for projection. + + + HTTP query string parameter for specifying the requested content-type of the response. + + + HTTP query string parameter for specifying the a callback function name for JSONP (JSON padding). + + + 'q' - HTTP q-value parameter name. + + + 'X-HTTP-Method' - HTTP header name for requests that want to tunnel a method through POST. + + + HTTP name for Accept header + + + HTTP name for Accept-Charset header + + + HTTP name for If-Match header + + + HTTP name for If-None-Match header + + + HTTP name for User-Agent header + + + multi-part keyword in content-type to identify batch separator + + + 'X-Content-Type-Options' - HTTP header for Internet Explorer 8 and 9 to specify options for content-type handling. + + + An 'X-Content-Type-Options' HTTP header argument to instruct IE8/9 not to sniff the content and instead display it according to the content-type header. + + + multi-part mixed batch separator + + + multi-part mixed changeset separator + + + 'Allow' - HTTP response header for allowed verbs. + + + HTTP name for Cache-Control header. + + + HTTP name for ETag header + + + HTTP name for location header + + + HTTP name for DataServiceId header + + + HTTP name for Status-Code header + + + multi-part mixed batch separator for response stream + + + multi-part mixed changeset separator + + + Content-Transfer-Encoding header for batch requests. + + + Http Version in batching requests and response. + + + To checks if the resource exists or not. + + + Weak etags in HTTP must start with W/. + Look in http://www.ietf.org/rfc/rfc2616.txt?number=2616 section 14.19 for more information. + + + The mime type that client wants the response to be in. + + + The character set the client wants the response to be in. + + + The name of the Cookie HTTP header + + + The Slug header name. Used by ATOM to hint the server on which MR is being POSTed. + + + MIME type for requesting any media type. + + + MIME type general binary bodies (http://www.iana.org/assignments/media-types/application/). + + + 'application' - MIME type for application types. + + + 'json' - constant for MIME JSON subtypes. + + + 'xml' - constant for MIME xml subtypes. + + + 'odata' - parameter name for JSON MIME types. + + + MIME type for changeset multipart/mixed + + + MIME type for plain text bodies. + + + 'text' - MIME type for text subtypes. + + + MIME type for XML bodies (deprecated). + + + Content-Transfer-Encoding value for batch requests. + + + Default encoding used for writing textual media link entries + + + A prefix that turns an absolute-path URI into an absolute-URI. + + + A segment name in a URI that indicates metadata is being requested. + + + A segment name in a URI that indicates a plain primitive value is being requested. + + + A segment name in a URI that indicates metadata is being requested. + + + A segment name in a URI that indicates that this is a link operation. + + + A segment name in a URI that indicates that this is a count operation. + + + A const value for the query parameter $inlinecount to set counting mode to inline + + + A const value for the query parameter $inlinecount to set counting mode to none + + + Uri method name for Enumerable.Any(). + + + Uri method name for Enumerable.All(). + + + Implicit parameter "it" used for Queryable.Where lambda. + + + "Binary" - WCF element name for binary content in XML-wrapping streams. + + + Schema Namespace prefix for atom. + + + XML element name to mark content element in Atom. + + + XML element name to mark entry element in Atom. + + + XML element name to mark feed element in Atom. + + + 'author' - XML element name for ATOM 'author' element for entries. + + + 'contributor' - XML element name for ATOM 'author' element for entries. + + + 'category' - XML element name for ATOM 'category' element for entries. + + + XML element name to mark link element in Atom. + + + 'scheme' - XML attribute name for ATOM 'scheme' attribute for categories. + + + 'term' - XML attribute name for ATOM 'term' attribute for categories. + + + XML element name to mark id element in Atom. + + + XML element name to mark link relation attribute in Atom. + + + Atom attribute that indicates the actual location for an entry's content. + + + XML element string for "next" links: [atom:link rel="next"] + + + Type of content for syndication property which can be one of Plaintext, Html or XHtml + + + Whether to keep the property value in the content section + + + TargetNamespace prefix for non-syndication mapping + + + TargetNamespace URI for non-syndication mapping + + + Target element or attribute name + + + Source property name + + + author/email + + + author/name + + + author/uri + + + published + + + rights + + + summary + + + title + + + 'updated' - XML element name for ATOM 'updated' element for entries. + + + contributor/email + + + contributor/name + + + contributor/uri + + + updated + + + Plaintext + + + HTML + + + XHTML + + + XML element name to mark href attribute element in Atom. + + + XML attribute name to mark the hreflang attribute in Atom. + + + XML element name to mark summary element in Atom. + + + XML element name to mark author/name or contributor/name element in Atom. + + + XML element name to mark author/email or contributor/email element in Atom. + + + XML element name to mark author/uri or contributor/uri element in Atom. + + + XML element name to mark published element in Atom. + + + XML element name to mark rights element in Atom. + + + XML element name to mark 'collection' element in APP. + + + XML element name to mark 'service' element in APP. + + + XML value for a default workspace in APP. + + + XML element name to mark 'workspace' element in APP. + + + XML element name to mark title element in Atom. + + + XML attribute name to specify the type of the element. + + + Atom link relation attribute value for self links. + + + Atom link relation attribute value for edit links. + + + Atom link relation attribute value for edit-media links. + + + Link relation: alternate - refers to a substitute for this context. + + + Link relation: related - identifies a related resource. + + + Link relation: enclosure - identifies a related resource that is potentially large and might require special handling. + + + Link relation: via - identifies a resource that is the source of the information in the link's context. + + + Link relation: describedby - refers to a resource providing information about the link's context. + + + Link relation: service - indicates a URI that can be used to retrieve a service document. + + + Atom attribute which indicates the null value for the element. + + + Atom attribute which indicates the etag value for the declaring entry element. + + + 'Inline' - wrapping element for inlined entry/feed content. + + + Element containing property values when 'content' is used for media link entries + + + 'count' element + + + 'element', the XML element name for items in enumerations. + + + XML element name for an error. + + + XML element name for an error code. + + + XML element name for the inner error details. + + + XML element name for an internal exception. + + + XML element name for an exception type. + + + XML element name for an exception stack trace. + + + XML element name for an error message. + + + 'false' literal, as used in XML. + + + 'true' literal, as used in XML. + + + XML attribute value to indicate the base URI for a document or element. + + + 'lang' XML attribute name for annotation language. + + + XML attribute name for whitespace parsing control. + + + XML attribute value to indicate whitespace should be preserved. + + + XML attribute name to pass to the XMLReader.GetValue API to get the xml:base attribute value. + + + Schema Namespace For Edm. + + + Schema Namespace For Edm 1.1. + + + Schema Namespace For Edm 1.2. + + + XML namespace for annotations in EDM such as 'StoreGeneratedPattern' + + + XML namespace for data services. + + + XML namespace for data service annotations. + + + XML namespace for data service links. + + + XML namespace for data service related $links. + + + XML namespace for data service named media resources. + + + XML namespace for data service edit-media link for named media resources. + + + ATOM Scheme Namespace For DataWeb. + + + Schema Namespace for Atom Publishing Protocol. + + + Schema Namespace For Atom. + + + Schema Namespace prefix For xmlns. + + + Schema Namespace prefix For xml. + + + Schema Namespace Prefix For DataWeb. + + + 'adsm' - namespace prefix for DataWebMetadataNamespace. + + + 'http://www.w3.org/2000/xmlns/' - namespace for namespace declarations. + + + Edmx namespace in metadata document. + + + Prefix for Edmx Namespace in metadata document. + + + IANA link relations namespace. + + + The empty namespace. + + + Association Element Name in csdl. + + + AssociationSet Element Name in csdl. + + + ComplexType Element Name in csdl. + + + Dependent Element Name in csdl. + + + The name of the EDM collection type. + + + + Attribute name used to indicate the real type of an EDM property or parameter, in cases where it needs to be different + from the Type attribute of the Property or Parameter element. This is used to support collection types and binary keys, + which are incompatible with EDM 1.1, which we are currently using for validation purposes. + This attribute is inserted into the CSDL in memory while codegen is processing properties that require special + type handling and should only be used in that scenario. This is not a real EDM or Data Services attribute. + + + + TypeRef element name in CSDL document. + + + EntitySet attribute name in CSDL documents. + + + EntitySetPath attribute name in CSDL documents. + + + ExtensionMethod attribute name in CSDL documents. + + + Composable attribute name in CSDL documents. + + + SideEffecting attribute name in CSDL documents. + + + FunctionImport element name in CSDL documents. + + + Mode attribute name in CSDL documents. + + + Mode attribute value for 'in' direction in CSDL documents. + + + Parameter element name in CSDL documents. + + + ReturnType attribute name in CSDL documents. + + + + Attribute name used to indicate the real type of an EDM function import return type, in cases where it needs to be different + from the ReturnType attribute of the function import element. This is used to support special primitive types, + which are incompatible with EDM 1.1, which we are currently using for validation purposes. + This attribute is inserted into the CSDL in memory while codegen is processing function imports that require special + type handling and should only be used in that scenario. This is not a real EDM or Data Services attribute. + + + + End Element Name in csdl. + + + EntityType Element Name in csdl. + + + EntityContainer Element Name in csdl. + + + Key Element Name in csdl. + + + NavigationProperty Element Name in csdl. + + + OnDelete Element Name in csdl. + + + Principal Element Name in csdl. + + + Property Element Name in csdl. + + + PropetyRef Element Name in csdl. + + + ReferentialConstraint Element Name in csdl. + + + Role Element Name in csdl. + + + Schema Element Name in csdl. + + + Edmx Element Name in the metadata document. + + + Edmx DataServices Element Name in the metadata document. + + + Version attribute for the root Edmx Element in the metadata document. + + + Value of the version attribute in the root edmx element in metadata document. + + + Element name for m:action. + + + Element name for m:function + + + maps to m:action|m:function\@metadata + + + maps to m:action|m:function\@target + + + maps to m:action|m:function\@title + + + BaseType attribute Name in csdl. + + + EntitySet attribute and Element Name in csdl. + + + EntitySetPath attribute and Element Name in csdl. + + + FromRole attribute Name in csdl. + + + Abstract attribute Name in csdl. + + + Multiplicity attribute Name in csdl. + + + Name attribute Name in csdl. + + + Namespace attribute Element Name in csdl. + + + ToRole attribute Name in csdl. + + + Type attribute Name in csdl. + + + Relationship attribute Name in csdl. + + + Using element Name in csdl. + + + Value for Many multiplicity in csdl. + + + Value for One multiplicity in csdl. + + + Value for ZeroOrOne multiplicity in csdl. + + + Nullable facet name in CSDL. + + + The attribute name of the 'Precision' facet. + + + The attribute name of the 'Scale' facet. + + + The attribute name of the 'MaxLength' facet. + + + The attribute name of the 'FixedLength' facet. + + + The attribute name of the 'Unicode' facet. + + + The attribute name of the 'Collation' facet. + + + The attribute name of the 'SRID' facet. + + + Name of the concurrency attribute. + + + Name of the default value attribute. + + + The special value for the 'MaxLength' facet to indicate that it has the max length. + + + The attribute name of the 'StoreGeneratedPattern' annotation + + + The 'Computed' value for the 'StoreGeneratedPattern' annotation + + + The 'Identity' value for the 'StoreGeneratedPattern' annotation + + + 'MimeType' - attribute name for property MIME type attributes. + + + 'OpenType' - attribute name to indicate a type is an OpenType property. + + + 'HasStream' - attribute name to indicate a type has a default stream property. + + + 'true' - attribute value to indicate a type has a default stream property. + + + Attribute to indicate whether this is a default entity container or not. + + + Attribute name in the csdl to indicate whether the service operation must be called using POST or GET verb. + + + uri element name for link bind/unbind operations + + + next element name for link paging + + + XML element name for writing out collection of links. + + + JSON property name for an error. + + + JSON property name for an error code. + + + JSON property name for the inner error details. + + + JSON property name for an internal exception. + + + JSON property name for an error message. + + + JSON property name for an exception stack trace. + + + JSON property name for an exception type. + + + JSON property name for an error message value. + + + namespace for edm primitive types. + + + edm binary primitive type name + + + edm boolean primitive type name + + + edm byte primitive type name + + + edm datetime primitive type name + + + edm decimal primitive type name + + + edm double primitive type name + + + edm guid primitive type name + + + edm single primitive type name + + + edm sbyte primitive type name + + + edm int16 primitive type name + + + edm int32 primitive type name + + + edm int64 primitive type name + + + edm string primitive type name + + + edm stream primitive type name + + + edm string indicating that the value may be collection. + + + Edm Geography type name + + + Edm Geodetic point type name + + + Edm Geodetic linestring type name + + + Represents a geography Polygon type. + + + Represents a geography GeomCollection type. + + + Represents a geography MultiPolygon type. + + + Represents a geography MultiLineString type. + + + Represents a geography MultiPoint type. + + + Represents an arbitrary Geometry type. + + + Represents a geometry Point type. + + + Represents a geometry LineString type. + + + Represents a geometry Polygon type. + + + Represents a geometry GeomCollection type. + + + Represents a geometry MultiPolygon type. + + + Represents a geometry MultiLineString type. + + + Represents a geometry MultiPoint type. + + + edm string primitive type name + + + edm string primitive type name + + + '1.0' - the version 1.0 text for a data service. + + + '2.0' - the version 2.0 text for a data service. + + + '3.0' - the version 3.0 text for a data service. + + + '2.0;' - the text for the current server version text. + + + 1 - the version 1 text for a data service. + + + 0 - the current minor version for a data service. + + + 'binary' constant prefixed to binary literals. + + + 'datetime' constant prefixed to datetime literals. + + + 'guid' constant prefixed to guid literals. + + + 'geography' constant prefixed to geography literals. + + + 'geometry' constant prefixed to geometry literals. + + + 'guid' constant prefixed to guid literals. + + + 'guid' constant prefixed to guid literals. + + + 'X': Prefix to binary type string representation. + + + 'M': Suffix for decimal type's string representation + + + 'L': Suffix for long (int64) type's string representation + + + 'f': Suffix for float (single) type's string representation + + + 'D': Suffix for double (Real) type's string representation + + + null liternal that needs to be return in ETag value when the value is null + + + Incoming message property name for the original reqeust uri + + + Incoming message property name for the original root service uri + + + + GeoRss namespace + + + + + The "georss" prefix + + + + + Gml Namespace + + + + + Gml Prefix + + + + + Embedded Gml tag inside Georss + + + + + GeoRss representation of a point + + + + + GeoRss representation of a line + + + + + Gml representation of a point + + + + + Gml representation of a point array + + + + + Gml representation of a linestring + + + + + Tree representing the sourceName properties in all the EntityPropertyMappingAttributes for a resource type + + + + Root of the tree + + + corresponding to this tree + + + Default constructor creates a null root + Target xml tree + + + + Adds a path to the source and target tree which is obtained by looking at the EntityPropertyMappingAttribute in the + + EnitityPropertyMappingInfo holding the source path + + + Validates the source tree. + The resource type for which the validation is performed. + + + Validates the specified segment and all its subsegments. + The path segment to validate. + The resource type of the property represented by this segment (null for open properties). + + + + Returns a client type of the property on the specified resource type. + + The client type to look for the property on. + The name of the property to look for. + The type of the property specified. Note that for collection properties this returns the type of the item of the collection property. + + + + Root of the tree + + + + + Representation of each node in the + + + + Name of the property under the parent resource type + This fields is used to diferentiate between some special node types as well. + - null - this is the root node of the source tree. + - "" (empty string) - this is a node representing a value of a primitive item in a collection property. + - anything else - this is a node representing a property with the name of this field. + + + List of sub-properties if this segment corresponds to a complex type + + + + Constructor creates a root source path segment + + + + + Constructor creates a source path segment with the name set to + + Segment property name + + + Name of the property under the parent resource type + This property is used to diferentiate between some special node types as well. + - null - this is the root node of the source tree. + - "" (empty string) - this is a node representing a value of a primitive item in a collection property. + - anything else - this is a node representing a property with the name of this property. + These values should not be compared directly, instead use the IsCollectionItemValue property to differentiate between the last two. + The root node itself should never be accessed directly so far. + + + List of sub-properties if this segment corresponds to a complex type + + + Corresponding EntityPropertyMappingInfo + + + + Tree representing the targetName properties in all the EntityPropertyMappingAttributes for a resource type + + + + Number of properties that have V2 mapping with KeepInContent false + + + Initializes the sub-trees for syndication and non-syndication content + + + + Adds a path to the tree which is obtained by looking at the EntityPropertyMappingAttribute in the + + EnitityPropertyMappingInfo holding the target path + + + + Removes a path in the tree which is obtained by looking at the EntityPropertyMappingAttribute in the + + EnitityPropertyMappingInfo holding the target path + + + Validates the target tree. + This also cleans up the tree if necessary. + + + Checks if mappings could potentially result in mixed content and dis-allows it. + Segment being processed. + Does any of the ancestors have content. + boolean indicating if the tree is valid or not. + + + + Given an gives the correct target path for it + + Given + String with the correct value for the target path + + + Root of the sub-tree for syndication content + + + Root of the sub-tree for custom content + + + + Minimum DSPV required to serialize this target tree. + + + + + Representation of each node in the + + + + Name of the xml element/attribute + This field is used to differentiate between special nodes as well. + - null - this is the root of the target tree. + - anything else (doesn't start with @) - this node represents an element with the specified name. + - anything else (starts with @) - this node represents an attribute with the specified name. + + + URI of the namespace to which the belongs + + + If this is a non-leaf element, the child elements/attributes collection + + + Parent element of this element/attribute + + + + Constructor initializes the list of sub-nodes to be empty, used for creating root nodes + in the + + + + Used for creating non-root nodes in the syndication/custom trees + Name of xml element/attribute + URI of the namespace for + Reference to the parent node if this is a sub-node, useful for traversals in visitors + + + Name of the xml element/attribute + This property is used to differentiate between special nodes as well. + - null - this is the root of the target tree. + - anything else (doesn't start with @) - this node represents an element with the specified name. + - anything else (starts with @) - this node represents an attribute with the specified name. + The value of the proeprty should not be compared directly to differentiate between these cases, instead + properties IsAttribute and IsElementContentSegment should be used. The root not should not be accessed directly + from anywhere so far. + + + URI of the namespace to which the belongs + + + EntityPropertyMappingInfo corresponding to current segement + + + Whether this node corresponds to ResourceType or ClientType property values + + + Does this node correspond to xml attribute + + + Parent node in the tree (always an element if present) + + + Sub-nodes of this node. Only exist if current node is an element node + + + + Holds information needed during content serialization/deserialization for + each EntityPropertyMappingAttribute + + + + + Private field backing Attribute property. + + + + + Private field backing DefiningType property + + + + + Type whose property is to be read. This property is of ClientType type on the client and of ResourceType type on the server. + + + + + Path to the property value. Stored as an array of property names to access on each other. + If this mapping is for a non-collection property or for the collection property itself, this path starts at the entity resource. + If this mapping is for a collection item property, this path starts at the collection item. In this case empty path is allowed, meaning the item itself. + + + + + Set to true if this info describes mapping to a syndication item, or false if it describes a custom mapping + + + + + Creates instance of EntityPropertyMappingInfo class. + + The corresponding to this object + Type the was defined on. + ClientType whose property is to be read. + + + Compares the defining type of this info and other EpmInfo object. + The other EpmInfo object to compare to. + true if the defining types are the same + + + + The corresponding to this object + + + + + Type that has the + + + + + Type whose property is to be read. This property is of ClientType type on the client and of ResourceType type on the server. + + + + + Path to the property value. Stored as an array of property names to access on each other. + If this mapping is for a non-collection property or for the collection property itself, this path starts at the entity resource. + If this mapping is for a collection item property, this path starts at the collection item. In this case empty path is allowed, meaning the item itself. + + + + + Set to true if this info describes mapping to a syndication item, or false if it describes a custom mapping + + + + + Take a URI string and escape the data portion of it + + + + + Sensitive characters that we should always skip + This should be the set of Http control characters intersecting with + the set of characters OData literal format allows outside of strings + (In V3: only +, as used in double literals ex. 3E+8) + + + + + input string + + + + + output string + + + + + the current index + + + + + current quoted data string + + + + + constructor + + The string to be escaped. + + + + Escape a URI string's data string portion + + The input string + The escaped string + + + + Build a new escaped string + + The escaped string + + + + Read quoted string + + The character that started the quote + + + + Class with code that will eventually live in EdmLib. + + This class should go away completely when the EdmLib integration is fully done. + + + The qualifier to turn a type name into a Collection type name. + + + Format string to describe a Collection of a given type. + + + + Map of CLR primitive type to EDM primitive type reference. Doesn't include spatial types since they need assignability and not equality. + + + + Type reference for Edm.Boolean. + + + Type reference for Edm.Byte. + + + Type reference for Edm.DateTime. + + + Type reference for Edm.Decimal. + + + Type reference for Edm.Double. + + + Type reference for Edm.Int16. + + + Type reference for Edm.Int32. + + + Type reference for Edm.Int64. + + + Type reference for Edm.SByte. + + + Type reference for Edm.String. + + + Type reference for Edm.Float. + + + + Constructor. + + + + + Returns the fully qualified name of an entity container element. + + The container element to get the full name for. + The full name of the owning entity container, slash, name of the container element. + + + + Turns a into the corresponding . + + The type to convert. + true if the returned type reference should be nullable; otherwise false. + A type reference for the . + + + + Creates the EDM type name for a collection of the specified item type name. E.g. Collection(Edm.String) + + Type name of the items in the collection. + Type name for a collection of the specified item type name. + + + + Finds the entity set with the specified container and name. + + The model to find the entity set in. + The container qualified name of the entity set. + The with the specified name or null if no such entity set exists. + + + + Gets a reference to a primitive kind definition of the appropriate kind. + + Primitive type to create a reference for. + Flag specifying if the referenced type should be nullable per default. + A new primitive type reference. + + + + Gets the single entity container or the default one if there are multiple containers. + + Model to find entity containers in. + Single container that was found. + Entity Container found in the model + + + + Finds the container elements with the specified container and name. + + The model to find the element in. + The container qualified name of the elements. + The resolver method to resolve the elements. + The enumeration of with the specified name or null if no such element exists. + + + + An enumeration that lists the internal errors that are shared between the OData library and the query library. + + + + Unreachable codepath in EdmLibraryExtensions.ToTypeReference (unsupported type kind). + + + Unreachable codepath in EdmLibraryExtensions.ToClrType (unsupported type kind). + + + Unreachable codepath in EdmLibraryExtensions.PrimitiveTypeReference (unsupported primitive type kind). + + + Unreachable codepath in EdmLibraryExtensions.IsAssignableFrom(IEdmPrimitiveType, IEdmPrimitiveType). + + + Unreachable codepath in EdmLibraryExtensions.IsAssignableFrom(IEdmType, IEdmType). + + + Unreachable codepath in EdmLibraryExtensions.BaseType. + + + Unreachable codepath in EdmLibraryExtensions.Clone for unexpected type kind. + + + Unreachable codepath in EdmLibraryExtensions.Clone for unexpected primitive type kind. + + + Holds information about a ServiceAction. + + + Holds information about a service operation. + + + Abstract class from which is derived. + + + change order + + + was content generated for the entity + + + was this entity save result processed + 0 - no processed, otherwise reflects the previous state + + + last save exception per entry + + + State of the modified entity or link. + + + + constructor + + entity state + + + + Clear all the changes associated with this descriptor + This method is called when the client is done with sending all the pending requests. + + + + When overridden in a derived class, gets the state of the object at the time this instance was constructed. + An of the object returned at the time this instance was constructed. + + + true if resource, false if link + + + changeOrder + + + was content generated for the entity + + + was this entity save result processed + + + last save exception per entry + + + + Returns true if the entry has been modified (and thus should participate in SaveChanges). + + + + Maps to m:action\@title. Human-readable description of the service operation. + + + maps to m:action\@metadata. Identifies the service operation. + + + maps to m:action\@target. The URI to invoke the service operation. + + + + Creates a new instance of the Operation descriptor. + + + + + Nothing to clear in case of operation descriptor. + + + + Human-readable description of the service operation. + + + Identifies the service operation. + + + The URI to invoke the service operation. + + + + this is an operation descriptor. + + + + + Base class for building the request and handling the response + + + + + Implementation of IAsyncResult + + + + + The int equivalent for true. + + + + + The int equivalent for false. + + + + Originating object, used to validate End* + + + Originating method on source, to differentiate between different methods from same source + + + wrapped request + + + User callback passed to Begin* + + + User state passed to Begin* + + + wait handle for user to wait until done, we only use this within lock of asyncWaitDisposeLock. + + + Holding exception to throw as a nested exception during to End* + + + Abortable request + + + true unless something completes asynchronously + + + true when really completed for the user + + + true when no more changes are pending, 0 false, 1 completed, 2 aborted + + + verify we only invoke the user callback once, 0 false, 1 true + + + non-zero after End*, 0 false, 1, true + + + true if the AsyncWaitHandle has already been disposed. + + + delay created object to lock to prevent using disposed asyncWait handle. + + + + ctor + + source object of async request + async method name on source object + user callback to invoke when complete + user state + + + + common handler for EndExecuteBatch & EndSaveChanges + + derived type of the AsyncResult + source object of async request + async method name on source object + the asyncResult being ended + data service response for batch + + + + Due to the unexpected behaviors of IAsyncResult.CompletedSynchronously in the System.Net networking stack, we have to make + async calls to their APIs using the specific pattern they've prescribed. This method runs in the caller thread and invokes + the BeginXXX methods. It then checks IAsyncResult.CompletedSynchronously and if it is true, we invoke the callback in the + caller thread. + + + This is the action that invokes the BeginXXX method. Note we MUST use our special callback from GetDataServiceAsyncCallback() + when invoking the async call. + + async callback to be called when the operation is complete + A user-provided object that distinguishes this particular asynchronous request from other requests. + Returns the async result from the BeginXXX method. + + CompletedSynchronously (for System.Net networking stack) means "was the operation completed before the first time + that somebody asked if it was completed synchronously"? They do this because some of their asynchronous operations + (particularly those in the Socket class) will avoid the cost of capturing and transferring the ExecutionContext + to the callback thread by checking CompletedSynchronously, and calling the callback from within BeginXxx instead of + on the completion port thread if the native winsock call completes quickly. + + For other operations however (notably those in HttpWebRequest), they use the same underlying IAsyncResult implementation, + but do NOT check CompletedSynchronously before returning from BeginXxx. That means that CompletedSynchronously will + be false if and only if you checked it from the thread which called BeginXxx BEFORE the operation completed. It will + then continue to be false even after IsCompleted becomes true. + + Note that CompletedSynchronously == true does not guarantee anything about how much of your callback has executed. + + The usual pattern for handling synchronous completion is that both the caller and callback should check CompletedSynchronously. + If its true, the callback should do nothing and the caller should call EndRead and process the result. + This guarantees that the caller and callback are not accessing the stream or buffer concurrently without the need + for explicit synchronization between the two. + + + + + Due to the unexpected behaviors of IAsyncResult.CompletedSynchronously in the System.Net networking stack, we have to make + async calls to their APIs using the specific pattern they've prescribed. This method runs in the caller thread and invokes + the BeginXXX methods. It then checks IAsyncResult.CompletedSynchronously and if it is true, we invoke the callback in the + caller thread. + + + This is the action that invokes the BeginXXX method. Note we MUST use our special callback from GetDataServiceAsyncCallback() + when invoking the async call. + + buffer to transfer the data + byte offset in buffer + max number of bytes in the buffer + async callback to be called when the operation is complete + A user-provided object that distinguishes this particular asynchronous request from other requests. + An IAsyncResult that represents the asynchronous operation, which could still be pending + + Please see remarks on the other InvokeAsync() overload. + Also note that the InvokeTask method above is a Win8 version of this method, so it should be kept in sync with any changes that occur here. + + + + + Sets the CompletedSynchronously property. + + true if the async operation was completed synchronously, false otherwise. + + + Set the AsyncWait and invoke the user callback. + + If the background thread gets a ThreadAbort, the userCallback will never be invoked. + This is why it's generally important to never wait forever, but to have more specific + time limit. Also then cancel the operation, to make sure its stopped, to avoid + multi-threading if your wait time limit was just too short. + + + + Cache the exception that happened on the background thread for the caller of EndSaveChanges. + exception object from background thread + true if the exception (like StackOverflow or ThreadAbort) should be rethrown + + + Set the async result as completed and aborted. + + + Set the async result as completed. + + + verify they have the same reference + the actual thing + the expected thing + error code if they are not + + + invoked for derived classes to cleanup before callback is invoked + + + Disposes the request object if it is not null. Invokes the user callback + the request object + + + handle request.BeginGetResponse with request.EndGetResponse and then copy response stream + async result + + + verify non-null and not completed + the request in progress + error code if null or completed + + + Read and store response data for the current change, and try to start the next one + the completed per request object + + + Cache the exception that happened on the background thread for the caller of EndSaveChanges. + the request object + exception object from background thread + true if the exception should be rethrown + + + handle request.BeginGetRequestStream with request.EndGetRequestStream and then write out request stream + async result + + + + Due to the unexpected behaviors of IAsyncResult.CompletedSynchronously in the System.Net networking stack, we have to make + async calls to their APIs using the specific pattern they've prescribed. This method runs in the caller thread after the + BeginXXX method returns. It checks IAsyncResult.CompletedSynchronously and if it is true, we invoke the callback in the + caller thread. + + The IAsyncResult that represents the asynchronous operation we just called, which could still be pending + Callback to be invoked when IAsyncResult.CompletedSynchronously is true. + Returns an IAsyncResult that represents the asynchronous operation we just called, which could still be pending + + Please see remarks on BaseAsyncResult.InvokeAsync(). + Also note that PostInvokeTask below is a Win8 version of this method, so it should be kept in sync with any changes that occur here. + + + + + Due to the unexpected behaviors of IAsyncResult.CompletedSynchronously in the System.Net networking stack, we have to make + async calls to their APIs using the specific pattern they've prescribed. This method returns an AsyncCallback which we can pass + to the BeginXXX methods in the caller thread. The returned callback will only run the wrapped callback if + IAsyncResult.CompletedSynchronously is false, otherwise it returns immediately. + + callback to be wrapped + Returnes a callback which will only run the wrapped callback if IAsyncResult.CompletedSynchronously is false, otherwise it returns immediately. + + Please see remarks on BaseAsyncResult.InvokeAsync(). + Also note that the GetDataServiceTaskCallback method below is a Win8 version of this method, so it should be kept in sync with any changes that occur here. + + + + + Sets the async wait handle + + + + + Callback for Stream.BeginRead on the request content input stream. Calls request content output stream BeginWrite + and in case of synchronous also the next BeginRead. + + The asynchronous result associated with the completed operation. + + + handle requestStream.BeginWrite with requestStream.EndWrite then BeginGetResponse. + async result + + + user state object parameter + + + wait handle for when waiting is required + if displayed by debugger, it undesirable to create the WaitHandle + + + did the result complete synchronously? + + + is the result complete? + + + is the result complete? + + + abort the result + + + + WebRequest available for DataServiceContext.CancelRequest + + + + first exception that happened + + + + This delegate exists to workaround limitations in the WP7 runtime. + When limitations on the number of parameters to Func<> are resolved, this can be subsumed by the following: + Func<byte[], int, int, AsyncCallback, object, IAsyncResult> + + buffer to transfer the data + byte offset in buffer + max number of bytes in the buffer + async callback to be called when the operation is complete + A user-provided object that distinguishes this particular asynchronous request from other requests. + An IAsyncResult that represents the asynchronous operation, which could still be pending + + + + Wraps PerRequest and context reference together to save state information. + Used instead of KeyValuePair in order to avoid FxCop CA908. + + + + the request wrapper. + + + + Constructor for the state object + + See PerRequest field. + + + wrap the full request + + + + The int equivalent for true. + + + + + The int equivalent for false. + + + + + did the sequence (BeginGetRequest, EndGetRequest, ... complete. 0 = In Progress, 1 = Completed, 2 = Aborted + + + + + Buffer used when pumping data from the write stream to the request content stream + + + + True if Dispose is called. + + + Synchronize the Dispose method calls. + + + Did the request complete all of its steps synchronously? 1 represents true and 0 represents false. + Note that there is no overload for Interlocked.CompareExchange that takes booleans, we workaround using the overload for int. + + + ctor + + + + Sets the RequestCompletedSynchronously property. + + true if the async operation was completed synchronously, false otherwise. + + + + Change the request status to completed + + + + + Change the request status to aborted + + + + + dispose of the request object + + + + active web request + + + active web request stream + + + content to write to request stream + + + web response + + + async web response stream + + + did the request complete all of its steps synchronously? + + + + Short cut for testing if request has finished (either completed or aborted) + + + + + Short cut for testing request status is 2 (Aborted) + + + + + Buffer used when pumping data from the write stream to the request content stream + + + + + The length of the valid content in the RequestContentBuffer + Once the data is read from the request content stream into the RequestContent buffer + this length is set to the amount of data read. + When the data is written into the request stream it is set back to 0. + + + + where to pull the changes from + + + serializer to serialize the request data. + + + sorted list of entries by change order + + + option in use for SaveChanges + + + batch web response + + + The ResourceBox or RelatedEnd currently in flight + + + what kind of request are we processing - POST MR or PUT MR + + + + If the is set to anything but None, + this field holds a stream needs to be send in the request. + This can be null in the case where the content of MR is empty. (In which case + we will not try to open the request stream and thus avoid additional async call). + + + + temporary buffer when cache results from CUD op in non-batching save changes + + + + constructor for operations + + context + method + queries + options + user callback + user state object + + + + factory method for SaveResult + + context + method + queries + options + user callback + user state object + a new instance of SaveResult or BatchSaveResult, depending on the options value. + + + + Handle response by looking at status and possibly throwing an exception. + + The request info. + response status code + Version string on the response header; possibly null. + delegate to get response stream + throw or return on failure + Parsed response version (null if no version was specified). + exception on failure + + + + get the response text into a string + + method to get response stream + status code + text + + + process the batch + data service response + + + Get the value of HttpMethod enum from link resource state + Instance of LinkDescriptor containing the link state and type of link. + HttpMethod enum value for the link descriptor state. + + + + Apply the response preferences for the client. + + Headers to which preferences will be added. + HTTP method. + Response preference. + Request version so far for the request. The method may modify it. + + + + Handle response. + + an instance of the DataServiceResponse. + + + + Returns the request message to write the headers and payload into. + + Http method for the request. + Base Uri for the request. + Request headers. + HttpStack to use. + Descriptor for the request, if there is one. + an instance of IODataRequestMessage. + + + Get the value of the HttpMethod enum from entity resource state + resource state + The version of the request determined so far. The method may modify this if needed. + HttpMethod value from the entity resource state. + + + + Create request message for the descriptor at the given index. + + Index into changed entries + IODataRequestMessage that needs to be used for writing the payload. + true, if any request payload was generated, else false. + + + Set the AsyncWait and invoke the user callback. + the request object + + + handle request.BeginGetResponse with request.EndGetResponse and then copy response stream + async result + + + IODataResponseMessage contain response for the operation. + IODataResponseMessage instance. + + + operation with HttpWebResponse + status code of the response. + response headers. + + + + Handle operation response + + descriptor whose response is getting processed. + content headers as returned in the response. + + + + Get the materializer to process the response. + + entity descriptor whose response is getting materialized. + information about the response to be materialized. + an instance of MaterializeAtom, that can be used to materialize the response. + + + cleanup work to do once the batch / savechanges is complete + + + + Create the response info instance to be passed to the materializer. + + entity descriptor whose response is getting handled. + instance of the response info class. + + + + enumerate the related Modified/Unchanged links for an added item + + entity + related links + + During a non-batch SaveChanges, an Added entity can become an Unchanged entity + and should be included in the set of related links for the second Added entity. + + + + flag results as being processed + result descriptor being processed + count of related links that were also processed + + + + Generate the link payload. + + binding + An instance of ODataRequestMessage for the link request. + + + + Create ODataRequestMessage for the given entity. + + resource + An instance of ODataRequestMessage for the given entity. + + + + Returns the request message to write the headers and payload into. + + Http method for the request. + Base Uri for the request. + Request headers. + HttpStack to use. + Descriptor for the request, if there is one. + an instance of IODataRequestMessage. + + + + Figures out value to be written in DataServiceVersion HTTP header for the given entity based on features used in this entity. + + Entity type for which data service version needs to be determined. + The resource state for the entity. + Data service version for the given entity and state. + + + Checks whether a WCF Data Service version string can be handled. + Version string on the response header; possibly null. + The response version parsed into a instance + if the version was valid and can be handled, otherwise null. + true if the version can be handled; false otherwise. + + + Handle changeset response. + headers of changeset response + + + + Validates that the link descriptor source and target have identities. + + The binding. + The source resource. + The target resource. + + + + Serialize supported data service versions to a string that will be used in the exception message. + The string contains versions in single quotes separated by comma followed by a single space (e.g. "'1.0', '2.0'"). + + Supported data service versions in single quotes separated by comma followed by a space. + + + + Appends the target entity key to the uri if the binding is in the deleted state and the property is a collection. + + The link URI so far. + The binding. + The target's entity descriptor. + The original link uri or one with the target entity key appended. + + + + Generate a request for the given entity. + + Instance of EntityDescriptor. + Instance of IODataRequestMessage to be used to generate the payload. + True if the payload was generated, otherwise false. + + + + Generate a request for the given link. + + Instance of LinkDescriptor. + Instance of IODataRequestMessage to be used to generate the payload. + + + Handle changeset response. + descriptor whose response is getting handled. + response headers. + + + Handle changeset response for the given entity descriptor. + entity descriptor whose response is getting handled. + ETag header value from the server response (or null if no etag or if there is an actual response) + + + + Handle the PUT response sent by the server + + descriptor, whose response is getting handled. + response headers. + + + Handle response to deleted entity. + deleted entity + + + handle responseStream.BeginRead with responseStream.EndRead + async result + + + + Materialize the response payload. + + entity descriptor whose response is getting materialized. + information about the response to be materialized. + etag value, if specified in the response header. + + + returns true if its a batch, otherwise returns false. + + + + In async case, this is a memory stream used to cache responses, as we are reading async from the underlying http web response stream. + In sync case, this is the actual response stream, as returned by the http request. + + + + + returns true if the response payload needs to be processed. + + + + + enum which says what kind of request we are currently processing + + + + This request doesn't involve Media Resource or named stream. + + + This request is a POST to a MLE and the body contains the content of the MR. + + + This request is a PUT to MR and the body contains the content of the MR. + + + + Async read state + + + + PerRequest class which tracks the request and response stream + + + total number of byte copied. + + + + constructor + + Perrequest class + + + + Returns the total number of byte copied till now. + + + + + Handles the batch requests and responses (both sync and async) + + + + The size of the copy buffer to create. + + + Array of queries being executed + + + Response stream containing the entire batch response. + + + Instance of ODataBatchWriter used to write current batch request. + + + The message reader used to read the batch response. + + + Object representing the current operation response. + + + Buffer used for caching operation response body streams. + + + + constructor for BatchSaveResult + + context + method + queries + options + user callback + user state object + + + initial the async batch save changeset + + + + Synchronous batch request + + + + Read and store response data for the current change + The completed per request object + This is called only from the async code paths, when the response to the batch has been read fully. + + + IODataResponseMessage contain response for the operation. + IODataResponseMessage instance. + + + + Handle response. + + an instance of the DataServiceResponse, containing individual operation responses for this batch request. + + + + Get the materializer to process the response. + + entity descriptor whose response is getting materialized. + information about the response to be materialized. + an instance of MaterializeAtom, that can be used to materialize the response. + + This can only be called from inside the HandleBatchResponse or during enumeration of the responses. + This is used when processing responses for update operations. + + + + + Returns the request message to write the headers and payload into. + + Http method for the request. + Base Uri for the request. + Request headers. + HttpStack to use. + Descriptor for the request, if there is one. + an instance of IODataRequestMessage. + + + + Creates the type of the multi part MIME content. + + A multipart mime header with a generated batch boundary + + + + Creates a ODataRequestMessage for batch request. + + Returns an instance of ODataRequestMessage for the batch request. + + + + Generate the batch request for all changes to save. + + Returns the instance of ODataRequestMessage containing all the headers and payload for the batch request. + + + + process the batch response + + an instance of the DataServiceResponse, containing individual operation responses for this batch request. + + + + process the batch response + + The batch reader to use for reading the batch response. + an instance of the DataServiceResponse, containing individual operation responses for this batch request. + + The message reader for the entire batch response is stored in the this.batchMessageReader. + The message reader is disposable, but this method should not dispose it itself. It will be either disposed by the caller (in case of exception) + or the ownership will be passed to the returned response object (in case of success). + In could also be diposed indirectly by this method when it enumerates through the responses. + + + + + process the batch response + + The batch reader to use for reading the batch response. + enumerable of QueryResponse or null + + The batch message reader for the entire batch response is stored in this.batchMessageReader. + Note that this method takes over the ownership of this reader and must Dispose it if it successfully returns. + + + + + Processed the operation response reported by the batch reader. + This is a side-effecting method that is tied deeply to how it is used in the batch processing pipeline. + + The batch reader to get the operation response from. + True if the current operation is inside a changeset (implying CUD, not query) + An exception if the operation response is an error response, null for success response. + + + + Validate the content-id. + + The response headers for the operation response being processed. + Returns the correct ChangedEntries index. + + + returns true since this class handles batch requests. + + + + In async case, this is a memory stream used to cache responses, as we are reading async from the underlying http web response stream. + In non-async case, this is the actual response stream, as returned by the http request. + + + This is the stream which holds the entire batch response, when we process any given part those streams are enumerated through + a different field (currentOperationResponseContentStream). + + + + + returns true if the response payload needs to be processed. + + + + + Stores information about the currenly processed operation response. + + + + The HTTP response status code for the current operation response. + + + The HTTP headers for the current operation response. + + + The content stream for the current operation response. + + + + Constructor. + + The status code of the response. + The response headers. + An in-memory copy of the response stream. + + + + Creates IODataResponseMessage for the operation response. + + + IODataResponseMessage for the operation response. + null if the operation response has empty content. + + + + + The status code of the operation response. + + + + + The content stream of the operation response. + + + + + true if the content stream is empty, false otherwise. + + + + + The response headers for the operation response. + + + + Represents a parameter associated with a service action. + + + Represents a parameter passed to a service action, service function or a service operation when it is Executed. + + + The name of the operation parameter. + + + The value of the operation parameter. + + + Initializes a new instance of the class. + The name of the operation parameter. + The value of the operation parameter. + + + Gets the name of the operation parameter. + The name of the operation parameter. + + + Gets the value of the operation parameter. + The value of the operation parameter. + + + Instantiates a new BodyOperationParameter + The name of the body operation parameter. + The value of the body operation parameter. + + + + EventArgs for the BuildingRequest event. + + + + + Uri of the outgoing request. + + + + + Initializes a new instance of the class. + + The method. + The request URI. + The request headers. + Descriptor for this request; or null if there isn't one. + The http stack. + + + + Retrieves a new RequestMessageArgs with any custom query parameters added. + + A new RequestMessageArgs instance that takes new custom query options into account. + + + + Gets the Request HTTP Method that the outgoing request will use. + + + + + The Uri of the outgoing request. The Uri may be altered. No error checking will be performed against any changes made. + + + + + The headers for this request. Adding new custom headers is supported. Behavior is undefined for changing existing headers or adding + system headers. No error checking will be performed against any changes made. + + + + + Descriptor for this request if there is one; null otherwise. + + + + + Gets the http stack. + + + The reason for having this property is that this is request specific + and cannot be taken from the context. For e.g. In silverlight, irrespective + of the value of HttpStack property, for stream requests (get or update), we + use ClientHttp. + + + + + Returns the set of headers as HeaderCollection instance. + + + + + Implementation of which wraps client-side objects. + + + + + Initializes a new instance of the class. + + The type of the collection. + The elements of the collection. + + + + Gets the type of this value. + + + + + Gets the kind of this value. + + + + + Gets the values stored in this collection. + + + + + Non-delayed implementation of + + + + + Initializes a new instance of the class. + + The value. + + + + Gets the data stored in this value. + + + + + EdmModel describing the client metadata + + + + A cache that maps a client Clr type to it corresponding Edm type. + + + A cache that maps a client type name to the corresponding client type annotation. + + + The annotations manager. + + + The max protocol version this Edm model is created for. + + + Referenced core model. + + + + Constructor. + + The protocol version this Edm model is created for. + + + + Return the entity container with the given name. + + Name of the entity container. + EntityContainer with the given name. + + + + Searches for a schema element with the given name in this model and returns null if no such schema element exists. + + The qualified name of the schema element being found. + The requested schema element, or null if no such schema element exists. + + + + Searches for functions with the given name in this model and returns null if no such function exists. + + The qualified name of the function being found. + A set functions sharing the specified qualified name, or an empty enumerable if no such function exists. + + + + Searches for a value term with the given name in this model and returns null if no such value term exists. + + The qualified name of the value term being found. + The requested value term, or null if no such value term exists. + + + + Finds a list of types that derive directly from the supplied type. + + The base type that derived types are being searched for. + A list of types that derive directly from the type. + + + + Searches for vocabulary annotations specified by this model or a referenced model for a given element. + + The annotated element. + The vocabulary annotations for the element. + + + + Get or create a client EDM type instance. + + type to wrap + client type + + + + Get the client type annotation for the given name. + + Name of the type. + An instance of ClientTypeAnnotation for the type with the given name. + + + Returns and its base types, in the order of most base type first and last. + Type instance in question. + Returns the list of key properties if is an entity type; null otherwise. + true if has any (declared or inherited) properties; otherwise false. + Returns and its base types, in the order of most base type first and last. + + + + Find properties with dynamic MIME type related properties and + set the references from each ClientProperty to its related MIME type property + + Client edm type instance to wire up the mime type properties. + + + + Get or create a client EDM type instance. + + type to wrap + client type + + + + Get or create a client EDM type instance. + + The base type of this structured type. + type to wrap + List of key properties to add to if the type is an entity type; null otherwise. + true if is an entity type; false otherwise. + true if the is known to have properties; false if is known to have no properties; null if nothing is known about the properties. + client type + + + + Creates an Edm property. + + Type declaring this property. + PropertyInfo instance for this property. + Returns a new instance of Edm property. + + + + Gets or creates client type annotation. + + The EdmType to use for creating client type annotation + The Clr type to create client type annotation for. + Client type annotation + + + + Returns all the vocabulary annotations defined in the model. + + + + + Returns all the referenced models. + + + + + Returns all the schema elements. + + + + + Returns the model's annotations manager. + + + + + Gets the max protocol version of the model. + + + + + Cache value for the type cache. + + + + The cached EDM type. + + + true if the Clr type this EDM type is based on has settable properties; otherwise false. + + + + Creates a new instance of the EDM type cache value. + + The cached EDM type. + true if the Clr type this EDM type is based on has settable properties; otherwise false. + + + + The cached EDM type. + + + + + true if the Clr type this EDM type is based on has settable properties; otherwise false. + + + + + Implementation of which wraps client-side objects. + + + + The structured value this instance is wrapping. + + + The client-side metadata about this value. + + + The model. + + + + Initializes a new instance of the class. + + The structured value. + The model. + The client type annotation. + + + + Finds the value corresponding to the provided property name. + + Property to find the value of. + + The found property, or null if no property was found. + + + + + Builds an edm property value from the given annotation. + + The property annotation. + The property value + + + + Converts a clr value to an edm value. + + The property value. + Type of the property. + + The converted value + + + + + Gets the type of this value. + + + + + Gets the kind of this value. + + + + + Gets the property values of this structured value. + + + + + Helper class to wrap the stream with the content of the request. + We need to remember if the stream came from us (IsKnownMemoryStream is true) + or if it came from outside. For backward compatibility we set the Content-Length for our streams + since they are always MemoryStream and thus know their length. + For outside streams (content of the MR requests) we don't set Content-Length since the stream + might not be able to answer to the Length call. + + + + + The stream with the content of the request + + + + + Set to true if the stream is a MemoryStream and we produced it (so it does have the buffer accesible) + + + + + Constructor + + The stream with the request content + The stream was create by us and it's a MemoryStream + + + + The stream with the content of the request + + + + + Set to true if the stream is a MemoryStream and we produced it (so it does have the buffer accesible) + + + + + Implementation of which uses OData conventions. + + + + The entity instance to build metadata for. + + + The name of the set the entity instance belongs to. + + + The base uri of the service. + + + The convention-based uri builder to use. + + + + Initializes a new instance of the class. + + The base URI of the service. + Name of the entity set the entity belongs to. + The entity instance to build metadata for. + The user-specified conventions to use. + + + + Initializes a new instance of the class. + + The URI resolver to use. + Name of the entity set the entity belongs to. + The entity instance to build metadata for. + The user-specified conventions to use. + + + + Gets the edit link of the entity. + + + The absolute URI of the edit link for the entity. + Or null if it is not possible to determine the edit link. + + + + + Gets the ID of the entity. + + + The ID for the entity. + Or null if it is not possible to determine the ID. + + + + + Gets the ETag of the entity. + + + The ETag for the entity. + Or null if it is not possible to determine the ETag. + + + + + Gets the read link of the entity. + + + The absolute URI of the read link for the entity. + Or null if it is not possible to determine the read link. + + + + + Implementation of that uses conventions. + + + + The uri resolver to use for entity sets. + + + The user specified conventions. + + + + Initializes a new instance of the class. + + The uri resolver to use. + The user specified conventions to use. + + + + Appends to create the URI for an entity set. + + The URI to append to + The entity set name. + + The entity set URI. + + + + + Appends to create the entity instance URI for the specified . + + The URI to append to + The entity instance to use. + + The entity instance URI. + + + + + Client writer settings shim class to restrict settings to the base for OData message writers. + + + + The settings. + + + + Initializes a new instance of the class. + + The settings. + + + + Flag to control whether the writer should use indentation or not. + + + + + Flag to control whether the writer should check for valid Xml characters or not. + + + + + Quotas to use for limiting resource consumption when writing an OData message. + + + + + Client reader settings shim class to restrict settings to the base for OData message reader. + + + + The settings. + + + + Initializes a new instance of the class. + + The settings. + + + + Flag to control whether ATOM metadata is read in ATOM payloads. + + + + + Flag to control whether the writer should check for valid Xml characters or not. + + + + + Quotas to use for limiting resource consumption when writing an OData message. + + + + + Func to evaluate whether an instance annotation should be read or skipped by the reader. The func should return true if the instance annotation should + be read and false if the instance annotation should be skipped. + + + + + Materializer for LoadProperty API call for navigation properties. + + + + + Materializes feeds and entities from an ODataReader + + + + + Used to materialize entities from a objects. + + + + + Use this class to materialize objects provided from an . + + + + Empty navigation links collection + + + Empty property collection + + + Collection->Next Link Table for nested links + + + The collection value materialization policy. + + + The complex value materializer policy. + + + The materialization policy used to materialize primitive values. + + + The converter to use when assigning values of primitive properties. + + + + Initializes a new instance of the class. + + The materializer context. + The expected type. + + + + Creates an for a response. + + The response message. + The response context. + The type to materialize. + The query components for the request. + The projection plan. + expected payload kind. + A materializer specialized for the given response. + + + Reads the next value from the input content. + true if another value is available after reading; false otherwise. + + After invocation, the currentValue field (and CurrentValue property) will + reflect the value materialized from the parser; possibly null if the + result is true (for null values); always null if the result is false. + + + + + Disposes the materializer + + + + Clears the materialization log of activity. + + + Applies the materialization log to the context. + + + + Creates an for a given message and context using + WCF DS client settings. + + The response message + The response context + Type of the message. + The message reader. + + + + Verifies that the object is not disposed. + + + + + Implementation of . + + Return value of + + + + Called when IDisposable.Dispose is called. + + + + Current value being materialized; possibly null. + + This will typically be an entity if + is assigned, but may contain a string for example if a top-level + primitive of type string is found. + + + + Feed being materialized; possibly null. + + + Entry being materialized; possibly null. + + + Table storing the next links assoicated with the current payload + + + Whether we have finished processing the current data stream. + + + + Returns true if the underlying object used for counting is available + + + + + The count tag's value, if requested + + The count value returned from the server + + + Function to materialize an entry and produce a value. + + + + Gets the materializer context + + + + + Returns true if the materializer has been disposed + + + + + Gets the expected type. + + + The expected type. + + + + + Gets the collection value materialization policy. + + + + + Gets the complex value materialization policy. + + + + + The converter to use when assigning values of primitive properties. + + + + + The policy used to materialize primitive values. + + + + + The format of the response being materialized. + + + + The value of the current materialized entity. + + + The materializer plan. + + + The entry value materializer policy. + + + + Initializes a new instance of the class. + + The materializer context. + The entity tracking adapter. + The query components. + The expected type. + The materialize entry plan. + + + Enumerates casting each element to a type. + Element type to enumerate over. + Element source. + + An IEnumerable<T> that iterates over the specified . + + + This method should be unnecessary with .NET 4.0 covariance support. + + + + Enumerates casting each element to a type. + Element type to enumerate over. + Element source. + + An IEnumerable<T> that iterates over the specified . + + + This method should be unnecessary with .NET 4.0 covariance support. + + + + Creates a list to a target element type. + Materializer used to flow link tracking. + Element type to enumerate over. + Element type for list. + Element source. + + An IEnumerable<T> that iterates over the specified . + + + This method should be unnecessary with .NET 4.0 covariance support. + + + + Creates an entry materialization plan that is payload-driven. + Segment type for the entry to materialize (typically last of URI in query). + A payload-driven materialization plan. + + + Creates an entry materialization plan that is payload-driven and does not traverse expanded links. + Segment type for the entry to materialize (typically last of URI in query). + A payload-driven materialization plan. + + + Checks whether the entity on the specified is null. + Root entry for paths. + Expected type for . + Path to pull value for. + Whether the specified is null. + + This method will not instantiate entity types on the path. + Note that if the target is a collection, the result is always false, + as the model does not allow null feeds (but instead gets an empty + collection, possibly with continuation tokens and such). + + + + Provides support for Select invocations for projections. + Materializer under which projection is taking place. + Root entry for paths. + Expected type for . + Expected result type. + Path to traverse. + Selector callback. + An enumerable with the select results. + + + Provides support for getting payload entries during projections. + Entry to get sub-entry from. + Name of sub-entry. + The sub-entry (never null). + + + Initializes a projection-driven entry (with a specific type and specific properties). + Materializer under which projection is taking place. + Root entry for paths. + Expected type for . + Expected result type. + Properties to materialize. + Functions to get values for functions. + The initialized entry. + + + + Ensures that an entry of is + available on the specified . + + Materilizer used for logging. + Entry to ensure. + Required type. + + As the 'Projection' suffix suggests, this method should only + be used during projection operations; it purposefully avoid + "source tree" type usage and POST reply entry resolution. + + + + Materializes an entry with no special selection. + Materializer under which materialization should take place. + Entry with object to materialize. + Expected type for the entry. + The materialized instance. + + + Materializes an entry without including in-lined expanded links. + Materializer under which materialization should take place. + Entry with object to materialize. + Expected type for the entry. + The materialized instance. + + + Projects a simple value from the specified . + Root entry for paths. + Expected type for . + Path to pull value for. + The value for the specified . + + This method will not instantiate entity types, except to satisfy requests + for payload-driven feeds or leaf entities. + + + + Clears the materialization log of activity. + + + Applies the materialization log to the context. + + + Helper method for constructor of DataServiceCollection. + Element type for collection. + The enumerable which has the continuation on it. + The DataServiceCollection to apply the continuation to. + + + + Implementation of Read/>. + + + Return value of Read/> + + + + + Reads the next feed or entry. + + True if an entry was read, otherwise false + + + + Checks that the specified isn't null. + + Entry to check. + Name of entry being accessed. + + + Creates an entry materialization plan for a given projection. + Query components for plan to materialize. + A materialization plan. + + + Materializes the result of a projection into a list. + Materializer to use for the operation. + Target list. + Expected type for nested object. + Entries to materialize from. + + This method supports projections and as such does shallow payload-driven + materialization of entities. + + + + Gets a property from the specified list, throwing if not found. + List to get value from. + Property name to look up. + The specified property (never null). + + + Merges a list into the property of a given . + Entry to merge into. + Property on entry to merge into. + List of materialized values. + Next link for feed from which the materialized values come from. + Projection plan for the list. + + This method will handle entries that shouldn't be updated correctly. + + + + + Gets the Entity Materializer Context + + + + + Target instance that the materializer expects to update. + + + + + Current value being materialized; possibly null. + + + + + Function to materialize an entry and produce a value. + + + + + Gets the entry value materialization policy. + + + The entry value materialization policy. + + + + The enty or feed reader. + + + The message reader. + + + + Initializes a new instance of the class. + + The odata message reader. + The reader. + The materializer context. + The entity tracking adapter. + The query components. + The expected type. + The materialize entry plan. + + + + This method is for parsing CUD operation payloads which should contain + 1 a single entry + 2 An Error + + the message for the payload + The current ResponseInfo object + The expected type + the MaterializerEntry that was read + + + + Called when IDisposable.Dispose is called. + + + + + Reads the next feed or entry. + + + True if an entry was read, otherwise false + + + + + Feed being materialized; possibly null. + + + + + Entry being materialized; possibly null. + + + + + Whether we have finished processing the current data stream. + + + + + The count tag's value, if requested + + The count value returned from the server + + + + Returns true if the underlying object used for counting is available + + + + + Returns true if the materializer has been disposed + + + + + The format of the response being materialized. + + + + + Response Info object. + + + + + Items that have been read from the feed or entry. + + + + + Iteration of the entity collection reader. + + + + + Initializes a new instance of the class. + + The odata message reader. + The reader. + The materializer context. + The entity tracking adapter. + The query components. + The expected type. + The materialize entry plan. + LoadProperty Response Info object. + + + + Implementation of Read/>. + + + Return value of Read/> + + + + + Arguments for creating an instance of DataServiceClientRequestMessage. + + + + The actual method. + + + + Initializes a new instance of the class. + + Method of the request. + The Request Uri. + True if the default credentials need to be sent with the request. Otherwise false. + True if the request message must use POST verb for the request and pass the actual verb in X-HTTP-Method header, otherwise false. + The set of headers for the request. + + + + Gets the method. + + + + + Gets the request URI. + + + + + Returns whether the request message should use Post-Tunneling. + + + + + Gets the headers. + + + + + Gets the actual method. Indicates correct method to use in the post tunneling case. + + + + Represents the type of HTTP implementation to use when accessing the data service.Supported only by the WCF Data Services 5.0 client for Silverlight. + + + + Automatically choose the HTTP stack + When possible XmlHttp stack will be used, otherwise the Client stack will be used + + + + + Arguments used to configure the odata message reader settings. + + + + + Initializes a new instance of the class. + + The settings. + + + + Gets the settings. + + + + + Arguments used to configure the odata message writer settings. + + + + + Initializes a new instance of the class. + + The settings. + + + + Gets the settings. + + + + + Configurations on the behavior of the Client. + + + + + Creates a data service client configurations class + + The sender for the Reading Atom event. + + + + Gets the response configuration pipeline. + + + + + Gets the request pipeline. + + + + + Use this class to materialize objects provided from an . + + + + + Class responsible for materializing from OData to Objects + + + + + Creates the specified edm type. + + Type of the edm. + The type. + In the future this class will have Materialize and Update will be adding this in upcoming changes + A created object + + + The materializer context. + + + The complex value materialization policy. + + + The primitive value materialization policy. + + + + Initializes a new instance of the class. + + The context. + The primitive policy. + + + + Creates Collection instance of store Collection items. + + ODataProperty instance representing the Collection as seen in the atom payload. + CLR type of the Collection as defined by the user. + Newly created Collection instance. Never null. + + + + Creates the collection instance. + + The edm collection type reference. + Type of the client collection. + New Collection Instance. + + + + Applies collectionValue item to the provided . + + Atom property containing materialized Collection items. + Collection instance. Must implement ICollection<T> where T is either primitive or complex type (not an entity). + Type of items in the Collection. Note: this could be calculated from collectionInstance but we already have it in upstream methods. + Action called actually add a Collection item to + + + + Applies the collection data values to a collection instance. + + The items. + Name of the wire type. + The collection instance. + Type of the collection item. + The add value to backing I collection instance. + + + + Creates Collection instance of store Collection items. + + The edm collection type reference. + Type of the client collection. + Error to throw. + + Newly created Collection instance. Never null. + + + + + Gets the complex value materialization policy. + + + The complex value materialization policy. + + + + + Use this class to materialize objects provided from an . + + + + + Contains logic on how to materialize properties into an instance + + + + The collection value materialization policy. + + + The primitive property converter. + + + + Initializes a new instance of the class. + + The materializer context. + The lazy primitive property converter. + + + Materializes a primitive value. No op for non-primitive values. + Type of value to set. + Property holding value. + + + + Applies the values of the specified to a given . + + Type to which properties will be applied. + Properties to assign to the specified . + Instance on which values will be applied. + + + Applies a data value to the specified . + Type to which a property value will be applied. + Property with value to apply. + Instance on which value will be applied. + + + + Materializes the primitive data values in the given list of . + + Actual type for properties being materialized. + List of values to materialize. + + Whether properties missing from the client types should be ignored. + + + Values are materialized in-place withi each + instance. + + + + + Gets the collection value materialization policy. + + + The collection value materialization policy. + + + + + Gets the primitive property converter. + + + The primitive property converter. + + + + + Gets the materializer context. + + + The materializer context. + + + + + Initializes a new instance of the class. + + The materializer context. + The lazy primitive property converter. + + + Materializes a complex type property. + Type of the complex type to set. + The OData complex value. + + + + Determines if there is an existing entity or whether a new one is created + + + + Target instance that the materializer expects to update. + + + + Initializes a new instance of the class. + + The entity tracker. + The merge option. + The model. + The context. + + + Resolved or creates an instance on the specified . + Entry on which to resolve or create an instance. + Expected type for the . + + After invocation, the ResolvedObject value of the + will be assigned, along with the ActualType value. + + True if an existing entity is found. + + + + Tries to resolve the specified entry as an entry that has already been created in this materialization session or is already in the context. + + Entry to resolve. + Expected type of the entry. + True if the entry was resolved, otherwise False. + + + Tries to resolve the object as the target one in a POST refresh. + Entry to resolve. + true if the entity was resolved; false otherwise. + + + Tries to resolve the object as one from the context (only if tracking is enabled). + Entry to resolve. + Expected entry type for the specified . + true if the entity was resolved; false otherwise. + + + Tries to resolve the object from those created in this materialization session. + Entry to resolve. + true if the entity was resolved; false otherwise. + + + + Gets the value of the MergeOption + + + + + Gets the Context + + Implementation Note, only used in when a new DataServiceCollection, + would like to remove this dependency but would need to change projection + plan, might happen in a subsequent refactor + + + + + Gets the materialization log. + + + + + Gets the entity tracker. + + + + + Gets the model. + + + + + Target instance that the materializer expects to update. + + + + + Used to materialize entities from an to an object. + + + + Collection->Next Link Table for nested links + + + + Initializes a new instance of the class. + + The context. + The entity tracking adapter. + The lazy primitive property converter. + The next link table. + + + + Validates the specified matches + the parsed . + + Property as understood by the type system. + Property as parsed. + + + + Validates the specified matches + the parsed . + + Property as understood by the type system. + Property as parsed. + + + + Validates the specified matches + the parsed . + + Property as understood by the type system. + Property as parsed. + Client Model. + whether to do the entity check or not. + The type + + + + Validates the specified matches + the parsed . + + Property as understood by the type system. + Property as parsed. + Client model. + whether to do the entity check or not. + + + Materializes the specified . + Entry with object to materialize. + Expected type for the entry. + Whether links that are expanded should be materialized. + This is a payload-driven materialization process. + + + + Applies the values of the enumeration to the + of the specified . + + Entry with collection to be modified. + Collection property on the entry. + Values to apply onto the collection. + Next link for collection continuation. + Projection plan for collection continuation. + Whether this is a continuation request. + + + Records the fact that a rel='next' link was found for the specified . + Collection to add link to. + Link (possibly null). + Projection plan for the collection (null allowed only if link is null). + + + Records the fact that a was found but won't be modified. + Collection to add link to. + + + "Resolved" the entity in the by instantiating it. + Entry to resolve. + Type to create. + + After invocation, entry.ResolvedObject is exactly of type . + + + + + Matches the given item type with the corresponding collection element type. + + Item type. + Collection element type. + + + + Materializes the link properties if any with the url in the response payload + + Actual client type that is getting materialized. + MaterializerEntry instance containing all the links that came in the response. + + + + Populates the collection property on the entry's resolved object with the given items enumerator. + + Entry with collection to be modified. + Collection property on the entry. + Values to apply onto the collection. + Next link for collection continuation. + Projection plan for collection continuation. + Collection instance that was populated. + + + + Gets or creates a collection property on the specified . + + Instance on which to get/create the collection. + Collection property on the . + Is this collection being created for LoadProperty scenario. + + The collection corresponding to the specified ; + never null. + + + + + Applies the values of a nested to the collection + of the specified . + + Entry with collection to be modified. + Collection property on the entry. + Values to apply onto the collection. + Whether links that are expanded should be materialized. + + + Materializes the specified . + Entry with object to materialize. + Whether links that are expanded should be materialized. + This is a payload-driven materialization process. + + + + Gets the Entity Materializer Context + + + + + Contains an odata reader that is wrapped + + + + The reader. + + + The payload reading events. + + + + Prevents a default instance of the class from being created. + + The reader. + The data service response pipeling configuration object. + + + + Reads the next from the message payload. + + true if more items were read; otherwise false. + + + + Creates and Wraps an ODataReader for feeds or entries. + + The message reader. + The message type. + The expected EDM type. + The data service response pipeling configuration object. + A reader. + + + + Wraps an ODataReader + + The reader. + The data service response pipeling configuration object. + A reader. + + + + The current state of the reader. + + + + + The most recent that has been read. + + + + + Converter for primitive values which do not match the client property types. This can happen for two reasons: + 1) The client property types do not exist in the protocol (Uri, XElement, etc) + 2) The values were read using the service's model, and the client types are slightly different (ie float vs double, int vs long). + + + + The response format the values were originally read from. Required for re-interpreting spatial values correctly. + + + Geo JSON formatter used for converting spatial values. Lazily created in case no spatial values are ever converted. + + + Gml formatter used for converting spatial values. Lazily created in case no spatial values are ever converted. + + + + Initializes a new instance of the class. + + The response format the values were originally read from. Required for re-interpreting spatial values correctly. + + + + Converts a value to primitive value. + + The value. + Type of the property. + The converted value if the value can be converted + + + + Converts a non-spatial primitive value to the target type. + + The value to convert. + The target type of the conversion. + The converted value. + + + + Converts the value to the target type if needed. + + The value to convert. + The target type. + The converted value. + + + + Converts a spatial value by from geometry to geography or vice versa. Will return the original instance if it is already of the appropriate hierarchy. + Will throw whatever parsing/format exceptions occur if the sub type is not the same. + + The value to convert. + The target type of the conversion. + The original or converted value. + + + + Converts a spatial value by from geometry to geography or vice versa. Will return the original instance if it is already of the appropriate hierarchy. + Will throw whatever parsing/format exceptions occur if the sub type is not the same. + + The type of the value being converted. + The target type of the conversion. + The value to convert. + The original or converted value. + + + + Creates a policy that is used for materializing Primitive values + + + + MaterializerContext used to resolve types for materialization. + + + + primitive property converter used to convert the property have the value has been materialized. + + + + Initializes a new instance of the class. + + The context. + The lazy primitive property converter. + + + + Materializes the primitive data value. + + Type of the collection item. + Name of the wire type. + The item. + Materialized primitive data value. + + + + Materializes the primitive data value collection element. + + The collection item type. + Name of the wire type. + The item. + Materialized primitive collection element value + + + Materializes a primitive value. No op or non-primitive values. + Type of value to set. + Type name from the payload. + Value of primitive provided by ODL. + The exception message if the value is null. + The materialized value. + true if the value was set; false if it wasn't (typically because it's a complex value). + + + + Gets the primitive property converter. + + + The primitive property converter. + + + + + Materialized Entity arguments + + + + + Initializes a new instance of the class. + + The entry. + The entity. + + + + Gets the entry. + + + The entry. + + + + + Gets the entity. + + + + + This class represents the contract WCF Data Services client with the request message. + + + + Http method. + + + + Initializes a new instance of the class. + + The actual method. + + + + Returns the value of the header with the given name. + + Name of the header. + Returns the value of the header with the given name. + + + + Sets the value of the header with the given name. + + Name of the header. + Value of the header. + + + + Gets the stream to be used to write the request payload. + + Stream to which the request payload needs to be written. + + + + Abort the current request. + + + + + Begins an asynchronous request for a System.IO.Stream object to use to write data. + + The System.AsyncCallback delegate. + The state object for this request. + An System.IAsyncResult that references the asynchronous request. + + + + Ends an asynchronous request for a System.IO.Stream object to use to write data. + + The pending request for a stream. + A System.IO.Stream to use to write request data. + + + + Begins an asynchronous request to an Internet resource. + + The System.AsyncCallback delegate. + The state object for this request. + An System.IAsyncResult that references the asynchronous request for a response. + + + + Ends an asynchronous request to an Internet resource. + + The pending request for a response. + A System.Net.WebResponse that contains the response from the Internet resource. + + + + Returns a response from an Internet resource. + + A System.Net.WebResponse that contains the response from the Internet resource. + + + + Returns the collection of request headers. + + + + + Gets or sets the request url. + + + + + Gets or sets the method for this request. + + + + + Gets or set the credentials for this request. + + + + + Gets or sets the timeout (in seconds) for this request. + + + + + Gets or sets a value that indicates whether to send data in segments to the + Internet resource. + + + + + Gets or the actual method. In post tunneling situations method will be POST instead of the specified verb method. + + + + + The writing entity reference link arguments + + + + + Initializes a new instance of the class. + + The entity reference link. + The source. + The target. + + + + Gets the feed. + + + The feed. + + + + + Gets the source. + + + + + Gets the target. + + + + + Writing entry arguments + + + + + Initializes a new instance of the class. + + The entry. + The entity. + + + + Gets the entry. + + + The entry. + + + + + Gets the entity. + + + + + Writing navigation link arguments + + + + + Initializes a new instance of the class. + + The link. + The source. + The target. + + + + Gets the link. + + + The link. + + + + + Gets the source. + + + + + Gets the target. + + + + + Class that holds a variety of events for writing the payload from the OData to the wire + + + + Actions to execute before start entry called. + + + Actions to execute before end entry called. + + + Actions to execute before entity reference link written. + + + Actions to execute after before start navigation link called. + + + Actions to execute before end navigation link called. + + + The message writer setting configurations. + + + The delegate that represents how a message is created. + + + + Creates a request pipeline configuration class + + + + + Called when [message writer created]. + + The args. + The request pipeline configuration. + + + + Called when [entry starting]. + + The action. + The request pipeline configuration. + + + + Called when [entry ending]. + + The action. + The request pipeline configuration. + + + + Called when [entity reference link]. + + The action. + The request pipeline configuration. + + + + Called when [navigation link starting]. + + The action. + The request pipeline configuration. + + + + Called when [navigation link end]. + + The action. + The request pipeline configuration. + + + + Called when [create message writer settings configurations]. + + The writer settings. + + + + Fires before entry end. + + The entry. + The entity. + + + + Fires before entry start. + + The entry. + The entity. + + + + Fires before navigation end. + + The link. + The source. + The target. + + + + Fires before navigation start. + + The link. + The source. + The target. + + + + Fires before writing the on entity reference link. + + The entity reference link. + The source. + The target. + + + + Gets the request message to be used for sending the request. By providing a custom message, users + can replace the transport layer. + + + + + Determines if OnMessageCreating is being used or not. + + + + + Gets or sets the a value indicating whether the context is using the sending request event or not. + + + + + The reading navigation link arguments + + + + + Initializes a new instance of the class. + + The link. + + + + Gets the link. + + + The link. + + + + + The reading feed arguments + + + + + Initializes a new instance of the class. + + The feed. + + + + Gets the feed. + + + The feed. + + + + + Entity Tracker base, allows more decoupling for testing. + + + + + Find tracked entity by its resourceUri and update its etag. + + resource id + state of entity + entity if found else null + + + + get the related links ignoring target entity + + source entity + source entity's property + enumerable of related ends + + + + Attach entity into the context in the Unchanged state. + + entity descriptor from the response + fail for public api else change existing relationship to unchanged + Caller should validate descriptor instance. + The attached descriptor, if one already exists in the context and failIfDuplicated is set to false, then the existing instance is returned + if entity is already being tracked by the context + if identity is pointing to another entity + + + + verify the resource being tracked by context + + resource + The given resource. + if resource is not contained + + + Detach existing link + link to detach + true if target is being deleted, false otherwise + + + + attach the link with the given source, sourceProperty and target. + + source entity of the link. + name of the property on the source entity. + target entity of the link. + merge option to be used to merge the link if there is an existing link. + + + response materialization has an identity to attach to the inserted object + entity descriptor containing all the information about the entity from the response. + mergeOption based on which EntityDescriptor will be merged. + + + + Contains state and methods required to materialize odata collection, complex and primitive values + + + + + Context for materialization of OData values + + + + + Resolves the client type that should be used for materialization. + + Expected client clr type based on the API called. + + The name surfaced by the ODataLib reader. + If we have a server model, this will be a server type name that needs to be resolved. + If not, then this will already be a client type name. + The resolved annotation for the client type to materialize into. + + + + Resolves the expected EDM type to give to the ODataLib reader based on a client CLR type. + + The client side CLR type. + The resolved EDM type to provide to ODataLib. + + + + Gets a value indicating whether Ignore missing properties is set or not + + + + + Gets a value indicated the Client Edm Model + + + + + Gets the materialization Events + + + + + Initializes a materializer context + + Response information used to initialize with the materializer + + + + Resolved the given edm type to clr type. + + Expected Clr type. + Edm name of the type returned by the resolver. + an instance of ClientTypeAnnotation with the given name. + + + + Resolves the EDM type for the given CLR type. + + The client side CLR type. + The resolved EDM type. + + + + Gets a value indicating whether to ignore missing properties when materializing values + + + + + Gets a Client Edm model used to materialize values + + + + + Gets the materialization Events + + + + + Gets the Response information that backs the information on the context + + + + + The reading entry args + + + + + Initializes a new instance of the class. + + The entry. + + + + Gets the entry. + + + The entry. + + + + + Class that is responsible for configuration of actions that are invoked from a response + + + + Actions to be run when reading start entry called + + + Actions to be run when reading end entry called + + + Actions to be run when reading start feed called + + + Actions to be run when reading end feed called + + + Actions to be run when reading start link called + + + Actions to be run when reading end link called + + + Actions to be run after an entry has been materialized + + + The message reader setting configurations. + + + The sender. + + + + Creates a Data service client response pipeline class + + The sender for the Reading Atom event. + + + + Called when [reader settings created]. + + The reader message settings configuration. + The response pipeline configuration. + + + + Called when [read start entry]. + + The action. + The response pipeline configuration. + + + + Called when [read end entry]. + + The action. + The response pipeline configuration. + + + + Called when [read start feed]. + + The action. + The response pipeline configuration. + + + + Called when [read end feed]. + + The action. + The response pipeline configuration. + + + + Called when [read start navigation link]. + + The action. + The response pipeline configuration. + + + + Called when [read end navigation link]. + + The action. + The response pipeline configuration. + + + + Called when [entity materialized]. + + The action. + The response pipeline configuration. + + + + Executes actions that configure reader settings. + + The reader settings. + + + + Executes the on entry end actions. + + The entry. + + + + Executes the on entry start actions. + + The entry. + + + + Executes the on feed end actions. + + The feed. + + + + Executes the on feed start actions. + + The feed. + + + + Executes the on navigation end actions. + + The link. + + + + Executes the on navigation start actions. + + The link. + + + + Fires after the entry was materialized + + The entry. + The entity. + + + + Fires the reading atom entity event. + + The materializer entry. + + + + Fires the end entry events. + + The entry. + + + + Internal event instance used by the public ReadingEntity event. + + + + + Gets a value indicating whether this instance has handlers. + + + true if this instance has handlers; otherwise, false. + + + + + Gets a value indicating whether this instance has atom reading entity handlers. + + + true if this instance has atom reading entity handlers; otherwise, false. + + + + + Gets whether there is a reading entity handler + + + + + Class for reading top level feeds or entries and adapting it for the materializer + + + + The odata format being read. + + + The reader. + + + The Client Edm Model used to determine type information. + + + MergeOption information to determine how to merge descriptors. + + + An enumerator of values. + + + The current feed. + + + The current entry. + + + + Initializes a new instance of the class. + + The messageReader that is used to get the format of the reader. + The reader. + The model. + The mergeOption. + + + + Initializes a new instance of the class. Used for tests so no ODataMessageReader is required + + The format of the reader. + The reader. + The model. + The mergeOption. + + + + The count tag's value, if requested + + Should read pull if no feed exists. + The count value returned from the server + + + + Read a feed or entry, with the expected type. + + true if a value was read, otherwise false + + + + Disposes the reader + + + + + Tries to read a feed or entry. + + if set to true [lazy]. + The feed. + The entry. + true if a value was read, otherwise false + + + + Tries to read the start of a feed or entry. + + true if a value was read, otherwise false + + + + Tries to read a feed. + + if set to true [lazy]. + The feed. + true if a value was read, otherwise false + + + + Reads the remainder of a feed. + + if set to true [lazy]. + A feed. + + + + Lazily reads entries. + + An enumerable that will lazily read entries when enumerated. + + + + Tries to read an entry. + + The entry. + true if a value was read, otherwise false + + + + Reads the remainder of an entry. + + An entry. + + + + Reads a navigation link. + + A navigation link. + + + + Tries to read from the ODataReader. + + True if a value is read, otherwise false + + + + Reads from the reader and asserts the reader is in the expected state. + + The expected state. + + + + Asserts that an item could be read. + + + + + Asserts the reader is in the expected state. + + The expected state. + + + + Gets the current feed. + + + + + Gets the current entry. + + + + + Gets a value indicating whether this instance is end of stream. + + + true if this instance is end of stream; otherwise, false. + + + + + Useful extension methods for IDictionary + + + + + If the key exists in the dictionary, returns it. Otherwise creates a new value, adds it to the dictionary, and returns it. + + The type of the key. + The type of the value. + The dictionary to look in. + The key to find/add. + A callback to create a new value if one is not found. + The new or found value. + + + + Sets a range of values in the dictionary. A set operation is performed on each value in + + The type of the key. + The type of the value. + The dictionary to set the values in. + Enumerable of key-value pairs to set in . + + + + Tracks the user-preferred format which the client should use when making requests. + + + + MIME type for ATOM bodies (http://www.iana.org/assignments/media-types/application/). + + + MIME type for JSON bodies (implies light in V3, verbose otherwise) (http://www.iana.org/assignments/media-types/application/). + + + MIME type for JSON bodies in light mode (http://www.iana.org/assignments/media-types/application/). + + + MIME type for JSON bodies in light mode with all metadata. + + + MIME type for JSON bodies in verbose mode (http://www.iana.org/assignments/media-types/application/). + + + OData parameter value for verbose. + + + MIME type for changeset multipart/mixed + + + MIME type for XML bodies. + + + Combined accept header value for either 'application/atom+xml' or 'application/xml'. + + + text for the utf8 encoding + + + The character set the client wants the response to be in. + + + The context this format instance is associated with. + + + + Initializes a new instance of the class. + + DataServiceContext instance associated with this format. + + + + Indicates that the client should use the efficient JSON format. + + The model of the service. + + + + Indicates that the client should use the efficient JSON format. Will invoke the LoadServiceModel delegate property in order to get the required service model. + + + + + Indicates that the client should use the Atom format. + + + + + Sets the value of the Accept header to the appropriate value for the current format. + + The headers to modify. + + + + Sets the value of the Accept header for a query. + + The headers to modify. + The query components for the request. + + + + Sets the value of the Accept header for a stream request (will set it to '*/*'). + + The headers to modify. + + + + Sets the value of the Accept header for a count request (will set it to 'text/plain'). + + The headers to modify. + + + + Sets the value of the Accept header for a count request (will set it to 'multipart/mixed'). + + The headers to modify. + + + + Sets the value of the ContentType header on the specified entry request to the appropriate value for the current format. + + Dictionary of request headers. + + + + Sets the value of the Content-Type header a request with operation parameters to the appropriate value for the current format. + + Dictionary of request headers. + + + + Sets the value of the ContentType header on the specified links request to the appropriate value for the current format. + + Dictionary of request headers. + + + + Validates that we can write the request format. + + The request message to get the format from. + true if the writer is intended to for a parameter payload, false otherwise. + + + + Validates that we can read the response format. + + The response message to get the format from. + + + + Throws InvalidOperationException for JSON Light without a model. + + + + + Throws NotSupportedException for JSON Verbose format. + + Content-type to appear on the message. + + + + Validates that we can read or write a message with the given content-type value. + + The content-type value in question. + true if the writer is intended to for a parameter payload, false otherwise. + + + + Sets the request's content type header. + + Dictionary of request headers. + content type + + + + Sets the accept header to the given value and the charset to UTF-8. + + The headers to update. + The media type for the accept header. + + + + Chooses between using JSON-Light and the context-dependent media type for when Atom is selected based on the user-selected format. + + The value if using atom. + + Whether or not the select query option is present in the request URI. + If true, indicates that the client should ask the server to include all metadata in a JSON-Light response. + + The media type to use (either JSON-Light or the provided value) + + + + Gets the current format. Defaults to Atom if nothing else has been specified. + + + + + Invoked when using the parameterless UseJson method in order to get the service model. + + + + + True if the format has been configured to use Atom, otherwise False. + + + + + ODataFormat to use when writing URI literals. + + + + + Gets the service model. + + + + Encapsulates a URI that returns the next page of a paged WCF Data Services query result. + + + URI to next page of data. + + + Projection plan for results of next page. + + + Initializes a new instance. + URI to next page of data. + Projection plan for results of next page. + + + Returns the next link URI as a string. + A string representation of the next link URI. + + + Creates a new instance. + Link to next page of data (possibly null). + Plan to materialize the data (only null if nextLinkUri is null). + A new continuation object; null if nextLinkUri is null. + + + + Initializes a new instance that can + be used for this continuation. + + A new initializes . + + + Gets the URI that is used to return the next page of data from a paged query result. + A URI that returns the next page of data. + + + Type of element to be paged over. + + + Projection plan for the next page of data; null if not available. + + + Encapsulates a URI that returns the next page of a paged WCF Data Services query result.  + The type of continuation token. + + + Initializes a new typed instance. + URI to next page of data. + Projection plan for results of next page. + + + Type of element to be paged over. + + + Determines whether the client requests that the data service return inserted or updated entity data as an entry in the response message. + + + default option, no Prefer header is sent. + + + Prefer header with value return-content is sent with all PUT/MERGE/POST requests to entities. + + + Prefer header with value return-no-content is sent with all PUT/MERGE/POST requests to entities. + + + Stream wrapper for MR POST/PUT which also holds the information if the stream should be closed or not. + + + Arguments for the request when POST/PUT of the stream is issued. + + + The stream we are wrapping. + Can be null in which case we didn't open it yet. + + + Set to true if the stream should be closed once we're done with it. + + + + Constructor + + The stream to use. + Should the stream be closed before SaveChanges returns. + Additional arguments to apply to the request before sending it. + + + + Close the stream if required. + This is so that callers can simply call this method and don't have to care about the settings. + + + + The stream to use. + + + + Arguments to be used for creation of the HTTP request when POST/PUT for the MR is issued. + + + + Represents the URL of a binary resource stream. + + + name of the stream whose link needs to be populated. + + + self link for the stream. + This should always be an absolute uri, if specified. If the payload contains an relative uri, + we always use the context base uri to convert this into an absolute uri. + + + edit link for the stream. + This should always be an absolute uri, if specified. If the payload contains an relative uri, + we always use the context base uri to convert this into an absolute uri. + + + content type of the stream. + + + etag for the stream. + + + + Internal constructor to be used by the projection plan compiler, so that we capture the ri + + name of the stream. + + + + One of the properties changed its value + + property name + + + + PropertyChanged Event + + + + The name of the binary resource stream. + The name of the binary resource stream. + + + The URI that returns the binary resource stream. + The URI of the stream. + + + Gets the URI used to edit the binary resource stream. + The URI used to edit the stream. + + + Gets the MIME Content-Type of the binary resource stream. + The Content-Type value for the stream. + + + The eTag value that is used to determine concurrency for a binary resource stream. + The value of the eTag header for the stream. + + + + Class to describe errors thrown by transport layer. + + + + + Contains the state for this exception. + + + + + Constructs a new instance of DataServiceTransportException. + + ResponseMessage from the exception so that the error payload can be read. + Actual exception that this exception is wrapping. + + + + Gets the response message for this exception. + + + + + Contains the state of the exception, used for serialization in security transparent code. + + + + + Called when deserialization of the exception is complete. + + The deserialized exception. + + + + Gets or sets the response message for this exception. + + + + + Generates proxy methods for external callers to call internal methods + All lambda_methods are considered external. When these methods need + to access internal resources, a proxy must be used. Otherwise the call + will fail for partial trust scenario. + + + + + Dynamically generated proxy methods for external callers (lambda_method are external callers) + + + + + Builds an expression to best call the specified . + + The original method or constructor + The arguments with which to call the method. + An expression to call the argument method or constructor + + + + Determines whether this assembly has enough permissions to create + s that can be hosted within this assembly + and also skip visibility checks (access modifier checks) in order to call potentially + internal user types (e.g., anonymous types). + + True if this assembly has enough permissions. Otherwise, false. + + + + Build a externally visible to call the argument method. + + The original method or constructor + The arguments with which to call the method. + An expression to call the argument method or constructor + + + + Create a new dynamic method + + the name + the return type + the parameter types + a new instance of dynamic method + + + + Wraps the specified in an expression that invokes it. + + The method to wrap in an expression. + The arguments with which to invoke the . + An expression which invokes the with the specified . + + + + context + + + + Storage for the client model. + + + Set of tracked resources + + + Set of tracked resources by Identity + + + Set of tracked bindings + + + change order + + + + Creates a new instance of EntityTracker class which tracks all instances of entities and links tracked by the context. + + max protocol version that the client understands. + + + Gets the entity descriptor corresponding to a particular entity + Entity for which to find the entity descriptor + EntityDescriptor for the or null if not found + + + + verify the resource being tracked by context + + resource + The given resource. + if resource is not contained + + + + checks whether there is a tracked entity with the given identity. + + identity of the entity. + returns the entity if the identity matches, otherwise returns null. + + + + Adds the given entity descriptors to the list of the tracked entity descriptors. + + entity descriptor instance to be added. + + + the work to detach a resource + resource to detach + true if detached + + + remove the identity attached to the resource + resource with an identity to detach to detach + + + + Gets the link descriptor corresponding to a particular link b/w source and target objects + + Source entity + Property of + Target entity + LinkDescriptor for the relationship b/w source and target entities or null if not found + + + + attach the link with the given source, sourceProperty and target. + + source entity of the link. + name of the property on the source entity. + target entity of the link. + merge option to be used to merge the link if there is an existing link. + + + + find and detach link for reference property + + source entity + source entity property name for target entity + target entity + link merge option + true if found and not removed + + + + Add the given link to the link descriptor collection + + link descriptor to add + throws argument exception if the link already exists + + + + Remove the link from the list of tracked link descriptors. + + link to be removed. + true if the link was tracked and now removed, otherwise returns false. + + + + get the related links ignoring target entity + + source entity + source entity's property + enumerable of related ends + + + Detach existing link + link to detach + true if target is being deleted, false otherwise + + + response materialization has an identity to attach to the inserted object + entity descriptor containing all the information about the entity from the response. + mergeOption based on which EntityDescriptor will be merged. + + + use location from header to generate initial edit and identity + entity in added state + identity as specified in the response header - location header or dataserviceid header. + editlink as specified in the response header - location header. + + + + Attach entity into the context in the Unchanged state. + + entity descriptor from the response + fail for public api else change existing relationship to unchanged + Caller should validate descriptor instance. + The attached descriptor, if one already exists in the context and failIfDuplicated is set to false, then the existing instance is returned + if entity is already being tracked by the context + if identity is pointing to another entity + + + + Find tracked entity by its resourceUri and update its etag. + + resource id + state of entity + entity if found else null + + + + increment the resource change for sorting during submit changes + + the resource to update the change order + + + create this.identityToResource when necessary + + + create this.bindings when necessary + + + + Ensure an identity is unique and does not point to another resource + + The identity + The entity descriptor + + + + Returns a collection of all the links (ie. associations) currently being tracked by the context. + If no links are being tracked, a collection with 0 elements is returned. + + + + + Returns a collection of all the resources currently being tracked by the context. + If no resources are being tracked, a collection with 0 elements is returned. + + + + Holds information about a ServiceFunction. + + + + This is a just a pass through implementation of IODataRequestMessage. This class is used + for wrapping the inner batch requests or in silverlight when we are using the + non-silverlight http stack, we need to fire IODataRequestMessage which throws + when GetStream is called. + + + + + IODataRequestMessage implementation that this class wraps. + + + + + Boolean flag to allow calls to GetStream() on this instance + We want to allow this because WritingRequest and ReadingResponse events on the Windows Phone platform + requires that we pass a readable stream to user code as arguments. + + + + + request stream + + + + + dictionary containing http headers. + + + + + Creates a new instance of InternalODataRequestMessage. + + IODataRequestMessage that needs to be wrapped. + boolean flag to allow calls to GetStream() on this instance + + + + Returns the value of the header with the given name. + + Name of the header. + Returns the value of the header with the given name. + + + + Sets the value of the header with the given name. + + Name of the header. + Value of the header. + + + + Gets the stream to be used to write the request payload. + + Stream to which the request payload needs to be written. + + + + Abort the current request. + + + + + Begins an asynchronous request for a System.IO.Stream object to use to write data. + + The System.AsyncCallback delegate. + The state object for this request. + An System.IAsyncResult that references the asynchronous request. + + + + Ends an asynchronous request for a System.IO.Stream object to use to write data. + + The pending request for a stream. + A System.IO.Stream to use to write request data. + + + + Begins an asynchronous request to an Internet resource. + + The System.AsyncCallback delegate. + The state object for this request. + An System.IAsyncResult that references the asynchronous request for a response. + + + + Ends an asynchronous request to an Internet resource. + + The pending request for a response. + A System.Net.WebResponse that contains the response from the Internet resource. + + + + Returns a response from an Internet resource. + + A System.Net.WebResponse that contains the response from the Internet resource. + + + + Returns the collection of request headers. + + + + + Gets or Sets the request url. + + + + + Gets or Sets the http method for this request. + + + + + Gets or set the credentials for this request. + + + + + Gets or sets the timeout (in seconds) for this request. + + + + + Gets or sets a value that indicates whether to send data in segments to the + Internet resource. + + + + + internal headers dictionary + + + + Response from an Invoke call. + + + Operation response base class + + + Http headers of the response. + + + Http status code of the response. + + + exception to throw during get results + + + + constructor + + HTTP headers + + + When overridden in a derived class, contains the HTTP response headers associated with a single operation. + object that contains name value pairs of headers and values. + + + When overridden in a derived class, gets or sets the HTTP response code associated with a single operation. + Integer value that contains response code. + + + Gets error thrown by the operation. + An object that contains the error. + + + Http headers of the response. + + + Consutrcts an InvokeResponse identical to an OperationResponse. + The HTTP headers. + + + Encapsulates information about a link, or relationship, between entities. + + + navigation URI to the related entity. + + + association URI to the related entity. + + + the navigation property name + + + + Creates a LinkInfo with a given properyName + + the name of the navigation property + + + Gets the name of the link. + The name of the link. + + + Gets the URI that is the navigation property representation of the link. + The navigation link URI. + + + Gets the URI that is the association link. + The URI of the association link. + + + wrapper around loading a property from a response + + + + Wrapper HttpWebRequest & HttWebResponse + + + + Originating service request + + + The request info. + + + Originating WebRequest + + + reusuable async copy buffer + + + content to write to request stream + + + web response, closed when completed + + + Response info once it's available + + + buffer when copying async stream to response stream cache + + + response stream, returned to other parts of the system + with async, the asyncResponseStream is copied into this stream + + + copy of HttpWebResponse.ContentType + + + copy of HttpWebResponse.ContentLength + + + copy of HttpWebResponse.StatusCode + + + + does this own the response stream or does the container of this QueryAsyncResult? + + + + + if the BeginRead has been called with asyncStreamCopyBuffer, but EndRead has not. + do not return the buffer to general pool if any question of it being in use. + + + + constructor + source object of async request + async method name on source object + Originating serviceRequest + Originating WebRequest + The request info of the originating request. + user callback + user state + + + constructor + source object of async request + async method name on source object + Originating serviceRequest + Originating WebRequest + The request info of the originating request. + user callback + user state + the stream containing the request data. + + + + Ends the asynchronous query request. + + Element type of the result. + Source object of async request. + async method name. + The asyncResult being ended. + Data service response. + + + wrapper for HttpWebResponse.GetResponseStream + stream + + + start the asynchronous request + + + Synchronous web request + + + + Returns the response for the request. + + materialized results for the request. + element type of the results. + returns the instance of QueryOperationResponse containing the response. + + + + Returns the response for the request. + + materialized results for the request. + element type of the results. + returns the instance of QueryOperationResponse containing the response. + + + + Create materializer on top of response stream + + Precompiled projection plan (possibly null). + A materializer instance ready to deserialize ther result + + + + Processes the result for successfull request and produces the actual result of the request. + + Element type of the result. + The plan to use for the projection, if available in precompiled form. + A instance of QueryResponseResult created on top of of the request. + + + cleanup work to do once the request has completed + + + + Create the ResponseInfo. + + ResponseInfo object. + + + get stream which of copy buffer (via response stream) will be copied into + writtable stream, happens before GetAsyncResponseStreamCopyBuffer + + + get buffer which response stream will be copied into + writtable stream + + + returning a buffer after being done with it + buffer to return + + + set the http web response + response object + + + Disposes the request object if it is not null. Invokes the user callback + the request object + + + handle request.BeginGetResponse with request.EndGetResponse and then copy response stream + async result + + + verify non-null and not completed + async result + error code if null or completed + + + + Make async calls to read the response stream. + + the state containing the information about the asynchronous operation. + + + handle responseStream.BeginRead with responseStream.EndRead + async result + + + + Creates an instance of for the given plan. + + The projection plan. + expected payload kind. + A new materializer instance + + + HttpWebResponse.ContentLength + + + HttpWebResponse.ContentType + + + HttpWebResponse.StatusCode + + + entity whose property is being loaded + + + Projection plan for loading results; possibly null. + + + name of the property on the entity that is being loaded + + + constructor + entity + name of collection or reference property to load + Originating context + Originating WebRequest + user callback + user state + request object. + Projection plan for materialization; possibly null. + Whether this request is a continuation request. + + + + loading a property from a response + + QueryOperationResponse instance containing information about the response. + + + + Creates the ResponseInfo object. + + ResponseInfo object. + + + + Reads the data from the response stream into a buffer using the content length. + + Response stream. + Length of data to read. + byte array containing read data. + + + Reads the data from the response stream in chunks. + Response stream. + byte array containing read data. + + + + Load property data from an ATOM response + + The property being loaded + property values as IEnumerable. + + + + Load property data form a raw response + + The property being loaded + property values as IEnumerable. + + + + Used to materialize a collection of primitive or complex values from an . + + + + + Used to materialize a value from an . + + + + Optional field that indicates if we should expect a single result to materialize, as opposed to a collection. + + + Reader for a message that contains a value or property. + + + Has the value been read. + + + + Initializes a new instance of the class. + + The reader. + The materializer context. + The expected type. + The single result. + + + Clears the materialization log of activity. + + + Applies the materialization log to the context. + + + + Implementation of Read>. + + + Return value of Read/> + + + + + Called when IDisposable.Dispose is called. + + + + + Reads a value from the message reader. + + The expected client type being materialized into. + The expected type for the underlying reader. + + + + Feed being materialized; possibly null. + + + + + Entry being materialized; possibly null. + + + + + Whether we have finished processing the current data stream. + + + + + The count tag's value, if requested + + The count value returned from the server + + + + Function to materialize an entry and produce a value. + + + + + Returns true if the materializer has been disposed + + + + + The format of the response being materialized. + + + + Current value being materialized; possibly null. + + + + Initializes a new instance of the class. + + The reader. + The materializer context. + The expected type. + The single result. + + + + Reads a value from the message reader. + + The expected client type being materialized into. + The expected type for the underlying reader. + + + + Current value being materialized; possibly null. + + + + + Class that wraps the collection reader to get values from the collection reader + + + + + Collection Reader + + + + + Initializes a new instance of the class. + + The collection reader. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + The collection was modified after the enumerator was created. + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + The collection was modified after the enumerator was created. + + + + Gets the current element in the collection. + + The current element in the collection. + The enumerator is positioned before the first element of the collection or after the last element.-or- The collection was modified after the enumerator was created. + + + + Materializes entities from a sequence of ODataEntry objects + + + + The format of the response being materialized. + + + The entries enumerator + + + Is the enumerator finished. + + + + Initializes a new instance of the class. + + The entries. + The materializer context. + The entity tracking adapter. + The query components. + The expected type. + The materialize entry plan. + The format. + + + + Reads the next feed or entry. + + + True if an entry was read, otherwise false + + + + + Called when IDisposable.Dispose is called. + + + + + Feed being materialized; possibly null. + + + + + Entry being materialized; possibly null. + + + + + The count tag's value, if requested + + The count value returned from the server + + + + Returns true if the underlying object used for counting is available + + + + + Whether we have finished processing the current data stream. + + + + + Returns true if the materializer has been disposed + + + + + The format of the response being materialized. + + + + + Use this class to invoke projection methods from . + + + + Enumerates casting each element to a type. + Element type to enumerate over. + Element source. + + An IEnumerable<T> that iterates over the specified . + + + This method should be unnecessary with .NET 4.0 covariance support. + + + + Creates a list to a target element type. + Materializer used to flow link tracking. + Element type to enumerate over. + Element type for list. + Element source. + + An IEnumerable<T> that iterates over the specified . + + + This method should be unnecessary with .NET 4.0 covariance support. + + + + Checks whether the entity on the specified is null. + Root entry for paths. + Expected type for . + Path to pull value for. + Whether the specified is null. + + This method will not instantiate entity types on the path. + + + + Provides support for Select invocations for projections. + Materializer under which projection is taking place. + Root entry for paths. + Expected type for . + Expected result type. + Path to traverse. + Selector callback. + An enumerable with the select results. + + + Provides support for getting payload entries during projections. + Entry to get sub-entry from. + Name of sub-entry. + The sub-entry (never null). + + + Initializes a projection-driven entry (with a specific type and specific properties). + Materializer under which projection is taking place. + Root entry for paths. + Expected type for . + Expected result type. + Properties to materialize. + Functions to get values for functions. + The initialized entry. + + + Projects a simple value from the specified . + Materializer under which projection is taking place. + Root entry for paths. + Expected type for . + Path to pull value for. + The value for the specified . + + This method will not instantiate entity types, except to satisfy requests + for payload-driven feeds or leaf entities. + + + + Materializes an entry with no special selection. + Materializer under which materialization should take place. + Entry with object to materialize. + Expected type for the entry. + The materialized instance. + + + Materializes an entry without including in-lined expanded links. + Materializer under which materialization should take place. + Entry with object to materialize. + Expected type for the entry. + The materialized instance. + + + + Extension methods for ODataItems + + + + + Gets the materialized value. + + The property. + The materialized value. + + + + Determines whether a value has been materialized. + + The property. + true if the value has been materialized; otherwise, false. + + + + Sets the materialized value. + + The property. + The materialized value. + + + + Gets the materialized value. + + The complex value. + The materialized value. + + + + Determines whether a value has been materialized. + + The complex value. + true if the value has been materialized; otherwise, false. + + + + Sets the materialized value. + + The complex value. + The materialized value. + + + + Gets the materialized value. + + The annotatable object. + The materialized value + + + + Determines whether a value has been materialized. + + The annotatable object. + true if the value has been materialized; otherwise, false. + + + + Sets the materialized value. + + The annotatable object. + The materialized value. + + + + Annotation class for the materialized value + + + + + Gets or sets the value. + + + The value. + + + + + Materializes from $links + + + + The links value read from the message. + + + + Initializes a new instance of the class. + + The reader. + The materializer context. + The expected type. + The single result. + + + + Reads from message reader. + + The expected client type being materialized into. + The expected type for the underlying reader. + + + + Reads the links. + + + + + Gets the count value. + + + + + Current value being materialized; possibly null. + + + + + Returns true if the underlying object used for counting is available + + + + + Used to materialize a property from an . + + + + Current value being materialized; possibly null. + + + + Initializes a new instance of the class. + + The reader. + The materializer context. + The expected type. + The single result. + + + + Reads a value from the message reader. + + The expected client type being materialized into. + The expected type for the underlying reader. + + + + Current value being materialized; possibly null. + + + + + Used to materialize a value from an . + + + + Current value being materialized; possibly null. + + + + Initializes a new instance of the class. + + The reader. + The materializer context. + The expected type. + Is a single result expected. + + + + Reads a value from the message reader. + + The expected client type being materialized into. + The expected type for the underlying reader. + + + + Current value being materialized; possibly null. + + + + + To cache the entity instance as annotation for firing ReadingEntity event + + + + XDocument instance to cache the payload. + + + BaseUri for the entry payload. + + + + Creates a new instance of ReadingEntityInfo + + XElement containing the entry payload. + base uri for the entry payload. + + + + Returns the new XmlReader to cache the payload for firing ReadingEntity event. + + ODataEntry instance that is currently getting deserialized. + XmlReader that is used to read the payload. + BaseUri for the entry payload. + XmlReader instance that needs to be used to read the payload for the given odataentry. + + + + Use this class to analyze a member assignment and figure out the + target path for a member-init on an entity type. + + + This class will also detect cases in which the assignment + expression refers to cases which we shouldn't handle during + materialization, such as references to multiple entity types + as sources (or refering to no source at all). + + + + + base vistor class for walking an expression tree bottom up. + + + + + Main visit method for ALinqExpressionVisitor + + The expression to visit + The visited expression + + + + MemberBinding visit method + + The MemberBinding expression to visit + The visited MemberBinding expression + + + + ElementInit visit method + + The ElementInit expression to visit + The visited ElementInit expression + + + + UnaryExpression visit method + + The UnaryExpression expression to visit + The visited UnaryExpression expression + + + + BinaryExpression visit method + + The BinaryExpression expression to visit + The visited BinaryExpression expression + + + + TypeBinaryExpression visit method + + The TypeBinaryExpression expression to visit + The visited TypeBinaryExpression expression + + + + ConstantExpression visit method + + The ConstantExpression expression to visit + The visited ConstantExpression expression + + + + ConditionalExpression visit method + + The ConditionalExpression expression to visit + The visited ConditionalExpression expression + + + + ParameterExpression visit method + + The ParameterExpression expression to visit + The visited ParameterExpression expression + + + + MemberExpression visit method + + The MemberExpression expression to visit + The visited MemberExpression expression + + + + MethodCallExpression visit method + + The MethodCallExpression expression to visit + The visited MethodCallExpression expression + + + + Expression list visit method + + The expression list to visit + The visited expression list + + + + MemberAssignment visit method + + The MemberAssignment to visit + The visited MemberAssignmentt + + + + MemberMemberBinding visit method + + The MemberMemberBinding to visit + The visited MemberMemberBinding + + + + MemberListBinding visit method + + The MemberListBinding to visit + The visited MemberListBinding + + + + Binding List visit method + + The Binding list to visit + The visited Binding list + + + + ElementInit expression list visit method + + The ElementInit expression list to visit + The visited ElementInit expression list + + + + LambdaExpression visit method + + The LambdaExpression to visit + The visited LambdaExpression + + + + NewExpression visit method + + The NewExpression to visit + The visited NewExpression + + + + MemberInitExpression visit method + + The MemberInitExpression to visit + The visited MemberInitExpression + + + + ListInitExpression visit method + + The ListInitExpression to visit + The visited ListInitExpression + + + + NewArrayExpression visit method + + The NewArrayExpression to visit + The visited NewArrayExpression + + + + InvocationExpression visit method + + The InvocationExpression to visit + The visited InvocationExpression + + + Empty expression array; immutable. + + + Entity in scope for the lambda that's providing the parameter. + + + A non-null value when incompatible paths were found for an entity initializer. + + + Whether multiple paths were found for this analysis. + + + Path traversed from the entry field. + + + Initializes a new instance. + Entity in scope for the lambda that's providing the parameter. + + + Analyzes an assignment from a member-init expression. + Entity in scope for the lambda that's providing the parameter. + The expression to analyze. + The analysis results. + + + + Checks whether the this and a + paths for assignments are compatible. + + Type being initialized. + Previously seen member accesses (null if this is the first). + An exception to be thrown if assignments are not compatible; null otherwise. + + This method does not set the IncompatibleAssignmentsException property on either + analysis instance. + + + + Visits the specified . + Expression to visit. + The visited expression. + This method is overriden to short-circuit analysis once an error is found. + + + Visits a conditional expression. + Expression to visit. + The same expression. + + There are three expressions of interest: the Test, the IfTrue + branch, and the IfFalse branch. If this is a NullCheck expression, + then we can traverse the non-null branch, which will be the + correct path of the resulting value. + + + + Parameter visit method. + Parameter to visit. + The same expression. + + + + NewExpression visit method + + The NewExpression to visit + The visited NewExpression + + + Visits a nested member init. + Expression to visit. + The same expression. + + + Visits a member access expression. + Access to visit. + The same expression. + + + Visits a method call expression. + Method call to visit. + The same call. + + + Gets the expressions that go beyond the last entity. + An array of member expressions coming after the last entity. + Currently a single member access is supported. + + + Gets the expressions that "walk down" to the last entity, ignoring the last expression. + An array of member expressions down to, but excluding, the last entity. + + + Gets the expressions that "walk down" to the last entity. + whether to ignore the last expression or not. + An array of member expressions down to the last entity. + + + + Checks whether the and + paths for assignments are compatible. + + Type being initialized. + Previously seen member accesses. + Member assignments under evaluate. + An exception to be thrown if assignments are not compatible; null otherwise. + + + Creates an exception to be used when CheckCompatibleAssignment fails. + Type being initialized. + Previously seen member accesses. + Member assignments under evaluate. + A new exception with diagnostic information. + + + + If there is a MemberInitExpression 'new Person { ID = p.ID, Friend = new Person { ID = p.Friend.ID }}' + or a NewExpression 'new { ID = p.ID, Friend = new { ID = p.Friend.ID }}', + this method validates against the RHS of the member assigment, the expression "p.ID" for example. + + The expression to validate. + Type of the MemberInit or the New expression. + The outter nested initializer of the current initializer we are checking. + true if the expression to assign is fine; false otherwise. + + + A non-null value when incompatible paths were found for an entity initializer. + + + Whether multiple paths were found during analysis. + + + + Helper class for creating ODataLib readers, settings, and other read-related classes based on an instance of . + + + + The current response info. + + + + Initializes a new instance of the class. + + The response info. + + + + Create message reader settings for consuming responses. + + Optional XML entry customization callback to be used. + Newly created message reader settings. + + + + Creates a new the reader for the given response message and settings. + + The response message. + The settings. + Newly created message reader. + + + + Helper class for creating ODataLib writers, settings, and other write-related classes based on an instance of . + + + + The current request info. + + + + Initializes a new instance of the class. + + The request info. + + + + Create message writer settings for producing requests. + + Optional XML entry customization callback to be used for the start of entries. + Optional XML entry customization callback to be used for the end of entries. + if set to true indicates that this is a part of a batch request. + Newly created message writer settings. + + + + Creates a writer for the given request message and settings. + + The request message. + The writer settings. + true if the writer is intended to for a parameter payload, false otherwise. + Newly created writer. + + + + Creates a request message with the given arguments. + + The request message args. + Newly created request message. + + + + IODataRequestMessage interface implementation. + + + + Request Url. + + + RequestInfo instance. + + + + Creates a new instance of ODataRequestMessage. This constructor is used for top level requests. + + RequestMessage that needs to be wrapped. + Request Info. + Descriptor for this request. + + + + Create a request message for a batch part from the batch writer. This method copies request headers + from in addition to the method and Uri. + + ODataBatchWriter instance to build operation message from. + RequestMessageArgs for the request. + RequestInfo instance. + an instance of ODataRequestMessageWrapper. + + + + Create a request message for a non-batch requests and outer $batch request. This method copies request headers + from in addition to the method and Uri. + + RequestMessageArgs for the request. + RequestInfo instance. + an instance of ODataRequestMessageWrapper. + + + + Create ODataMessageWriter given the writer settings. + + Writer settings. + true if the writer is intended to for a parameter payload, false otherwise. + An instance of ODataMessageWriter. + + + + Abort the current request. + + + + + Sets the value of an HTTP header. + + The name of the header to set. + The value of the HTTP header or 'null' if the header should be removed. + + + + Begins an asynchronous request for a System.IO.Stream object to use to write data. + + The System.AsyncCallback delegate. + The state object for this request. + An System.IAsyncResult that references the asynchronous request. + + + + Ends an asynchronous request for a System.IO.Stream object to use to write data. + + The pending request for a stream. + A System.IO.Stream to use to write request data. + + + + Sets the request stream. + + The content stream to copy into the request stream. + + + + Begins an asynchronous request to an Internet resource. + + The System.AsyncCallback delegate. + The state object for this request. + An System.IAsyncResult that references the asynchronous request for a response. + + + + Ends an asynchronous request to an Internet resource. + + The pending request for a response. + A System.Net.WebResponse that contains the response from the Internet resource. + + + + Returns a response from an Internet resource. + + A System.Net.WebResponse that contains the response from the Internet resource. + + + + Sets the content length header for the given request message. + + + + + Add the list of header names to the list of headers whose values need to be reset after firing sendingrequest event. + + List of header names. + + + + Adds the given header to the list of header whose values need to be reset after firing sendingrequest event. + + List of header names. + + + + Fires the following events, in order + 1. WritingRequest + 2. SendingRequest2 + + Descriptor for which this request is getting generated. + + + + FireSendingRequest2 event. + + Descriptor for which this request is getting generated. + + + + Descriptor for this request; or null if there isn't one. + + + + + Return the stream containing the request payload. + + + + + Gets or sets a value that indicates whether to send request data in segments. + + + + + Returns true if the message is part of the batch request, otherwise return false; + + + + + This is a just a pass through implementation of IODataRequestMessage. + In order to keep the sync and non-async code the same, we write all requests into an cached stream and then copy + it to the underlying network stream in sync or async manner. + + + + + IODataRequestMessage implementation that this class wraps. + + + + + The cached request stream. + + + + + Creates a new instance of InternalODataRequestMessage. + + IODataRequestMessage that needs to be wrapped. + + + + Returns the value of the header with the given name. + + Name of the header. + Returns the value of the header with the given name. + + + + Sets the value of the header with the given name. + + Name of the header. + Value of the header. + + + + Gets the stream to be used to write the request payload. + + Stream to which the request payload needs to be written. + + + + Returns the collection of request headers. + + + + + Gets or Sets the request url. + + + + + Gets or Sets the http method for this request. + + + + + Return the stream containing the request payload. + + + + + This class wraps the request message for non-batch requests and $batch requests. + + + + + Wrapper for the top-level request messages which caches the request stream as it is written. In order to keep the sync and non-async + code the same, we write all requests into an cached stream and then copy it to the underlying network stream in sync or async manner. + + + + + Creates a new instance of ODataOuterRequestMessage. + + DataServiceClientRequestMessage instance. + RequestInfo instance. + Descriptor for this request. + + + + Create ODataMessageWriter given the writer settings. + + Writer settings. + true if the writer is intended to for a parameter payload, false otherwise. + An instance of ODataMessageWriter. + + + + Returns true if the message is part of the batch request, otherwise return false; + + + + + Return the stream containing the request payload. + + + + + This class wraps the request message for inner batch operations. + + + + + Inner batch request that ODataLib creates. + + + + + Creates a new instance of InnerBatchRequestMessageWrapper; + + Instance of DataServiceClientRequestMessage that represents this request. + Instance of IODataRequestMessage created by ODataLib. + RequestInfo instance. + Descriptor for this request. + + + + Create ODataMessageWriter given the writer settings. + + Writer settings. + true if the writer is intended to for a parameter payload, false otherwise. + An instance of ODataMessageWriter. + + + + Returns true if the message is part of the batch request, otherwise return false; + + + + + Return the stream containing the request payload. + + + + Use this class to represent an annotated list of path segments. + + + Initializes a new instance. + + + Initializes a new instance. + Root parameter for this path. + Expression to get the expected root type in the target tree. + Expression for the root entry. + + + Initializes a new instance. + Root parameter for this path. + Expression to get the expected root type in the target tree. + Expression for the root entry. + Member to initialize the path with. + + + Provides a string representation of this object. + A string representation of this object, suitable for debugging. + + + Parameter expression in the source tree. + + + Expression to get the entry for in the target tree. + + + Expression to get the expected root type in the target tree. + + + + Use this class to help keep track of projection paths built + while compiling a projection-based materialization plan. + + + + Stack of whether entities are in scope. + + + Registers rewrites for member initialization blocks. + + + Stack of lambda expressions in scope. + + + + Stack of expected type expression for . + + + + Stack of 'entry' parameter expressions. + + + Stack of projection (target-tree) types for parameters. + + + Initializes a new instance. + + + Provides a string representation of this object. + String representation of this object. + + + Records that a lambda scope has been entered when visiting a projection. + Lambda being visited. + Expression to the entry parameter from the target tree. + Expression to the entry-expected-type from the target tree. + + + + Records that a member initialization expression has been entered + when visting a projection. + + Expression for initialization. + + + Gets a rewrite for the specified expression; null if none is found. + Expression to match. + A rewrite for the expression; possibly null. + + + Records that a lambda scope has been left when visting a projection. + + + + Records that a member initialization expression has been left when + visting a projection. + + + + Registers a member initialization rewrite. + Root of member access path, typically a source tree parameter of entity type. + Sequence of names to match. + Rewrite expression for names. + + + Revokes the latest rewrite registered on the specified . + Root of rewrites to revoke. + Names to revoke. + + + Whether the current scope is acting on an entity. + + + Expression for the expected type parameter. + + + Whether any rewrites have been registered. + + + Expression for the entity parameter in the source tree lambda. + + + Expression for the entry parameter in the target tree. + + + Use this class to record how rewrites should occur under nested member initializations. + + + Sequence of member names to match. + + + Root of member access path, typically a source tree parameter of entity type. + + + Rewrite expressions for the last member path. + + + + Use this class to represent a step in a path of segments + over a parsed tree used during projection-driven materialization. + + + + Initializes a new instance. + Path on which this segment is located. + Name of member to access when traversing a property; possibly null. + + Type that we expect to project out; typically the same as , but may be adjusted. + + + + Initializes a new instance. + Path on which this segment is located. + Member expression for the projection path; possibly null. + + + Name of member to access when traversing a property; possibly null. + + + + Type that we expect to project out; typically the same as , but may be adjusted. + + + In particular, this type will be adjusted for nested narrowing entity types. + + For example: + from c in ctx.Customers select new NarrowCustomer() { + ID = c.ID, + BestFriend = new NarrowCustomer() { ID = c.BestFriend.ID } + } + + In this case, ID will match types on both sides, but BestFriend + will be of type Customer in the member access of the source tree + and we want to project out a member-initialized NarrowCustomer + in the target tree. + + + + + Contains the TypeAs at the source of the member access, null otherwise + e.g. (p as Employee).Manager + + + + Path on which this segment is located. + + + Use this class to store a materialization plan used with projections. + + + Runs this plan. + Materializer under which materialization should happen. + Root entry to materialize. + Expected type for the . + The materialized object. + + + Last segment type for query. + This typically matches the expected element type at runtime. + + + Provides a method to materialize a payload. + + + Expected type to project. + + + + Use this class to create a for a given projection lambda. + + + + Creates dynamic methods that wrap calls to internal methods. + + + Annotations being tracked on this tree. + + + Expression that refers to the materializer. + + + Tracks rewrite-to-source rewrites introduced by expression normalizer. + + + Number to suffix to identifiers to help with debugging. + + + Path builder used to help with tracking state while compiling. + + + Whether the top level projection has been found. + + + + Initializes a new instance. + + Rewrites introduces by normalizer. + + + Creates a projection plan from the specified . + Projection expression. + Tracks rewrite-to-source rewrites introduced by expression normalizer. + A new instance. + + + Binary visit method. + Binary expression to visit. + (Possibly rewritten) binary expression. + + This override is introduced because binary expressions are one of + the scopes at which normalization happens. + + + + Visits the specified expression. + Expression to check. + The visited expression. + + This override allows us to check for rewrites created by + ExpressionNormalizer.CreateCompareExpression. + + + + Unary visit method. + Unary expression to visit. + (Possibly rewritten) unary expression. + + This override is introduced because unary expressions are one of + the scopes at which normalization happens. + + + + + MemberExpression visit method + + The MemberExpression expression to visit + The visited MemberExpression expression + + + Parameter visit method. + Parameter to visit. + Resulting expression. + + The parameter may get rewritten as a materializing projection if + it refers to an entity outside of member binding. In this case, + it becomes a standalone tracked entity. + + + + + MemberInitExpression visit method + + The MemberInitExpression to visit + The visited MemberInitExpression + + A MemberInitExpression on a knownEntityType implies that we + want to materialize the thing. + + + + Visits a method call expression. + Expression to visit. + A (possibly rewritten) expression for . + + + + Visit + + Expression to visit + an expression + + + LambdaExpression visit method. + The LambdaExpression to visit + The visited LambdaExpression + + + Generates a call to a static method on AtomMaterializer. + Name of method to invoke. + Arguments to pass to method. + The constructed expression. + + There is no support for overload resolution - method names in AtomMaterializer + must be unique. + + + + Generates a call to a static method on AtomMaterializer. + Name of method to invoke. + Type arguments for method (possibly null). + Arguments to pass to method. + The constructed expression. + + There is no support for overload resolution - method names in AtomMaterializer + must be unique. + + + + + Rebind a call to DataServiceCollection constructor + + the constructor info + arguments to the constructor + An expression that calls the DSC constructor + + + Creates an expression that calls ProjectionCheckValueForPathIsNull. + Expression for root entry for paths. + Expression for expected type for entry. + Path to check null value for. + A new expression with the call instance. + + + Creates an expression that calls ProjectionValueForPath. + Expression for root entry for paths. + Expression for expected type for entry. + Path to pull value from. + A new expression with the call instance. + + + Creates an expression that calls ProjectionValueForPath. + Expression for root entry for paths. + Expression for expected type for entry. + Path to pull value from. + Path to convert result for. + A new expression with the call instance. + + + + Rebinds a conditional that performs a null check on an entity. + + Conditional expression. + Results of null check analysis. + The rebound expression. + + Do a rewrite to avoid creating a type in the null check: + a.b == null ? null : [a.b]-based expression + becomes + ProjectionIsNull(a.b) ? null : [a.b]-based expression + + + + + Rebinds the specified expression by gathering + annotated paths and returning an expression that calls the + ProjectionGetEntity method. + + Member initialization expression. + A new expression suitable for materialization. + + + + Creates an expression that gets the deepest entry that will be found on the + specified (for the target tree). + + Path of expressions to walk. + An expression that invokes ProjectionGetEntry on the target tree. + + + Gets an expression before its rewrite. + Expression to check. + The expression before normalization. + + + Rebinds the specified parameter expression as a path-based access. + Expression to rebind. + Annotation for the expression to rebind. + The rebound expression. + + + Rebinds the specified member access expression into a path-based value retrieval method call. + Member expression. + Annotation for the base portion of the expression. + A rebound expression. + + + Rewrites NewExpression for DataServiceCollection to a constructor proxy method call. + The proxy is required for partially trusted appdomains. Paging information is preserved in the materializer. + NewExpression to create a collection + The rewritten expression. + + + Rewrites a call to Select() by adding to the current paths to project out. + Call expression. + Expression with annotated path to include in member binding. + + + Rewrites a call to ToList in the specified method. + Call expression. + Expression with annotated path to include in member binding. + + All that is necessary here is to rewrite the call to Select() and indicate + that the target type is a given List<T>. + + TODO: we're not bubbling this all the way to the GetOrCreateCollection method - does it matter? + + + + Rewrites a method call used in a sequence method (possibly over entity types). + Call expression. + Expression that can be called directly to yield the expected value. + + + Returns a method call that returns a list from a typed enumerable. + Expression to convert. + Target type to return. + The new expression. + + + Annotates an expression, typically from the target tree. + + + Segment that marks the path found to an expression. + + + + class for the event. + Exposes the ResponseMessage to the user. + + + + + Initializes a new instance of the class for a + non-batch or top level $batch response. + + The response message the client is receiving. + Descriptor for the request that the client is receiving the response for. + + + + Initializes a new instance of the class. + + The response message the client is receiving. + Descriptor for the request that the client is receiving the response for. + Indicates if this response is to an inner batch query or operation. + + + + Gets the response message that the client is receiving. + + + + + True if the response is an inner batch operation or query; false otherwise. + + + + + Descriptor for the request that the client is receiving the response for. + The descriptor may be null for certain types of requests, like most GET requests + and the top level $batch request. + + + + + Collection for header name/value pairs which is known to be case insensitive. + + + + + Case-insensitive dictionary for storing the header name/value pairs. + + + + + Initializes a new instance of . + + The initial set of headers for the collection. + + + + Initializes a new instance of . + + The response message to pull the headers from. + + + + Initializes a new instance of . + + The initial set of headers for the collection. + + + + Initializes a new instance of which is empty. + + + + + Adds default system headers + Currently it sets User-Agent header as default system header + + + + + Tries to get the value of the header with the given name, if it is in the collection. + + The header name to look for. + The header value, if it was in the collection. + Whether or not the header was in the collection. + + + + Gets the value of the header, or null if it is not in the collection. + + The header name to look for. + The header value or null. + + + + Sets a header value. Will remove the header from the underlying dictionary if the new value is null. + + The header name to set. + The new value of the header. + + + + Sets multiple header values at once. + + The headers to set. + + + + Gets an enumeration of the header values in the collection. + + An enumeration of the header values in the collection. + + + + Sets the request DataServiceVersion and MaxDataServiceVersion. + + DSV to set the request to. + Max protocol version, which MDSV will essentially be set to. + + + + Sets the header if it was previously unset. + + The header to set. + The new header value. + + + + Sets UserAgent header + + + + + Creates a copy of the current header collection which uses a different dictionary to store headers. + + A copy of the current headers. + + + + Gets the DataServiceVersion as a Version object if it is encoded as a proper version string with an optional Util.VersionSuffix ending. + + The DataServiceVersion header as a Version object. + + + + Gets the underlying dictionary the headers are stored in. Should only be used when absolutely necessary for maintaining public API. + + + + + Gets the names of all the headers in the collection. + + + + + Class which wraps the dataservicecontext and exposes information required for + generating request to send to the server + + + + The type resolver for the current request. + + + + Creates a new instance of RequestInfo class which is used to build the request to send to the server + + wrapping context instance. + Whether this is a continuation request. + + + + Creates a new instance of RequestInfo class which is used to build the request to send to the server + + wrapping context instance. + + + + This method wraps the HttpWebRequest.GetSyncronousResponse method call. The reasons for doing this are to give us a place + to invoke internal test hook callbacks that can validate the response headers, and also so that we can do + debug validation to make sure that the headers have not changed since they were originally configured on the request. + + ODataRequestMessageWrapper instance + If set to true, this method will only re-throw the WebException that was caught if + the response in the exception is null. If set to false, this method will always re-throw in case of a WebException. + + Returns the HttpWebResponse from the wrapped GetSyncronousResponse method. + + + + + This method wraps the HttpWebRequest.EndGetResponse method call. The reason for doing this is to give us a place + to invoke internal test hook callbacks that can validate the response headers. + + HttpWebRequest instance + Async result obtained from previous call to BeginGetResponse. + Returns the HttpWebResponse from the wrapped EndGetResponse method. + + + + Get the server type name - either from the entity descriptor or using the type resolver. + + The entity descriptor. + The server type name for the entity. + + + + Get the server type name - either from the entity descriptor or using the type resolver. + + Client type annotation. + The server type name for the entity. + + + + Infers the server type name for the entity tracked in the given descriptor based on the server model. + + The descriptor containing the entity to get the type name for. + The type name or null if it could not be inferred. + + + + Fires the WritingEvent event + + Entity being serialized + XML data of the ATOM entry + The xml base of the feed or entry containing the current ATOM entry + + + + The reverse of ResolveType, use for complex types and LINQ query expression building + + client type + type for the server + + + + Returns the instance of ResponseInfo class, which provides all the information for response handling. + + merge option to use for handling the response conflicts. + If this parameter is null the default MergeOption value from the context is used. + instance of response info class. + + + + Returns the instance of LoadPropertyResponseInfo class, which provides information for LoadProperty response handling. + + Merge option to use for conflict handling. + Entity whose property is being loaded. + Property which is being loaded. + Instance of the LoadPropertyResponseInfo class. + + + + Validates that the response version can be accepted as a response for this request + + The version of the response (possibly null if none was specified) + Exception if the version can't be accepted, otherwise null. + + + + Fires the SendingRequest event. + + SendingRequestEventArgs instance containing all information about the request. + + + + Fires the SendingRequest2 event. + + SendingRequest2EventArgs instance containing all information about the request. + + + + Returns an instance of the IODataRequestMessage + + Arguments for creating the request message. + an instance of the IODataRequestMessage + + + + Asks the context to Fire the BuildingRequest event and get RequestMessageArgs. + + Http method for the request. + Base Uri for the request. + Request headers. + HttpStack to use. + Descriptor for the request, if there is one. + A new RequestMessageArgs object for building the request message. + + + The writing helper to use. + + + context instance. + + + + Whether this is a continuation request. + + + + Gets the URI used to indicate what type scheme is used by the service. + + + Override the namespace used for the data parts of the ATOM entries + + + Gets the configurations. + + + Returns the instance of entity tracker class which tracks all the entities and links for the context. + + + Indicates if there are subscribers for the WritingEntity event + + + Whether to ignore extra properties in the response payload. + + + True if the context's ResolveName property has been set, otherwise false. + + + True if the context's ResolveName property can be determined to be a user-supplied value, instead of the one provided by codegen. + + + Gets the BaseUriResolver + + + Gets the response preference for Add and Update operations. + + + The maximum protocol version the client should understand. + + + + Returns true if there are subscribers to SendingRequest event. + + + + + Returns true if there are subscribers to SendingRequest event. + + + + + True if the user could have modified a part of the request. This lets us turn off assertions that normally + prevent us from making certain mistakes we don't mind the user intentionally ignoring. + + + + + Gets the authentication information used by each query created using the context object. + + + + + Get the timeout span in seconds to use for the underlying HTTP request to the data service. + + + + + Whether to use post-tunneling for PUT/DELETE. + + + + + Gets the client model. + + + + + Gets the tracker for the user-specified format to use for requests. + + + + + Gets the type resolver. + + + + + Gets the URL conventions the user set on the context. + + + + + The HTTP stack to use in Silverlight. + + + + + Gets a System.Boolean value that controls whether default credentials are sent with requests. + + + + + Wrappers the context and only exposes information required for + processing the response from the server + + + + The request that led to this response. + + + MergeOption to use to process the response. + + + + Creates a new instance of the ResponseInfo class which exposes all the information from + the context required for processing the response from the server. + + The request info + mergeOption + + + The reading helper to use. + + + + Whether this is a continuation request. + + + + Override the namespace used for the scheme in the category for ATOM entries. + + + Override the namespace used for the data parts of the ATOM entries + + + MergeOption to use to merge the entities from the response and one present in the client. + + + Whether to ignore extra properties in the response payload. + + + Returns the instance of entity tracker class which tracks all the entities and links for the context. + + + A flag indicating if the data service context is applying changes + + + Gets the type resolver instance. + + + Gets the BaseUriResolver + + + return the protocol version as specified in the client. + + + + Gets the client model. + + + + + Returns the DataServiceContext + Should be only used in DataServiceCollection constructor, where + we need to infer the context from the results. + + context instance. + + + + Gets the reading pipeline configuration + + + + + Information used for handling response to a LoadProperty request. + + + + + Constructs a new instance. + + Information about the request. + Merge option. + Entity whose property is being loaded. + Property which is being loaded. + + + + Entity whose property is being loaded. + + + + + Property being loaded. + + + + Event args for the SendingRequest2 event. + + + + Creates a new instance of SendingRequest2EventsArgs + + request message. + Descriptor that represents this change. + True if this args represents a request within a batch, otherwise false. + + + The web request reported through this event. The handler may modify or replace it. + + + The request header collection. + + + Returns true if this event is fired for request within a batch, otherwise returns false. + + + + Forwards calls to an OData Writer + + + + The odataWriter. + + + The payload writing events. + + + + Prevents a default instance of the class from being created. + + The odata writer. + The request pipeline configuration. + + + + Creates the odata entry writer. + + We never create a feed writer as the client doesn't support deep insert, if we did this would need to change + The message writer. + The request pipeline configuration. + The odata Writer Wrapper + + + + Creates the odata entry writer for testing purposes only + + The odata writer. + The request pipeline configuration. + The odata Writer Wrapper + + + + Writes the start. + + The entry. + The entity. + + + + Writes the end. + + The entry. + The entity. + + + + Writes the end. + + The link. + The source. + The target. + + + + Writes the start. + + The navigation link. + The source. + The target. + + + + Writes the entity reference link. + + The reference link. + The source. + The target. + + + IODataRequestMessage interface implementation. + + + Request Url. + + + The effective HTTP method. + + + RequestInfo instance. + + + HttpWebRequest instance. + + + List of header value to reset after SendingRequest event is fired. + + + True if the FireSendingRequest method is already called, otherwise false. + + + True if SendingRequest2Event is currently invoked, otherwise false. + + + + Creates a new instance of HttpWebRequestMessage. + + Arguments for creating the request message. + + + + Creates a new instance of HttpWebRequestMessage. + + Arguments for creating the request message. + RequestInfo instance. + + + + Returns the value of the header with the given name. + + Name of the header. + Returns the value of the header with the given name. + + + + Sets the value of the header with the given name. + + Name of the header. + Value of the header. + + + + Gets the stream to be used to write the request payload. + + Stream to which the request payload needs to be written. + + + + Abort the current request. + + + + + Begins an asynchronous request for a System.IO.Stream object to use to write data. + + The System.AsyncCallback delegate. + The state object for this request. + An System.IAsyncResult that references the asynchronous request. + + + + Ends an asynchronous request for a System.IO.Stream object to use to write data. + + The pending request for a stream. + A System.IO.Stream to use to write request data. + + + + Begins an asynchronous request to an Internet resource. + + The System.AsyncCallback delegate. + The state object for this request. + An System.IAsyncResult that references the asynchronous request for a response. + + + + Ends an asynchronous request to an Internet resource. + + The pending request for a response. + A System.Net.WebResponse that contains the response from the Internet resource. + + + + Returns a response from an Internet resource. + + A System.Net.WebResponse that contains the response from the Internet resource. + + + + Sets the Content length of the Http web request + + Http web request to set the content length on + Length to set + + + + Sets the accept charset. + + The HTTP web request. + The header value. + + + + Attempts to set the UserAgent property if it exists other wise returns false + + The http web request. + The value of the user agent. + + + + Add the list of header names to the list of headers whose values need to be reset after firing sendingrequest event. + + List of header names. + + + + This method is called just before firing SendingRequest2 event. + + + + + This method is called immd. after SendingRequest2 event has been fired. + + + + + Set the header values on the request. + + IODataRequestMessage instance containing all the headers. + Dictionary of cached headers. + The Effective http method. + + + + Create an instance of HttpWebRequest from the given IODataRequestMessage instance. This method + is also responsible for firing SendingRequest event. + + Http Method. + Request Url. + DataServiceClientRequestMessageArgs instance. + an instance of HttpWebRequest. + + + + Sets the value of the given header in the httpwebrequest instance. + This has a special case for some of the headers to set the properties on the request instead of using the Headers collection. + + The request to apply the header to. + Name of the header. + Value of the header. + + + + Get the value of the given header in the httpwebrequest instance. + This has a special case for some of the headers to set the properties on the request instead of using the Headers collection. + + The request to get the header value from. + Name of the header. + the value of the header with the given name. + + + + Convert the WebException into DataServiceWebException. + + WebException instance. + an instance of DataServiceWebException that abstracts the WebException. + + + + Fire SendingRequest event if its conditions are met. + If the user has a handler for BuildingRequest, we will throw. + If the user has no BuildingRequest handlers but does have a SendingRequest2 handler, we silently do not fire this event (this is shipped 5.0 behavior). + + + + Returns the request url. + + + Returns the method for this request. + + + Returns the collection of request headers. + + + Returns the underlying HttpWebRequest + + + + Gets or set the credentials for this request. + + + + + Gets or sets the timeout (in seconds) for this request. + + + + + Gets or sets a value that indicates whether to send data in segments to the + Internet resource. + + + + + IODataResponseMessage interface implementation + + + + Cached headers. + + + A func which returns the response stream. + + + The response status code. + + + HttpWebResponse instance. + + + + Constructor. + + The headers. + The status code. + A function returning the response stream. + + + + Constructor. + + HttpWebResponse instance. + + + + Constructor. + + The headers. + The status code. + A function returning the response stream. + + + + Returns the value of the header with the given name. + + Name of the header. + Returns the value of the header with the given name. + + + + Sets the value of the header with the given name. + + Name of the header. + Value of the header. + + + + Gets the stream to be used to read the response payload. + + Stream from which the response payload can be read. + + + + Close the underlying HttpWebResponse. + + + + + Perform the actual cleanup work. + + If 'true' this method is called from user code; if 'false' it is called by the runtime. + + + + Returns the collection of response headers. + + + + + Gets the underlying . + + + + + The response status code. + + + + + Component for converting properties on client types into instance of in order to serialize insert/update payloads. + + + + + The request info. + + + + + Initializes a new instance of the class. + + The request info. + + + + Creates a list of ODataProperty instances for the given set of properties. + + Instance of the resource which is getting serialized. + The server type name of the entity whose properties are being populated. + The properties to populate into instance of ODataProperty. + Populated ODataProperty instances for the given properties. + + + + Creates and returns an ODataComplexValue from the given value. + + The value type. + The complex value. + If the value is a property, then it represents the name of the property. Can be null, for non-property. + True, if the value is an item in a collection, false otherwise. + Set of instances of complex types encountered in the hierarchy. Used to detect cycles. + An ODataComplexValue representing the given value. + + + + Creates and returns an ODataCollectionValue from the given value. + + The type of the value. + If the value is a property, then it represents the name of the property. Can be null, for non-property. + The value. + Set of instances of complex types encountered in the hierarchy. Used to detect cycles. + An ODataCollectionValue representing the given value. + + + + Returns the primitive property value. + + Value of the property. + Type of the property. + Returns the value of the primitive property. + + + + Gets the specified type name as an EDM Collection type, e.g. Collection(Edm.String) + + Type name of the items in the collection. + Collection type name for the specified item type name. + + + + Creates and returns an for the given primitive value. + + The property being converted. + The property value to convert.. + An ODataValue representing the given value. + + + + Creates a list of ODataProperty instances for the given set of properties. + + Instance of the resource which is getting serialized. + The properties to populate into instance of ODataProperty. + Set of instances of complex types encountered in the hierarchy. Used to detect cycles. + Populated ODataProperty instances for the given properties. + + + + Tries to convert the given value into an instance of . + + The property being converted. + The property value to convert.. + Set of instances of complex types encountered in the hierarchy. Used to detect cycles. + The odata value if one was created. + Whether or not the value was converted. + + + + Returns the value of the complex property. + + Property which contains name, type, is key (if false and null value, will throw). + property value + List of instances of complex types encountered in the hierarchy. Used to detect cycles. + An instance of ODataComplexValue containing the value of the properties of the given complex type. + + + + Returns the value of the collection property. + + Collection property details. Must not be null. + Collection instance. + List of instances of complex types encountered in the hierarchy. Used to detect cycles. + An instance of ODataCollectionValue representing the value of the property. + + + + Adds a type annotation to the value if it is primitive and not defined on the server. + + The server type name of the entity whose properties are being populated. + The current property. + The already converted value of the property. + + + + Convert between primitive types to string and xml representation + + + + + Constructor + + + + + Create a parser token from xml feed + + The xml reader + The reader is expected to be placed at the beginning of the element, and after this method call, the reader will be placed + at the EndElement, such that the next Element will be read in the next Read call. + token + + + + Create a parser token from text representation ($value end points) + + The text form reprensentation + token + + + + Create an instance of primitive type from a string representation + + The string representation + An instance of primitive type + + + + Convert an instance of primitive type to string + + The instance + The string representation of the instance + + + + Convert between primitive types to string and xml representation + + + + + Create an instance of primitive type from a string representation + + The string representation + An instance of primitive type + + + + Convert an instance of primitive type to string + + The instance + The string representation of the instance + + + + Convert between primitive types to string and xml representation + + + + + Create an instance of primitive type from a string representation + + The string representation + An instance of primitive type + + + + Convert an instance of primitive type to string + + The instance + The string representation of the instance + + + + Convert between primitive types to string and xml representation + + + + + Create an instance of primitive type from a string representation + + The string representation + An instance of primitive type + + + + Convert an instance of primitive type to string + + The instance + The string representation of the instance + + + + Convert between primitive types to string and xml representation + + + + MethodInfo for the ToArray method on the Binary type. + + + + Create an instance of primitive type from a string representation + + The string representation + An instance of primitive type + + + + Convert an instance of primitive type to string + + The instance + The string representation of the instance + + + + Converts the System.Data.Linq.Binary to byte[] by calling the ToArray method on the Binary type. + + Instance of Binary type. + Byte[] instance containing the value of the Binary type. + + + + The delay loaded binary type + + + + + Convert between primitive types to string and xml representation + + + + + Create an instance of primitive type from a string representation + + The string representation + An instance of primitive type + + + + Convert an instance of primitive type to string + + The instance + The string representation of the instance + + + + Convert between primitive types to string and xml representation + + + + + Create an instance of primitive type from a string representation + + The string representation + An instance of primitive type + + + + Convert an instance of primitive type to string + + The instance + The string representation of the instance + + + + Convert between primitive types to string and xml representation + + + + + Create an instance of primitive type from a string representation + + The string representation + An instance of primitive type + + + + Convert an instance of primitive type to string + + The instance + The string representation of the instance + + + + Convert between primitive types to string and xml representation + + + + + Create an instance of primitive type from a string representation + + The string representation + An instance of primitive type + + + + Convert an instance of primitive type to string + + The instance + The string representation of the instance + + + + Convert between primitive types to string and xml representation + + + + + Create an instance of primitive type from a string representation + + The string representation + An instance of primitive type + + + + Convert an instance of primitive type to string + + The instance + The string representation of the instance + + + + Convert between primitive types to string and xml representation + + + + + Create an instance of primitive type from a string representation + + The string representation + An instance of primitive type + + + + Convert an instance of primitive type to string + + The instance + The string representation of the instance + + + + Convert between primitive types to string and xml representation + + + + + Create an instance of primitive type from a string representation + + The string representation + An instance of primitive type + + + + Convert an instance of primitive type to string + + The instance + The string representation of the instance + + + + Convert between primitive types to string and xml representation + + + + + Create an instance of primitive type from a string representation + + The string representation + An instance of primitive type + + + + Convert an instance of primitive type to string + + The instance + The string representation of the instance + + + + Convert between primitive types to string and xml representation + + + + + Create an instance of primitive type from a string representation + + The string representation + An instance of primitive type + + + + Convert an instance of primitive type to string + + The instance + The string representation of the instance + + + + Convert between primitive types to string and xml representation + + + + + Create an instance of primitive type from a string representation + + The string representation + An instance of primitive type + + + + Convert an instance of primitive type to string + + The instance + The string representation of the instance + + + + Convert between primitive types to string and xml representation + + + + + Create an instance of primitive type from a string representation + + The string representation + An instance of primitive type + + + + Convert an instance of primitive type to string + + The instance + The string representation of the instance + + + + Convert between primitive types to string and xml representation + + + + + Create an instance of primitive type from a string representation + + The string representation + An instance of primitive type + + + + Convert an instance of primitive type to string + + The instance + The string representation of the instance + + + + Convert between primitive types to string and xml representation + + + + + Create an instance of primitive type from a string representation + + The string representation + An instance of primitive type + + + + Convert an instance of primitive type to string + + The instance + The string representation of the instance + + + + Convert between primitive types to string and xml representation + + + + + Create an instance of primitive type from a string representation + + The string representation + An instance of primitive type + + + + Convert an instance of primitive type to string + + The instance + The string representation of the instance + + + + Convert between primitive types to string and xml representation + + + + + Create an instance of primitive type from a string representation + + The string representation + An instance of primitive type + + + + Convert an instance of primitive type to string + + The instance + The string representation of the instance + + + + Convert between primitive types to string and xml representation + + + + + Create an instance of primitive type from a string representation + + The string representation + An instance of primitive type + + + + Convert an instance of primitive type to string + + The instance + The string representation of the instance + + + + Convert between primitive types to string and xml representation + + + + + Create an instance of primitive type from a string representation + + The string representation + An instance of primitive type + + + + Convert an instance of primitive type to string + + The instance + The string representation of the instance + + + + Convert between primitive types to string and xml representation + + + + + Create an instance of primitive type from a string representation + + The string representation + An instance of primitive type + + + + Convert an instance of primitive type to string + + The instance + The string representation of the instance + + + + Convert between primitive types to string and xml representation + + + + + Create an instance of primitive type from a string representation + + The string representation + An instance of primitive type + + + + Convert an instance of primitive type to string + + The instance + The string representation of the instance + + + + Convert between primitive types to string and xml representation + + + + + Create an instance of primitive type from a string representation + + The string representation + An instance of primitive type + + + + Convert an instance of primitive type to string + + The instance + The string representation of the instance + + + + Convert between primitive types to string and xml representation + + + + + Create an instance of primitive type from a string representation + + The string representation + An instance of primitive type + + + + Convert an instance of primitive type to string + + The instance + The string representation of the instance + + + + Convert between an instance of geography and its Xml representation + + + + + Create an instance of primitive type from the xml reader + + The xml reader + The reader is expected to be placed at the beginning of the element, and after this method call, the reader will be placed + at the EndElement, such that the next Element will be read in the next Read call. + An instance of primitive type + + + + Convert between an instance of geometry and its Xml representation + + + + + Create an instance of primitive type from the xml reader + + The xml reader + The reader is expected to be placed at the beginning of the element, and after this method call, the reader will be placed + at the EndElement, such that the next Element will be read in the next Read call. + An instance of primitive type + + + + Convert between an instance of DataServiceStreamLink and its xml representation. + There is never a scenario in client which requires to do this, but since a converter + is required, adding one which does nothing for namedstream. + + + + + Create an instance of primitive type from a string representation + + The string representation + An instance of primitive type + + + + Convert an instance of primitive type to string + + The instance + The string representation of the instance + + + + Represent a Primitive Type on the client + + + 1) Performance + For performance reasons we use several dictionaries here: + - clrMapping contains well known primitive types. Initialized in the static constructor and never changed + after initialization. Therefore it is safe to read without locks. Also see comment about Binary type below + - derivedPrimitiveTypeMapping - a map for custom primitive types derived from well known primitive types - + especially spatial types. New items may be added at runtime so reads and writes must be locked + - knownNonPrimitiveTypes - a HashSet of types we have seen and determined they are not primitive. Used + to shortcircuit logic for finding derived primitive types for types we know are not primitive. + To get a primitive type one *MUST NOT* clrMapping since clrMapping will not contain custom primitive types + but call TryGetPrimitiveType method that knows how to handle multiple dictionaries. + 2) System.Data.Linq.Binary + We want to avoid static dependency on System.Data.Linq.dll. On the other hand System.Data.Linq.Binary is + a well known primitive type. For performance reasons and to avoid locking the clrMapping is only initialized + in the static ctor when we don't have System.Data.Linq.Binary type handy. Therefore we use the dummy BinaryTypeSub + type during initialization. As a result to get a well known primitive type one *MUST NOT* use the clrMapping + dictionary directly but call TryGetWellKnownPrimitiveType() method which knows how to handle BinaryType. + + + + + Clr Type - Primitive Type mapping for well known primitive types + + + It is being initialized in the static constructor and must not change + later. This way we can avoid locking it. + + + + + Clr Type - Primitive Type mapping for custom derived primitive type (e.g. spatial types) + + + This dictionary contains type mapping for custom derived primitive types (e.g. spatial) that + are types discovered at runtime and added as we go. Any access to this dictionary requires locking. + + + + + Edm Type - Primitive Type mapping + + + + + Cache containing known non-primitive types. Any access to this hashset requires locking. + + + + + Static Constructor + + + + + Constructor + + The Clr Type + The Edm Type Name + The Edm Primitive Type Kind + A PrimitiveXmlConverter that provides convertion between instances of this type to its Xml representation and back + Whether this primitive type can be mapped from the Edm type name + + + + Try retrieve a primitive type metadata from a clr type + + The Clr Type + The returning primitive type + True if the type is found + + See remarks for the class. + + + + + Try retrieve a primitive type metadata from a Edm Type Name + + Edm Type Name + The returning primitive type + True if the type is found + + + + Is this a known primitive type (including string,byte[],uri) + + type to analyze + true if known primitive type + + + + Is this a known primitive type or a nullable based on a primitive type (including string,byte[],uri) + + type to analyze, possibly nullable + true if known primitive type or a nullable based on a primitive type + + + + Delete the type from known type table + + The clr type + The edm type name to remove, or null + This is a test clean up hook. MUST NOT BE CALLED FROM PRODUCT CODE. + + + + Register a known type as primitive type + + The Clr Type + The Edm Type Name + The Edm Primitive Type Kind + The Type Converter + Whether this mapping should have a reverse mapping from Edm + + This method is internal only for testing purposes. + IN PRODUCT MUST BE CALLED ONLY FROM THE STATIC CTOR OF THE PrimitiveType CLASS. + + + + + Creates a new instance of the corresponding IEdmPrimitiveType + + Returns a new instance of the corresponding IEdmPrimitiveType + + + + Populate the mapping table + + + MUST NOT BE CALLED FROM PRODUCT CODE OTHER THAN STATIC CTOR OF PrimitiveType class. + + + + + Tries to get a well known PrimitiveType for a clr type. Contains logic to handle Binary type. + + The clr type to get well known PrimitiveType for. + PrimitiveType for the if exists. Otherwise null. + true if a PrimitiveType for the was found. Otherwise false. + + + + Whether the is System.Data.Linq.Binary. + + Type to check. + true if is System.Data.Linq.Binary. Otherwise false. + + + + The Clr Type + + + + + The Edm Type Name + + + + + A PrimitiveXmlConverter that provides convertion between + instances of this type to its Xml representation and back + + + + + This type has a reverse edm type mapping + + + Some known primitive types have shared edm type mapping + Only one of these shared type can contain a reverse mapping + + + + + Gets the types EDM primitive type kind + + + + + There is no static dependency on System.Data.Linq where Binary type lives. We + will use this type to Substitute for the missing Binary type. + + + + + Represents a definition of an EDM primitive type. + + + + + Namespace of the type. + + + + + Name of the type. + + + + + The kind of primitive. + + + + + Creates an instance of the client EDM primitive type. + + Namespace of the type. + Name of the type. + Kind fo the primitive type. + + + + Creates a new instance of the IEdmPrimitiveType + + Kind of primitive type. + Returns a new instance of the IEdmPrimitiveType + + + + Name of the type. + + + + + Namespace of the type. + + + + + Kind of the primitive type. + + + + + The kind of this schema element. + + + + + Kind of this type. + + + + + A parser token + + + + + Materialize this token using a PrimitiveTypeConverter + + The primitive type + A materialized instance + + + + Textual based parser token + + + + + Constructor + + Textual value + + + + Materialize by calling the Parse method on the converter + + clrType + A materialized instance + + + + The text property + + + + + Instance based parser token, where the token is the materialized instance + + The instance type + + + + Constructor + + The instance + + + + Materialize by returning the instance + + A primitive type converter + The instance + + + + The instance + + + + Equality comparer implementation that uses reference equality. + + + Initializes a new instance. + + + Determines whether two objects are the same. + First object to compare. + Second object to compare. + true if both are the same; false otherwise. + + + Serves as hashing function for collections. + Object to hash. + + Hash code for the object; shouldn't change through the lifetime + of . + + + + + Use this class to compare objects by reference in collections such as + dictionary or hashsets. + + Type of objects to compare. + + Typically accesses statically as eg + ReferenceEqualityComparer<Expression>.Instance. + + + + Single instance per 'T' for comparison. + + + Initializes a new instance. + + + Determines whether two objects are the same. + First object to compare. + Second object to compare. + true if both are the same; false otherwise. + + + Serves as hashing function for collections. + Object to hash. + + Hash code for the object; shouldn't change through the lifetime + of . + + + + Returns a singleton instance for this comparer type. + + + + Class which implements the for the GetReadStream operation. + Note that this effectively behaves as a simple wrapper around the IAsyncResult returned + by the underlying HttpWebRequest, although it's implemented fully on our own to get the same + behavior as other IAsyncResult objects returned by the client library. + + + + The web request this class wraps (effectively) + + + descriptor of the stream which is getting queried. + + + RequestInfo for this request. + + + IODataResponseMessage containing all the response information. + + + + Constructs a new async result object + + The source of the operation. + Name of the method which is invoked asynchronously. + The object which is wrapped by this async result. + User specified callback for the async operation. + User state for the async callback. + stream descriptor whose value is getting queried. + + + + Begins the async request + + + + + Ends the request and creates the response object. + + The response object for this request. + + + + Executes the request synchronously. + + + The response object for this request. + + + + invoked for derived classes to cleanup before callback is invoked + + + Set the AsyncWait and invoke the user callback. + the request object + This method is not implemented for this class. + + + + Async callback registered with the underlying HttpWebRequest object. + + The async result associated with the HttpWebRequest operation. + + + + Holds state (Path, lambda parameter stack, etc) for projection analysis. + + + + This class is used as a marker for an entity projected in its entirety. + + + The request data service version for the projection and expand paths + + + Initializes a new instance. + + + Starts a new path. + + + + Appends the given property and source TypeAs to the projection and expand paths. + + Navigation property + The TypeAs type if the source of the member access expression is a TypeAs operation. Null otherwise. + Data service context instance. + + + + Appends a name of a property/link/type to the current projection path. + + name of the property/link/type which needs to be added to the select path. + if originally present in the path, replace the entity marker after appending the name + the string builder containing all the select paths. + + + + Appends a name of a property/link/type to the current expand path. + + name of the property/link/type which needs to be added to the expand path. + + + + If the path ends with the EntireEntityMarker, remove it from the path. + + path + True if the EntireEntityMarker was found. + + + + Adds the EntireEntityMarker to the end of the path + + path + + + The request data service version for the projection and expand paths + + + + Analyzes projection expressions to see if supported. + To be writable, must follow these rules: + 1) Must be known Entity Type + 2) Must be a true narrowing of the source type. Subset of properties + no transformations other then casts. + + To be materializable (read-only), must follow these rules + 1) No transient object creation. (Entity and non-Entity types) + 2) No referencing of other DataService queries or contexts. + + + + + Analyzes a lambda expression to check whether it can be satisfied with + $select and client-side materialization. + + Lambda expression. + Resource expression in scope. + Whether member accesses are matched as top-level projections. + Context of expression to analyze. + true if the lambda is a client-side projection; false otherwise. + + + + Checks whether the specified refers + to a sequence method call allowed on entity types. + + Method call expression to check. + true if the method call is allowed; false otherwise. + The method won't check whether the call is made on actual entity types. + + + + Checks whether the specified refers + to a Select method call that works on the results of another Select call + + Method call expression to check. + Type of the projection + + + + Checks whether the specified expression creates a collection. + + Expression to check. + true if given expression is collection producing. + + + + Checks whether the specified expression is allowed in a MethodCall. Expressions that + produce collections are not allowed. The only exception is when collection property + belongs to an entity e.g. c.Orders.Select(o => o), where we allow c.Orders. + + Expression to check. + The client model used. + true if expression is disallowed, false otherwise. + + + + Analyzes the specified expression with an entity-projection or + non-entity-projection analyzer. + + Expression to analyze. + Path box where select and expand paths are tracked. + Context of expression to analyze. + + + + Analyzes the specified for selection and updates + . + + Lambda expression to analyze. + Resource expression to update. + Context of expression to analyze. + + + Skips converts and returns the underlying expression. + Expression to dig into. + The original expression without converts. + + IMPORTANT: This is fine for checks on underlying expressions where we + want converts to be "mostly" transparent, but using the result in + place of the given loses information. + + + + Path-tracking object. + + + Type being member-init'ed. + + + + This analyzer iterates through the list of member assignments in the MemberInitExpression + and visits each one. This field tracks if the currently visited member assignment is a + MemberAccessExpression, used for determining if a TryAs convert should be emitted when visited. + + + + + The associated DataServiceContext instance. DevNote(shank): this is used for determining + the fully-qualified name of types when TryAs converts are processed (C# "as", VB "TryCast"). + Ideally the FQN is only required during URI translation, not during analysis. However, + the current code constructs the $select and $expand parts of the URI during analysis. This + could be refactored in the future to defer the $select and $expand URI construction until + the URI translation phase. + + + + Initializes a new instance. + Path-tracking object. + Type being member-init'ed. + Context of expression to analyze. + + + Analyzes the specified member-init expression. + Expression to analyze. + Path-tracking object to store analysis in. + Context of expression to analyze. + + + + Specific Vistior base class for the DataServiceQueryProvider. + + + + + Main visit method. + + Expression to visit + Visited expression + + + + ResourceSetExpression visit method. + + ResourceSetExpression expression to visit + Visited ResourceSetExpression expression + + + + NavigationPropertySingletonExpressionvisit method. + + NavigationPropertySingletonExpression expression to visit + Visited NavigationPropertySingletonExpression expression + + + + Visit an , producing a new InputReferenceExpression + based on the visited form of the that is referenced by + the InputReferenceExpression argument, . + + InputReferenceExpression expression to visit + Visited InputReferenceExpression expression + + + See corresponding comment in EntityProjectionAnalyzer + + + See corresponding comment in EntityProjectionAnalyzer + + + Visits a unary expression while initializing a non-entity type structure. + Expression to visit. + The visited expression. + + + + Visits a member access expression in non-entity projections, validating that + it's correct and recording the path visit to include in a projection if necessary. + + Expression to visit. + The same expression. + + The projection analyzer runs after funcletization, so a member expression + rather than a constant expression implies that this is correlated to + a parameter, by dotting through the argument in valid cases, and possibly + more complex cases in others like new DSC(p.Orders)*.Foo* <- .Foo is invalid. + + + + + An resource specific expression representing a projection query option. + + + + + An resource specific expression representing a query option. + + + + The CLR type this node will evaluate into. + + + + Creates a QueryOptionExpression expression + + the return type of the expression + + + + Composes the expression with this one when it's specified multiple times. + + to compose. + + The expression that results from composing the expression with this one. + + + + + The of the value represented by this . + + + + projection expression to evaluate on client on results from server to materialize type + + + projection paths to send to the server + + + + Creates a ProjectionQueryOption expression + + the return type of the expression + projection expression + Projection paths for the query option + + + + The of the . + + + + + expression for the projection + + + + + expression for the projection + + + + Represents the components of query. + + + Query option used in projection queries. + + + Select query option as it appears at the beginning of a query string. + + + Select query option as it appears in the middle of a query string. + + + type + + + Records the generated-to-source rewrites created. + + + selector Lambda Expression + + + HttpMethod to use in the query. + + + List of parameters for a service operation or a service function. + + + List of parameters for service action. + + + + Optional field; not all codepaths set this. If true, then a single primitive or complex value is expected. + If false, then a collection of primitives or complex is expected. A null value makes no claim as to what + the return type should be. It follows that a single entry or a feed would always have this value as null. + + + + Version for query + + + + Constructs a container for query components with HttpMethod GET. + + URI for the query + Version for the query + Element type for the query + selector Lambda Expression + Records the generated-to-source rewrites created (possibly null). + + + + Constructs a container for query components + + URI for the query + Version for the query + Element type for the query + selector Lambda Expression + Records the generated-to-source rewrites created (possibly null). + The HttpMethod to be used in the request. + If true, then a single primitive or complex value is expected. If false, then a collection of primitives or complex + is expected. Should be null when expecting a void response, a single entry, or a feed. + The body operation parameters associated with a service action. + The uri operation parameters associated with a service function or a service operation. + + + + Determines whether or not the specified query string contains the $select query option. + + String that may contain $select. + True if the specified string contains the $select query option, otherwise false. + + This method is specifically looking for patterns that would indicate we really have the specific query option and not something like $selectNew. It also expects that + any data string being passed to this method has already been escaped, as the things we are looking for specifically contain equals signs that would be escaped if in a data value. + + + + Records the generated-to-source rewrites created. + + + The projection expression for a query + + + The last segment type for query + + + The data service version associated with the uri + + + The HttpMethod to be used in the query. + + + + List of operation parameters for service operation or a service function. + + + + + List of operation parameters for a service action. + + + + + Optional field; not all codepaths set this. If true, then a single primitive or complex value is expected. + If false, then a collection of primitives or complex is expected. A null value makes no claim as to what + the return type should be. It follows that a single entry or a feed would always have this value as null. + + + + + Gets a value indicating whether the URI for this query has the select query option. + + + + Gets or sets the URI for a query, possibly with query options added to the cached URI. + URI with additional query options added if required. + + + + Static utility class for identifying methods in Queryable, Sequence, and IEnumerable + and + + + + + Identifies methods as instances of known sequence operators. + + Method info to identify + Identified sequence operator + true if method is known; false otherwise + + + + Check to see if this is an Any or an All method + + sequence method to check. + true if sequence method is Any or All, false otherwise. + + + + Requires: + - no collisions on type names + - no output or reference method parameters + + + Produces a string description of a method consisting of the name and all parameters, + where all generic type parameters have been substituted with number identifiers. + + Method to identify. + Canonical description of method (suitable for lookup) + + + + Returns all static methods in the Queryable and Enumerable classes. + + + + + Enumeration of known extension methods + + + + + Represents a reference to a bound resource set in the resource path. + The type of the input reference is the element type of the set. + + + Because the type of the input reference is the element type of the set, + it can be used to indicate what a range variable ranges over. + + For example, in input.Select(b => b.id), 'input' is an IQueryable of T, + and 'b' is a parameter of type T. 'b' can be rebound as an input reference + to 'input' by the InputBinder, which helps in query analysis and + translation. + + + + The resource or set referred to by this input reference expression + + + + Constructs a new input reference expression that refers to the specified resource set + + The target resource set that the new expression will reference + + + + Retargets this input reference to point to the resource set specified by . + + The that this input reference should use as its target + + + + The of the value represented by this . + + + + + The of the . + + + + + Retrieves the resource set referred to by this input reference expression + + + + + The counting option for the resource expression + + + + No counting + + + Translates to the $count segment. + + + Translates to the $inlinecount=allpages query option + + + + Abstract base class for expressions that support Query Options + + + + Source expression. + + + Singleton InputReferenceExpression that should be used to indicate a reference to this element of the resource path + + + The CLR type this node will evaluate into. + + + expand paths + + + The count query option for the resource set + + + custom query options + + + projection expression + + + Uri version for the expression and also the expand and projection paths + + + + Creates a Resource expression + + the source expression + the return type of the expression + the expand paths + the count option + The custom query options + the projection expression + TypeAs type + version of the Uri from the expand and projection paths + + + + Creates an that refers to this component of the resource path. + The returned expression is guaranteed to be reference-equal (object.ReferenceEquals) + to any other InputReferenceExpression that also refers to this resource path component. + + The InputReferenceExpression that refers to this resource path component + + + Raise the UriVersion if it is lower than . + Uri version from the expand and projection paths + + + + The of the value represented by this . + + + + + Resource type for this expression (for sets, this is the element type). + Never null. + + + + + The resource type that this expression is explicitly converted to by a TypeAs + expression (i.e., "as" operator in C#, "TryCast" in VB). Null if no conversion. + + + + + Uri version from the expand and projection paths + + + + + Does this expression produce at most 1 resource? + + + + + Expand query option for ResourceSet + + + + + Count query option for ResourceSet + + + + + custom query options for ResourceSet + + + + Description of the projection on a resource. + + This property is set by the ProjectionAnalyzer component (so it + mutates this instance), or by the ResourceBinder when it clones + a ResourceExpression. + + + + + Gets the source expression. + + + + + performs funcletization on an expression tree + + + + + Performs evaluation and replacement of independent sub-trees + + The root of the expression tree. + A function that decides whether a given expression node can be part of the local function. + A new tree with sub-trees evaluated and replaced. + + + + Performs evaluation and replacement of independent sub-trees + + The root of the expression tree. + A new tree with sub-trees evaluated and replaced. + + + + Evaluates if an expression can be evaluated locally. + + the expression. + true/ false if can be evaluated locally + + + + Evaluates and replaces sub-trees when first candidate is reached (top-down) + + + + list of candidates + + + + constructs an expression evaluator with a list of candidates + + List of expressions to evaluate + + + + Evaluates an expression sub-tree + + The expression to evaluate. + The evaluated expression. + + + + Visit method for visitor + + the expression to visit + visited expression + + + + Evaluates expression + + the expression to evaluate + constant expression with return value of evaluation + + + + Performs bottom-up analysis to determine which nodes can possibly + be part of an evaluated sub-tree. + + + + func to determine whether expression can be evaluated + + + candidate expressions for evaluation + + + flag for when sub tree cannot be evaluated + + + + Creates the Nominator based on the function passed. + + + A Func speficying whether an expression can be evaluated or not. + + visited expression + + + + Nominates an expression to see if it can be evaluated + + + Expression to check + + a list of expression sub trees that can be evaluated + + + + Visit method for walking expression tree bottom up. + + + root expression to visit + + visited expression + + + + Replaces expression patterns produced by the compiler with approximations + used in query translation. For instance, the following VB code: + + x = y + + becomes the expression + + Equal(MethodCallExpression(Microsoft.VisualBasic.CompilerServices.Operators.CompareString(x, y, False), 0) + + which is normalized to + + Equal(x, y) + + Comment convention: + + CODE(Lang): _VB or C# coding pattern being simplified_ + ORIGINAL: _original LINQ expression_ + NORMALIZED: _normalized LINQ expression_ + + + + + If we encounter a MethodCallExpression, we never need to lift to lift to null. This capability + exists to translate certain patterns in the language. In this case, the user (or compiler) + has explicitly asked for a method invocation (at which point, lifting can no longer occur). + + + + + Gets a dictionary mapping from LINQ expressions to matched by those expressions. Used + to identify composite expression patterns. + + + + Records the generated-to-source rewrites created. + + + Initializes a new instance. + Dictionary in which to store rewrites. + + + + Applies normalization rewrites to the specified + , recording them in the + dictionary. + + Expression to normalize. + Dictionary in which to record rewrites. + The normalized expression. + + + + Handle binary patterns: + + - VB 'Is' operator + - Compare patterns + + + + + CODE: x + ORIGINAL: Convert(x, t) where t is assignable from typeof(x) + ORIGINAL: x as t, where t is assignable from typeof(x) + ORIGINAL: and typeof(x) or t are not known primitives unless typeof(x) == t + ORIGINAL: and x is not a collection of entity types + NORMALIZED: x + + + + + CODE: x + ORIGINAL: Convert(x, typeof(object)) + ORIGINAL(Funcletized): Constant(x, typeof(object)) + NORMALIZED: x + + + + + Returns true if the given expression is a constant '0'. + + + + + Handles MethodCall patterns: + + - Operator overloads + - VB operators + + + + + Handles MethodCall patterns (without recording rewrites): + + - Operator overloads + - VB operators + + + + + Remove extra Converts from the source of Any/All/OfType methods + + + + + Identifies and normalizes any predicate argument in the given call expression. If no changes + are needed, returns the existing expression. Otherwise, returns a new call expression + with a normalized predicate argument. + + + + + Determines whether the given call expression has a 'predicate' argument (e.g. Where(source, predicate)) + and returns the ordinal for the predicate. + + + Obviously this method will need to be replaced if we ever encounter a method with multiple predicates. + + + + + Determines whether the given expression of the form Lambda(Coalesce(left, Constant(false)), ...), a pattern + introduced by the VB compiler for predicate arguments. Returns the 'normalized' version of the expression + Lambda((bool)left, ...) + + + + + Identifies and normalizes a Select method call expression of the following form: + Select(x => Convert(x)) + If a match is found, it is translated into a Cast() call. + + This supports type casting in queries like the following: + from DerivedType entity in context.Entities + select entity + Where DerivedType is derived from the type of context.Entities. + The pattern also applies to SelectMany calls with the same structure as above. + + In C#, the type cast above is represented as a Cast call and the ResourceBinder knows how to handle that. + In VB, the same query is translated into Select(x => Convert(x)) instead of Cast, and the ResourceBinder + doesn't recognize that pattern. This normalization allows the two queries to be treated the same. + + MethodCallExpression to potentially normalize. + + If the query pattern was found, a Cast call is returned with the same source as the original Select and + a cast type that is the same as the original Convert expression. + If no normalization is required, the original MethodCallExpression is returned without changes. + + + + + Looks for a method call expression of the form + Select(entity => Convert(entity, DerivedType)) + If found, returns DerivedType. + + Expression to check for pattern match. + If the match was found, this is the type used in the Convert, otherwise null. + True if the expression matches the desired pattern, otherwise false. + + + + Looks for a lambda expression of the form + related => Convert(related, DerivedType) + Returns DerivedType if a match was found. + + Expression to check for pattern match. + + If the matches the pattern, this is the type of the found Convert call, otherwise null. + + True if the expression matches the desired pattern, otherwise false. + + + + This method exists solely to support creation of valid relational operator LINQ expressions that are not natively supported + by the CLR (e.g. String > String). This method must not be invoked. + + + + + Create an operator relating 'left' and 'right' given a relational operator. + + + + + Try to create an operator relating 'left' and 'right' using the given operator. If the given operator + does not define a known relation, returns false. + + + + + CODE(C#): Class.Compare(left, right) + ORIGINAL: MethodCallExpression(Compare, left, right) + NORMALIZED: Condition(Equal(left, right), 0, Condition(left > right, 1, -1)) + + Why is this an improvement? We know how to evaluate Condition in the store, but we don't + know how to evaluate MethodCallExpression... Where the CompareTo appears within a larger expression, + e.g. left.CompareTo(right) > 0, we can further simplify to left > right (we register the "ComparePattern" + to make this possible). + + + + Records a rewritten expression as necessary. + Original source expression. + Rewritten expression. + + IMPORTANT: if there are higher-level rewrites such as replacing parameter + references, the lower-level rewrites will become un-doable in other + contexts; we will have to change normalization/de-normalization strategy, + record additional mapping information and/or bubble up the rewrite + tracking. + + + + Records the generated-to-source rewrites created. + + + + Encapsulates an expression matching some pattern. + + + + + Gets pattern kind. + + + + + Gets pattern kind. + + + + + Matches expression of the form x.CompareTo(y) or Class.CompareTo(x, y) + + + + + Gets left-hand argument to Compare operation. + + + + + Gets right-hand argument to Compare operation. + + + + + An resource specific expression representing a filter query option. + + + + + The individual expressions that makes the filter predicate + + + + + Creates a FilterQueryOptionExpression expression + + the return type of the expression + + + + Adds the conjuncts to individualExpressions + + The predicates. + + + + Gets the query option value. + + A predicate with all Conjuncts AND'ed + + + + The of the . + + + + + Gets the list of individual conjucts which are separated by AND for the predicate + i.e. if the filter statement is id1=1 and id2="foo" and id3=datetime'31' + then this list will have 3 entries, id1=1, id2="foo" and id3=datetime'xxxxxxxxx' + + + + + Replaces references to resource sets - represented as either ParameterExpressions or one or more + MemberExpressions over a ParameterExpression - with an appropriate InputReferenceExpression that + indicates which resource set is referenced; effective 'binds' the argument expression to the + resource sets that it references. + + + + Tracks which resource sets are referenced by the argument expression + + + Resource from which valid references must start; if no set with a transparent scope is present, only direct references to this resource will be rebound + + + The input resource, as a resource set (may be null if the input is actually a NavigationPropertySingletonExpression) + + + The ParameterExpression that, if encountered, indicates a reference to the input resource set + + + + Constructs a new InputBinder based on the specified input resource set, which is represented by the specified ParameterExpression. + + The current input resource from which valid references must start + The parameter that must be referenced in order to refer to the specified input resource set + + + + Replaces Lambda parameter references or transparent scope property accesses over those Lambda + parameter references with s to the appropriate corresponding + s, based on the 'input' ResourceSetExpression to which the + Lambda is logically applied and any enclosing transparent scope applied to that input resource set. + + The expression to rebind + + The 'current input' resource set - either the root resource set or the + rightmost set in the navigation chain. + The Lambda parameter that represents a reference to the 'input' set + A list that will be populated with the resource sets that were referenced by the rebound expression + + The rebound version of where MemberExpression/ParameterExpressions that + represent resource set references have been replaced with appropriate InputReferenceExpressions. + + + + + Resolves member accesses that represent transparent scope property accesses to the corresponding resource set, + iff the input resource set is enclosed in a transparent scope and the specified MemberExpression represents + such a property access. + + MemberExpression expression to visit + + An InputReferenceExpression if the member access represents a transparent scope property + access that can be resolved to a resource set in the path that produces the input resource set; + otherwise the same MemberExpression is returned. + + + + + Converts a parameter reference to the input resource set into an InputReferenceExpression, + iff the parameter reference is to the parameter expression that represents the input resource set + and the input resource set is not enclosed in a transparent scope. + + The parameter reference expression + + An InputReferenceExpression if the parameter reference is to the input parameter; + otherwise the same parameter reference expression + + + + + Returns an that references the specified resource set, + and also adds the the resource set to the hashset of resource sets that were referenced by the + expression that is being rebound. + + The resource(set) for which a reference was found + An InputReferenceExpression that represents a reference to the specified resource set + + + + An resource specific expression representing a OrderBy query option. + + + + selectors for OrderBy query option + + + + Creates a OrderByQueryOptionExpression expression + + the return type of the expression + selectors for orderby expression + + + + The of the . + + + + + Selectors for OrderBy expression + + + + + Structure for selectors. Holds lambda expression + flag indicating desc. + + + + + lambda expression for selector + + + + + flag indicating if descending + + + + + Creates a Selector + + lambda expression for selector + flag indicating if descending + + + + This class provides a Bind method that analyzes an input and returns a bound tree. + + + + + The associated DataServiceContext instance. DevNote(shank): this is used for determining + the fully-qualified name of types when TypeAs converts are processed (C# "as", VB "TryCast"). + Ideally the FQN is only required during URI translation, not during analysis. However, + the current code constructs the $select and $expand parts of the URI during analysis. This + could be refactored in the future to defer the $select and $expand URI construction until + the URI translation phase. + + + + Analyzes and binds the specified expression. + Expression to bind. + The context of the expression used for bind. + + The expression with bound nodes (annotated expressions used by + the Expression-to-URI translator). + + + + + Checks whether the specified is + missing necessary key predicates. + + Expression to check. + + true if the expression is a navigation expression and doesn't + have the necessary key predicates on the associated resource + expression; false otherwise. + + + + + Verifies that all key predicates are assigned to the specified expression. + + Expression to verify. + + + Verifies that the specified is not a projection based on SelectMany. + Expression to check. + + + Analyzes a predicate (Where clause). + for a Where call. + The model. + + An equivalent expression to , possibly a different one with additional annotations. + + + + + Validates neither operands of the binary expression filter ends with TypeAs + + filter expression + method name where this filter is passed to + + + + Given a list of predicates, extracts key values for the specified . + + Target set. + Candidate predicates. + Returns list of non-key predicates. + List of key predicates if found, otherwise null + + + Adds all AND'ed expressions to the specified list. + Expression to recursively add conjuncts from. + Target list of conjucts. + + + + Analyzes the specified call to see whether it is recognized as a + projection that is satisfied with $select usage. + + Call expression to analyze. + Kind of sequence method to analyze. + Resulting expression. + true if is a projection that can be satisfied with $select; false otherwise. + + + + Analyzes the specified method call as a WCF Data + Services navigation operation. + + Expression to analyze. + Data service context instance + An expression that represents the potential navigation. + + + + Analyzes a .Select or .SelectMany method call to determine + whether it's allowed, to identify transparent identifiers + in appropriate .SelectMany() cases, returning the method + call or a resource set expression. + + Expression to analyze. + Data service context instance + + , or a new resource set expression for + the target resource in the method call for navigation properties. + + + + + Analyzes the nav prop reference for a SelectMany method call + building the appropriate ResourceSetExpression if one can be + created. + + Input resource expression to the collector + The navigation property reference to analyze + Data service context instance + The resource set expression + true if succesful, else false + + + + Analyzes a SelectMany method call that ranges over a resource set and + returns the same method or the annotated resource set. + + SelectMany method to analyze. + Source resource set for SelectMany result. + Context of expression to analyze. + The visited expression. + + The expression represents the + navigation produced by the collector of the SelectMany() method call. + + + + Ensures that there's a limit on the cardinality of a query. + for the method to limit First/Single(OrDefault). + Maximum cardinality to allow. + + An expression that limits to no more than elements. + + This method is used by .First(OrDefault) and .Single(OrDefault) to limit cardinality. + + + + Analyzes the OfType method call + + The OfType method call expression + The MaxProtocolVersion of the client + , or a resource set expression with ResourceTypeAs set. + + + + Analyzes Any and All method calls + + Any/All method call expression + The MaxProtocolVersion of the client + , resource set or a collection property expression. + + + Creates a new resource set as produced by a navigation. + + The type of the expression as it appears in the tree (possibly + with transparent scopes). + + The source of the set. + The member access on that yields the set. + The resource type on the set. + A new instance. + + + Creates a new resource singleton as produced by a navigation. + + The type of the expression as it appears in the tree (possibly + with transparent scopes). + + The source of the singleton. + The member access on that yields the singleton. + A new instance. + + + + Produces a new that is a clone of in all respects, + other than its result type - which will be - and its transparent scope, + which will be null. This is a shallow clone operation - sequence query options, key predicate, etc are + not cloned, but are reassigned to the new instance. The resource expression should be + discarded after being used with this method. + + The result type - - that the new resource set expression should have. + The resource set expression from which the transparent scope is being removed + A new resource set expression without an enclosing transparent scope and with the specified result type. + + + Returns the specified expression, stripping redundant converts. + Expression to return. + e, or the underlying expression for redundant converts. + + + + Strips the specifed of intermediate + expression (unnecessary converts and quotes) and returns + the underlying expression of type T (or null if it's not of that type). + + Type of expression to return. + Expression to consider. + The underlying expression for . + + + + Strips the specifed of intermediate unnecessary converts + and quotes, and returns the underlying expression of type T (or null if it's not of that type). + + Type of expression to return. + Expression to consider. + The converted type for typeAs expressions. + The underlying expression for . + + + Strips calls to .Cast() methods, returning the underlying expression. + Expression to strip calls from. + The underlying expression. + + Note that this method drops information about what the casts were, + and is only supported for collector selectors in SelectMany() calls, + to enable scenarios such as from t in ctx.Tables from Customer c in t.Items... + + + + Convenience property: model. + + + Use this class to perform pattern-matching over expression trees. + + Following these guidelines simplifies usage: + + - Return true/false for matches, and interesting matched information in out parameters. + + - If one of the inputs to be matched undergoes "skipping" for unnecesary converts, + return the same member as an out parameter. This forces callers to be aware that + they should use the more precise representation for computation (without having + to rely on a normalization step). + + + + + Checks whether the is a convert that + always succeeds because it converts to the same target type or a + base type. + + Expression to match. + + true if is a convert to same or base type; false otherwise. + + + + + Checks whether is a lambda of the + form (p) => p.member[.member]* (possibly quoted). + + Expression to match. + true if the expression is a match; false otherwise. + + This method strip .Call methods because it's currently used only + to supporte .SelectMany() collector selectors. If this method + is reused for other purposes, this behavior should be made + conditional or factored out. + + + + + Checks whether the specified expression is a path of member + access expressions. + + Expression to match. + Data service context instance + Expression equivalent to , without unnecessary converts. + Expression from which the path starts. + Path of member names from . + Uri version. + true if there is at least one property in the path; false otherwise. + + + + Checks whether the specified member expression refers to a member + that is a non-private property (readable and with getter and/or setter). + + Expression to check. + Non-null property info when result is true. + The property access target. + Whether the member refers to a non-private, readable property. + + + + Checks whether the specified is a member access to a key. + + Expression to check. + If this is a key access, the property for the key. + true if is a member access to a key; false otherwise. + + + + Checks whether the specified matches + a call to System.Object.ReferenceEquals. + + Expression to check. + true if the expression matches; false otherwise. + + + + Checks whether the specifed refers to a resource. + + Expression to check. + Resource expression if successful. + true if the expression is a resource expression; false otherwise. + + + + Checks whether the specified expression is a lambda with a two parameters + (possibly quoted). + + Expression to match. + If the expression matches, the lambda with the two parameters. + true if the expression is a lambda with two parameters. + + + + Checks whether the specified is a selector + of the form (p) => p. + + Expression to check. + true if the lambda is an identity selector; false otherwise. + + + + Checks whether the specified expression is a lambda with a single parameter + (possibly quoted). + + Expression to match. + If the expression matches, the lambda with the single parameter. + true if the expression is a lambda with a single argument. + + + + Checked whether the specified has the + form [input's transparent scope].[accessor]. + + Input expression (source) for the selector. + Selector lambda. + Data service context + true if the selector's body looks like [input's transparent scope].[accesor]. + + + + Checks wheter the specified lambda matches a selector that yields + a transparent identifier. + + + The input expression for the lambda, used to set up the + references from the transparent scope if one is produced. + + Lambda expression to match. + + After invocation, information on the accessors if the result + is true; null otherwise. + + + true if is a selector for a transparent + identifier; false otherwise. + + + Note that C# and VB.NET have different patterns for accumulating + parameters. + + C# uses a two-member anonymous type with "everything so far" + plus the newly introduced range variable. + + VB.NET uses an n-member anonymous type by pulling range variables + from a previous anonymous type (or the first range variable), + plus the newly introduced range variable. + + For additional background, see: + Transparent Identifiers - http://blogs.msdn.com/wesdyer/archive/2006/12/22/transparent-identifiers.aspx + http://msdn.microsoft.com/en-us/library/bb308966.aspx + In particular: + - 26.7.1.4 From, let, where, join and orderby clauses + - 26.7.1.7 Transparent identifiers + + is the expression that represents the + navigation resulting from the collector selector in the + SelectMany() call under analysis. + + + + + Checks whether the specified is a member access + that references . + + Expression to check. + InputReferenceExpression to consider as source. + Data service context instance. + Navigation member, equivalent to without unnecessary casts. + + true if is a property collection that originates in + ; false otherwise. + + + + + Checks whether the specified is a member access + that references . + + Expression to check. + InputReferenceExpression to consider as source. + Data service context instance + Member expression, equivalent to without unnecessary casts. + + true if is a scalar property or singleton navigation property that originates in + ; false otherwise. + + + + + Checks whether the specified is a member access with the specified cardinality (per ) + that references . + + Expression to check. + InputReferenceExpression to consider as source. + + Whether the match should be for a set of related entities or a singleton property. + Singleton properties can be scalar types (including collection and other enumerable types like byte[]), complex types, or singleton navigation properties. + Related set properties are only navigation properties. + + Data service context instance. + Member expression for accessing the property, equivalent to without unnecessary casts. + + true if is a property that originates in + and is the expected cardinality (per ); false otherwise. + + + + + Checks whether is a logical negation + expression. + + Expression to check. + true if expression is a Not expression; false otherwise. + + + Checks whether the type of the specified expression could represent a set of related resources. + Expression to check. + The model that the client uses. + true if the type of the expression could represent a set of related resources; false otherwise. + + + + Checks whether is a conditional expression + that checks whether a navigation property (reference or collection) is + null before proceeding. + + Entity in scope to be checked. + Expression to check. + Check results. + + + Checks whether the specified is a null constant. + Expression to check. + true if is a constant null value; false otherwise. + + + + Checks whether is a "new DataServiceCollection of T". + + The expression to match + true if the expression matches the "new DataServiceCollection of T" or false otherwise. + + + + Checks whether is a "new ICollection of T". + + The expression to match + + + + + Checks whether is a check for + equality on two expressions. + + Expression to match. + + A structure describing whether the expression is a match, + whether it yields true on equality (ie, '==' as opposed to '!='), + and the compared expressions. + + + This pattern recognizes the following: + - Calls to object.ReferenceEquals + - Equality checks (ExpressionNodeType.Equals and ExpressionNodeType.NotEquals) + - Negation (ExpressionNodeType.Not) + + + + + Checks whether the expression is a + simple access (standalone or member-access'ed) on one of the + parameter . + + Argument to match. + Candidate parameters. + + true if the argument is a parmater or a member from a + parameter; false otherwise. + + + + + Checks whether the specified expression is a lambda with a parameterCount parameters + (possibly quoted). + + Expression to match. + Expected number of parametrs. + If the expression matches, the lambda with the two parameters. + true if the expression is a lambda with parameterCount parameters. + + + + Use this class to represent the results of a match on an expression + that does a null check before accessing a property. + + + + Expression used to assign a value when the reference is not null. + + + Whether the expression analyzed matches a null check pattern. + + + Expression being checked againt null. + + + + Use this class to represent the results of a match on an expression + that checks for equality . + + + + Whether a positive equality yields 'true' (ie, is this '==' as opposed to '!='). + + + Whether the expression analyzed matches an equality check pattern. + + + The left-hand side of the check. + + + The right-hand side of the check. + + + + Throws the NotSupportedException for the $format query option. + + + + + Detect and disallow member access for certain known types, in 'where' requests. + + + + + Detect and disallow member access for certain known types, in 'orderby' requests. + + + + + Used to identify and block navigation to members of collection property in select statement. + e.g. from c in ctx.Customers select c.CollectionProperty.member + + + + + We do not support type identifier at the end of a path. + For example, these would throw: + select p as Employee + select p.BestFriend as Employee + Expand(p => p.BestFriend as Employee) + + expression passed to validate + The context of where is applied + + + + Checks whether the specified is a valid expand path. + + The lambda expression for the expand path + Data service context instance. + Expand path + Uri version + + + + Detect and disallow member access for certain known types, in 'where' and 'orderby' requests. + + + + + Equality and comparison implementation for PropertyInfo. + + + + + private constructor for the singleton pattern + + + + + Static property which returns the single instance of the EqualityComparer + + + + + Checks whether the given property info's refers to the same property or not. + + first property info + second property info + true if they refer to the same property, otherwise returns false. + + + + Computes the hashcode for the given property info + + property info whose hash code needs to be computed. + the hashcode for the given property info. + + + + Use this visitor to detect whether an Expression is found in an + Expression tree. + + + + Target expression being sought. + + + Whether the target has been found. + + + + Initializes a new that + searches for the given . + + Target expression to look for. + + + + Checks whether the specified can + be found in the given . + + Expression sought. + Expression tree to look into. + true if target is found at least once; false otherwise. + + + Visits the specified expression. + Expression to visit. + The visited expression (). + + + Enum for resource expression types + + + ResourceSet Expression + + + Resource Navigation Expression + + + Resource Navigation Expression to Singleton + + + Take Query Option Expression + + + Skip Query Option Expression + + + OrderBy Query Option Expression + + + Filter Query Option Expression + + + Reference to a bound component of the resource set path + + + Projection Query Option Expression + + + Expand Query Option Expression + + + Expression for a navigation property into a single entity (eg: Customer.BestFriend). + + + property member name + + + resource type + + + + Creates a NavigationPropertySingletonExpression expression + + the return type of the expression + the source expression + property member name + resource type for expression + expand paths for resource set + count option for the resource set + custom query options for resourcse set + projection expression + target expression type for a TypeAs conversion + version of the Uri from the expand and projection paths + + + + Cast changes the type of the ResourceExpression + + new type + new NavigationPropertySingletonExpression + + + + The of the . + + + + + Gets the member expression. + + + + + The resource type of the singe instance produced by this singleton navigation. + + + + + Singleton navigation properties always produce at most 1 result + + + + + Does Singleton navigation have query options. + + + + ResourceSet Expression + + + + The (static) type of the resources in this resource set. + The resource type can differ from this.Type if this expression represents a transparent scope. + For example, in TransparentScope{Category, Product}, the true element type is Product. + + + + property member name + + + key predicate + + + sequence query options + + + enclosing transparent scope + + + Key Predicate conjuncts that will make a key predicate + + + + Creates a ResourceSet expression + + the return type of the expression + the source expression + property member name + the element type of the resource set + expand paths for resource set + count query option for the resource set + custom query options for resourcse set + the projection expression + TypeAs type + version of the Uri from the expand and projection paths + + + + Cast ResourceSetExpression to new type + + + + + Cast ResourceSetExpression to new type without affecting member type + + + + + Converts the key expression to filter expression + + + + + Adds a filter to this ResourceSetExpression. + If filter is already presents, adds the predicateConjunts to the + PredicateConjucts of the filter + + + + + Add query option to resource expression + + + + + Removes the filter expression from current resource set. + This happens when a separate Where clause is specified in a LINQ + expression for every key property. + + + + + Instructs this resource set expression to use the input reference expression from as it's + own input reference, and to retarget the input reference from to this resource set expression. + + The resource set expression from which to take the input reference. + Used exclusively by . + + + + Sets key predicate from given values + + + + + Gets the key properties from KeyPredicateConjuncts + + + + + Creates a clone of the current ResourceSetExpression with the specified expression and resource types + + The new expression type + The new resource type + A copy of this with the new types + + + + The of the . + + + + + Member for ResourceSet + + + + + Type of resources contained in this ResourceSet - it's element type. + + + + + Is this ResourceSet enclosed in an anonymously-typed transparent scope produced by a SelectMany operation? + Applies to navigation ResourceSets. + + + + + The property accesses required to reference this ResourceSet and its source ResourceSet if a transparent scope is present. + May be null. Use to test for the presence of a value. + + + + + Has a key predicate restriction been applied to this ResourceSet? + + + + + The list of key expressions that comprise the key predicate (if any) applied to this ResourceSet. + + + + + A resource set produces at most 1 result if constrained by a key predicate + + + + + Have sequence query options (filter, orderby, skip, take), expand paths, projection + or custom query options been applied to this resource set? + + + + + If this expresssion contains at least one non-key predicate + This indicates that a filter should be used + + + + + Filter query option for ResourceSet + + + + + OrderBy query option for ResourceSet + + + + + Skip query option for ResourceSet + + + + + Take query option for ResourceSet + + + + + Gets sequence query options for ResourceSet + + + + Whether there are any query options for the sequence. + + + + Represents the property accesses required to access both + this resource set and its source resource/set (for navigations). + + These accesses are required to reference resource sets enclosed + in transparent scopes introduced by use of SelectMany. + + + For example, this query: + from c in Custs where c.id == 1 + from o in c.Orders from od in o.OrderDetails select od + + Translates to: + c.Where(c => c.id == 1) + .SelectMany(c => o, (c, o) => new $(c=c, o=o)) + .SelectMany($ => $.o, ($, od) => od) + + PatternRules.MatchPropertyProjectionSet identifies Orders as the target of the collector. + PatternRules.MatchTransparentScopeSelector identifies the introduction of a transparent identifer. + + A transparent accessor is associated with Orders, with 'c' being the source accesor, + and 'o' being the (introduced) accessor. + + + + + The property reference that must be applied to reference this resource set + + + + + The property reference that must be applied to reference the source resource set. + Note that this set's Accessor is NOT required to access the source set, but the + source set MAY impose it's own Transparent Accessors + + + + + Constructs a new transparent scope with the specified set and source set accessors + + The name of the property required to access the resource set + The names of the property required to access the resource set's sources. + + + Provides a string representation of this accessor. + The text represntation of this accessor. + + + + An resource specific expression representing a skip query option. + + + + amount to skip + + + + Creates a SkipQueryOption expression + + the return type of the expression + the query option value + + + + Composes the expression with this one when it's specified multiple times. + + to compose. + + The expression that results from composing the expression with this one. + + + + + The of the . + + + + + query option value + + + + + An resource specific expression representing a take query option. + + + + amount to skip + + + + Creates a TakeQueryOption expression + + the return type of the expression + the query option value + + + + Composes the expression with this one when it's specified multiple times. + + to compose. + + The expression that results from composing the expression with this one. + + + + + The of the . + + + + + query option value + + + + Utility functions for processing Expression trees + + + VB Assembly name + + + VB Assembly public key token + + + Method map for methods in URI query options + + + VB Method map for methods in URI query options + + + Properties that should be represented as methods + + + + Cache used to store element type (TElement) for key Type if key Type implements IEnumerable{TElement} or + null if the key Type does not implement IEnumerable{T} e.g.: + List{Entity} - Entity + Entity - null + + + + + Initializes method map + + + + + Sees if method has URI equivalent + + The method info + uri method name + true/ false + + + + Sees if property can be represented as method for translation to URI + + The property info + get method for property + true/ false + + + + Gets the elementtype for a sequence + + The sequence type + The element type + + + + Determines whether a property is private + + The PropertyInfo structure for the property + true/ false if property is private + + + + Finds type that implements IEnumerable so can get element type + + The Type to check + returns the type which implements IEnumerable + + + Finds whether a non-primitive implements IEnumerable and returns element type if it does. + Type to check. + Type of the element if the implements IEnumerable{T}. Otherwise null. + + + + Checks if the given assembly is the VisualBasic assembly. + + assembly to check. + true if the assembly is Microsoft.VisualBasic, otherwise returns false.root + + + + utility class for helping construct uris + + + forwardslash character + + + leftparan character + + + rightparan character + + + questionmark character + + + ampersand character + + + equals character + + + at sign + + + dollar sign character + + + space + + + comma + + + colon + + + single quote + + + asterisk + + + top + + + skip + + + orderby + + + where + + + desc + + + expand + + + inlinecount + + + select + + + The $format query option. + + + allpages + + + value + + + and + + + or + + + eq + + + ne + + + lt + + + le + + + gt + + + ge + + + add + + + sub + + + mul + + + div + + + mod + + + negate + + + not + + + null + + + isof + + + cast + + + Gets the type name to be used in the URI for the given . + Type to get name for. + Data context used to generate type names for types. + The name for the , suitable for including in a URI. + + + Gets the type name to be used in the URI for the given . + Type to get name for. + Data context used to generate type names for types. + Data service version for the uri + The name for the , suitable for including in a URI. + + + + Appends a type segment to the which is building up a URI from a query. + + The string builder. + The type for the segment. + The data service context. + Whether or not the type segment is being appended within the path (as opposed to within a $filter or $orderby expression). + The current version. + + + + Special visitor to serialize supported expression as query parameters + in the generated URI. + + + + Internal buffer. + + + Data context used to generate type names for types. + + + Stack of expressions being visited. + + + Whether or not the expression being written is part of the path of the URI. + + + set if can't translate expression + + + Parent expression of the current expression (expression.Peek()); possibly null. + + + the request data service version for the uri + + + number of sub scopes (any/all calls) on stack + + + + Creates an ExpressionWriter for the specified . + + Data context used to generate type names for types. + Whether or not the expression being written is part of the path of the URI. + + + + Serializes an expression to a string + + Data context used to generate type names for types. + Expression to serialize + Whether or not the expression being written is part of the path of the URI. + the request data service version for the uri + serialized expression + + + Main visit method. + Expression to visit + Visited expression + + + + ConditionalExpression visit method + + The ConditionalExpression expression to visit + The visited ConditionalExpression expression + + + + LambdaExpression visit method + + The LambdaExpression to visit + The visited LambdaExpression + + + + NewExpression visit method + + The NewExpression to visit + The visited NewExpression + + + + MemberInitExpression visit method + + The MemberInitExpression to visit + The visited MemberInitExpression + + + + ListInitExpression visit method + + The ListInitExpression to visit + The visited ListInitExpression + + + + NewArrayExpression visit method + + The NewArrayExpression to visit + The visited NewArrayExpression + + + + InvocationExpression visit method + + The InvocationExpression to visit + The visited InvocationExpression + + + + Input resource set references are intentionally omitted from the URL string for the top level + refences to input parameter (i.e. outside of any/all methods). + For parameter references to input (range variable for Where) inside any/all methods we write "$it". + + The input reference + The same input reference expression + + + + MethodCallExpression visit method + + The MethodCallExpression expression to visit + The visited MethodCallExpression expression + + + + Serializes an MemberExpression to a string + + Expression to serialize + MemberExpression + + + + ConstantExpression visit method + + The ConstantExpression expression to visit + The visited ConstantExpression expression + + + + Serializes an UnaryExpression to a string + + Expression to serialize + UnaryExpression + + + + Serializes an BinaryExpression to a string + + BinaryExpression to serialize + serialized expression + + + + Serializes an TypeBinaryExpression to a string + + TypeBinaryExpression to serialize + serialized expression + + + + ParameterExpression visit method. + + The ParameterExpression expression to visit + The visited ParameterExpression expression + + + + Indicates if two expression types are collapsible, e.g., ((a or b) or c) can be collapsed to (a or b or c). + + The expression type + The expression type of the parent expression + Indicates if the expression is to the left or the right of the parent expression + True if the two expression types are collapsible, false otherwise + + + + Returns the precedence of a binary operator for comparison purposes, or -1 if not applicable. + + The ExpressionType representing the binary operator + The precedence of a binary operator for comparison purposes, or -1 if not applicable + + + + Visits operands for Binary and Unary expressions. + Will only output parens if operand is complex expression, + this is so don't have unecessary parens in URI. + + The operand expression to visit + + + + Visits operands for Binary and Unary expressions. + Will only output parens if operand is complex expression, + this is so don't have unecessary parens in URI. + + The operand expression to visit + The node type of the parent expression (if applicable) + Indicates if the expression is to the left or the right of the parent expression + + + + Serializes an expression to a string + + Expression to serialize + serialized expression + + + + The references to parameter for the main predicate (.Where()) is implicit outside any/all methods. + + The expression to test + true if the expression represents a reference to the current (resource set) input and it is not in any/all method; otherwise false. + + + Whether inside any/all lambda or not + + + + An enumeration indicating the direction of a child operand + + + + The operand is the left child + + + The operand is the right child + + + + Translates resource bound expression trees into URIs. + + + + Data context used to generate type names for types. + + + stringbuilder for constructed URI + + + the request data service version for the uri + + + the leaf resourceset for the URI being written + + + + Private constructor for creating UriWriter + + Data context used to generate type names for types. + + + + Translates resource bound expression tree to a URI. + + Data context used to generate type names for types. + flag to indicate whether generated URI should include () if leaf is ResourceSet + The expression to translate + uri + version for query + + + + MethodCallExpression visit method + + The MethodCallExpression expression to visit + The visited MethodCallExpression expression + + + + UnaryExpression visit method + + The UnaryExpression expression to visit + The visited UnaryExpression expression + + + + BinaryExpression visit method + + The BinaryExpression expression to visit + The visited BinaryExpression expression + + + + ConstantExpression visit method + + The ConstantExpression expression to visit + The visited ConstantExpression expression + + + + TypeBinaryExpression visit method + + The TypeBinaryExpression expression to visit + The visited TypeBinaryExpression expression + + + + ConditionalExpression visit method + + The ConditionalExpression expression to visit + The visited ConditionalExpression expression + + + + ParameterExpression visit method + + The ParameterExpression expression to visit + The visited ParameterExpression expression + + + + MemberExpression visit method + + The MemberExpression expression to visit + The visited MemberExpression expression + + + + LambdaExpression visit method + + The LambdaExpression to visit + The visited LambdaExpression + + + + NewExpression visit method + + The NewExpression to visit + The visited NewExpression + + + + MemberInitExpression visit method + + The MemberInitExpression to visit + The visited MemberInitExpression + + + + ListInitExpression visit method + + The ListInitExpression to visit + The visited ListInitExpression + + + + NewArrayExpression visit method + + The NewArrayExpression to visit + The visited NewArrayExpression + + + + InvocationExpression visit method + + The InvocationExpression to visit + The visited InvocationExpression + + + + NavigationPropertySingletonExpression visit method. + + NavigationPropertySingletonExpression expression to visit + Visited NavigationPropertySingletonExpression expression + + + + ResourceSetExpression visit method. + + ResourceSetExpression expression to visit + Visited ResourceSetExpression expression + + + + Visit Query options for Resource + + Resource Expression with query options + + + + SkipQueryOptionExpression visit method. + + SkipQueryOptionExpression expression to visit + + + + TakeQueryOptionExpression visit method. + + TakeQueryOptionExpression expression to visit + + + + FilterQueryOptionExpression visit method. + + FilterQueryOptionExpression expression to visit + + + + OrderByQueryOptionExpression visit method. + + OrderByQueryOptionExpression expression to visit + + + + VisitExpandOptions visit method. + + Expand Paths + + + + ProjectionPaths visit method. + + Projection Paths + + + + VisitCountOptions visit method. + + + + + VisitCustomQueryOptions visit method. + + Custom query options + + + Serializes an expression to a string. + Expression to serialize + Whether or not the expression being written is part of the path of the URI. + The serialized expression. + + + + QueryProvider implementation + + + + DataServiceContext for query provider + + + Constructs a query provider based on the context passed in + The context for the query provider + + + Factory method for creating DataServiceOrderedQuery based on expression + The expression for the new query + new DataServiceQuery + + + Factory method for creating DataServiceOrderedQuery based on expression + generic type + The expression for the new query + new DataServiceQuery + + + Creates and executes a DataServiceQuery based on the passed in expression + The expression for the new query + the results + + + Creates and executes a DataServiceQuery based on the passed in expression + generic type + The expression for the new query + the results + + + Creates and executes a DataServiceQuery based on the passed in expression which results a single value + generic type + The expression for the new query + single valued results + + + Builds the Uri for the expression passed in. + The expression to translate into a Uri + Query components + + + a set, collection of unordered, distinct objects, implemented as an array + element type + + + item array of T + + + count of elements in the items array + + + number of Add and RemoveAt operations + + + + array set with an intial capacity + + initial capacity + + + add new element to the set + element to add + equality comparison function to avoid duplicates + true if actually added, false if a duplicate was discovered + + + is the element contained within the set + item to find + comparer + true if the element is contained + + + + enumerator + + enumerator + + + + enumerator + + enumerator + + + Find the current index of element within the set + item to find + comparision function + index of the item else (-1) + + + Find the current index of element within the set + selected type + item to find + selector for item to compare + item to compare + index of the item else (-1) + + + Remove the matched item from within the set + item to find within the set + comparer to find item to remove + the item that was actually contained else its default + + + Remove an item at a specific index from within the set + index of item to remove within the set + + + Sort array based on selected value out of item being stored + selected type + selector + comparer + + + Sets the capacity to the actual number of elements in the ArraySet. + + + identity selector, returns self + input + output + + + count of elements in the set + + + get an item from an index in the set + index to access + + + Compare selected value out of t + comparison type + + + Select something out of T + + + Comparer of selected value + + + Compare + x + y + int + + + + Use this class to keep a log of changes done by the materializer. + + + + The merge option. + + + The client edm model. + + + The entity tracker. + + + Dictionary of identity URI to instances created during previous AppendOnly moves. + + + Dictionary of identity URI to tracked entities. + + + List of link descriptors (data for links and state). + + + Target instance to refresh. + + + + Initializes a new instance. + + The merge option for the log. + The model for the log. + The entity tracker for the log. + + Note that the merge option can't be changed. + + + + + This method is used to merge all the metadata that come in the response payload. + + entityDescriptor that is getting tracked by the client + entityDescriptor that is returned by the materializer + if true, we will need to merge all entity descriptor info, otherwise not. + merge option depending on which etag information needs to be merged. + + + Applies all accumulated changes to the associated data context. + The log should be cleared after this method successfully executed. + + + Clears all state in the log. + + + + Invoke this method to notify the log that an existing + instance was found while resolving an object. + + Entry for instance. + + + + Invoke this method to notify the log that the + target instance of a "directed" update was found. + + Entry found. + + The target instance is typically the object that we + expect will get refreshed by the response from a POST + method. + + For example if a create a Customer and POST it to + a service, the response of the POST will return the + re-serialized instance, with (important!) server generated + values and URIs. + + + + Attempts to resolve an entry from those tracked in the log. + Entry to resolve. + + After invocation, an existing entry with the same identity as + ; possibly null. + + true if an existing entry was found; false otherwise. + + + + Invoke this method to notify the log that a new link was + added to a collection. + + + Instance with the collection to which + was added. + + Property name for collection. + Object which was added. + + + + Invoke this method to notify the log that a new instance + was created. + + Entry for the created instance. + + + + Invoke this method to notify the log that a link was removed + from a collection. + + + Instance with the collection from which + was removed. + + Property name for collection. + Object which was removed. + + + + Invoke this method to notify the log that a link was set on + a property. + + Entry for source object. + Name of property set. + Target object. + + + + Returns true the specified entry represents an entity. + + The materializer entry + True if the entry represents an entity. + + + + Returns true the specified entry represents an entity. + + The resolved instance + The client model. + True if the entry represents an entity. + + + Whether changes are being tracked. + + + Type of property stored in BindingPropertyInfo. + + + Property type is a complex type. + + + Property type is an entity type with keys. + + + Property is a DataServiceCollection. + + + Property is a collection of primitives or complex types. + + + Cache of information about entity types and their observable properties + + + Object reference used as a 'False' flag. + + + Object reference used as a 'True' flag. + + + Lock on metadata caches. + + + Types which are known not to be entity types. + + + Types which are known to be (or not) collection types. + + + Mapping between types and their corresponding entity information + + + Obtain binding info corresponding to a given type + Type for which to obtain information + the client model. + Info about the + + + Gets the ClientType corresponding to the given type + Input type + The client model. + Corresponding ClientType + + + + Get the entity set name for the target entity object. + + An entity object. + The 'currently known' entity set name for the target object. + The client model. + The entity set name for the target object. + + Allow user code to provide the entity set name. If user code does not provide the entity set name, then + this method will get the entity set name from the value of the EntitySetAttribute. + The 'currently known' entity set name for top level collections can be provided through OEC constructor + + + + + Determine if the specified type is an DataServiceCollection. + + + If there a generic class in the inheritance hierarchy of the type, that has a single + entity type paramenter T, and is assignable to DataServiceCollection(Of T), then + the type is an DataServiceCollection. + + An object type specifier. + The client model. + true if the type is an DataServiceCollection; otherwise false. + + + + Determine if the specified type is an entity type. + + An object type specifier. + The client model. + true if the type is an entity type; otherwise false. + + + + Tries to get the value of a property and corresponding BindingPropertyInfo or ClientPropertyAnnotation if the property exists + + Source object whose property needs to be read + Name of the source object property + The client model. + BindingPropertyInfo corresponding to + Instance of ClientProperty corresponding to + Value of the property + true if the property exists and the value was read; otherwise false. + + + Obtain binding info corresponding to a given type + Type for which to obtain information + The client model. + Info about the + + + Checks whether a given type can be a complex type i.e. implements INotifyPropertyChanged. + Input type. + true if the type is complex type, false otherwise. + + + Gets entity set corresponding to a given type + Intput type + The client model. + Entity set name for the type + + + Information about a property interesting for binding + + + Property information + + + Kind of the property i.e. complex, entity or collection. + + + Holder of information about entity properties for a type + + + Collection of properties interesting to the observer + + + Constructor + + + Entity set of the entity + + + Corresponding ClientTyp + + + Collection of properties interesting to the observer + + + + Color of each vertex to be used for Depth First Search + + + + White color means un-visited + + + Gray color means added to queue for DFS + + + Black color means already visited hence reachable from root + + + + The BindingGraph maps objects tracked by the DataServiceContext to vertices in a + graph used to manage the information needed for data binding. The objects tracked + by the BindingGraph are entity type objects and observable entity collections. + + + + The observer of the graph + + + Graph containing entities, collections and their relationships + + + Constructor + Observer of the graph + + + Adds a DataServiceCollection to the graph + Source object for the collection, this object has navigation property corresponding to collection + Property in that corresponds to the collection + Collection being added + Entity set of entities in the collection + true if a new vertex had to be created, false if it already exists + + + Adds a collection of primitives or complex types to the graph + Source object for the collection, this object has property corresponding to collection + Property in that corresponds to the collection + Collection being added + Type of item in the collection + + + Adds an entity to the graph + Source object for the entity, this object has navigation property that links to entity + Property in that links to entity + Entity being added + Entity set of entity being added + Item from which the directed edge in the graph goes into . This can be a collection + true if a new vertex had to be created, false if it already exists + + This method processes the current 'target' entity and then recursively moves into the graph through + the navigation properties. The 'source' is a previously processed item - it is the 'parent' + of the target entity. + The code generated EntitySetAttribute is processed by this method. + A source entity can reference the target entity directly through an entity reference navigation property, + or indirectly through a collection navigation property. + + + + + Removes the from the binding graph + + Item to remove + Parent of the + Parent property that refers to + + + + Removes the from the binding graph + + Item to remove + Collection that contains the + + + Removes all of a collection's items from the graph, but does not remove the collection. + Collection containing the items to remove. + This is used for both DataServiceCollection and collections of primitives or complex types. + + + Removes a relationship between two items based on source and relation label + Source item + Label for relation + + + Remove all non-tracked entities from the graph + + + + Returns a sequence of items belonging to a collection. Uses the children of a collection + vertex for this enumeration. + + Collection being enumerated. + Sequence of items belonging to the collection. + + + Reset the graph after detaching notifications for everything + + + Removes the un-reachable vertices from the graph and un-registers notification handlers + + + Get the binding information for a DataServiceCollection + Collection + The source object that reference the target object through a navigation property. + The navigation property in the source object that reference the target object. + The entity set of the source object. + The entity set name of the target object. + + + Get the binding information for a collection + Collection + The source object that reference the target object through a collection property. + The collection property in the source object that reference the target object. + Type of item in the collection + + + + Obtains the closest ancestor entity type in the graph corresponding to a complex object vertex. + + On input this is a complex object, on output it is the closest entity ancestor. + On input this is a complex object's member property name, on output it is the name of corresponding property of the ancestor entity. + On input this is a complex object's member property value, on output it is the value of the corresponding property of the ancestor entity. + + + + Adds a complex typed object to the graph, also traverses all the child complex properties and adds them. + + Source object that contains the complex object, can be an entity, complex object, or a collection. + Source property of complex type, is null if complex type is in a collection, otherwise is the property that references the complex object on source. + Target complex object value. + + + + Adds complex items to the graph from the specified collection. + + Collection that contains . + Items in to add to the binding graph. May be only a subset of the total items in . + + + Add items to the graph, from the object's properties + Object whose properties are to be explored + + + Attach the CollectionChanged handler to an DataServiceCollection. + An DataServiceCollection. + + + Attach the CollectionChanged handler to a collection of primitives or complex types. + An ICollection of T, where T is the type of the item in the collection. + True if the collection is attached; otherwise false. + + + Attach the PropertyChanged handler to an entity or complex object. + An entity or complex object. + True if the target is attached; otherwise false. + + + Detach CollectionChanged or PropertyChanged handlers from the target + An entity object or collection. + + + Detach CollectionChanged handlers from the target + A collection object + + + + Sets the observer for a child DataServiceCollection + + Entity type for the collection + Non-typed collection interface + + + Graph implementation for tracking entities, collections for binding + + + Vertices of the graph, which also hold edges + + + The root vertex for the graph, DFS traversals start from this vertex + + + Constructor + + + Adds vertex to the graph + Item corresponding to vertex + Newly created vertex + + + Removes all edges going out of and coming into the given vertex + Vertex whose edges are to be cleared + + + + Checks if a vertex exists corresponding to given + + Item to lookup + true if vertex found, false otherwise + + + Looksup the vertex corresponding to + Item to lookup + Vertex corresponding to item + + + + Adds edge between vertices corresponding to and + objects which will be labeled with + + Outgoing end of the edge + Incoming end of the edge + Label for the vertex + Newly created edge + + + + Removes edge between vertices corresponding to and + objects which was labeled with + + Outgoing end of the edge + Incoming end of the edge + Label for the vertex + + + + Checks if an edge exists between and labeled + with + + Outgoing end of the edge + Incoming end of the edge + Label for the vertex + true if an edge exists between source and target with given label, false otherwise + + + + Selects collection of objects tracked by the graph based on the given filter + + Filter for the objects + Filtered list of objects tracked by the graph + + + + Removes everything from the graph after applying + + Action to apply before removal of each node + + + Remove all vertices from graph that are unreachable from the root collection vertex + Action to perform for each removed vertex + + + Collects all vertices unreachable from the root collection vertex + Sequence of vertices that are unreachable from the root collection vertex + + Performs a depth first traversal of the graph starting from the root collection + vertex and checks if some vertices were unreachable was reached while doing the traversal. + Alogrithm from Introduction to Algorithms 22.2 by Cormen et al. + + + + Root vertex of the graph + + + Vertex of the + + + Collection of incoming edges for the vertex + + + Collection of outgoing edges for the vertex + + + Constructor + Item corresponding to vertex + + + Get the binding information for a collection vertex + The source object that reference the target object through a navigation property corresponding to current collection vertex. + The navigation property in the source object that reference the target object. + The entity set of the source object. + The entity set of the target object. + + + Get the binding information for a collection vertex + The source object that reference the target object through a collection property corresponding to current collection vertex. + The collection property in the source object that references the collection object. + Type of item in the collection. + + + Item corresponding to the vertex + + + Entity set of the item held by the vertex + + + Is item a DataServiceCollection object + + + Is item a complex type object + + + Is item a collection of primitives or complex types + + + Type of items in the collection if this items represents a collection of primitives or complex types + + + Parent vertex, only exists for non-top level collection vertices or complex objects + + + Property of the object that associates this vertex with it's parent + + + Is item a root collection object + + + Color of the vertex + + + Edges coming into this vertex + + + Edges going out of this vertex + + + + Edge between two vertices of graph, directed and labeled + + + + IEquatable override + Comparand + true if equal, false otherwise + + + Source vertex + + + Target vertex + + + Label of the edge + + + The BindingObserver class + + + + The BindingGraph maps objects tracked by the DataServiceContext to vertices in a + graph used to manage the information needed for data binding. The objects tracked + by the BindingGraph are entities, complex types and DataServiceCollections. + + + + Constructor + The DataServiceContext associated with the BindingObserver. + EntityChanged delegate. + EntityCollectionChanged delegate. + + + Start tracking the specified DataServiceCollection. + An entity type. + An DataServiceCollection. + The entity set of the elements in . + + + Stop tracking the root DataServiceCollection associated with the observer. + + + Handle changes to tracked entity. + The entity that raised the event. + Information about the event such as changed property name. + + + Handle changes to tracked DataServiceCollection. + The DataServiceCollection that raised the event. + Information about the event such as added/removed entities, operation. + + + Handle changes to collection properties. + The collection that raised the event. + Information about the event such as added/removed items, operation. + + + Handle Adds to a tracked DataServiceCollection. Perform operations on context to reflect the changes. + The source object that reference the target object through a navigation property. + The navigation property in the source object that reference the target object. + The entity set of the source object. + The collection containing the target object. + The target entity to attach. + The entity set name of the target object. + + + Handle Deletes from a tracked DataServiceCollection. Perform operations on context to reflect the changes. + The source object that reference the target object through a navigation property. + The navigation property in the source object that reference the target object. + The entity set of the source object. + The collection containing the target object. + The target entity. + The entity set name of the target object. + + + Handle changes to navigation properties of a tracked entity. Perform operations on context to reflect the changes. + The source object that reference the target object through a navigation property. + The navigation property in the source object that reference the target object. + The entity set of the source object. + The target entity. + The entity set name of the target object. + + + Determine if the DataServiceContext is tracking the specified entity. + An entity object. + true if the entity is tracked; otherwise false. + + + + Handle changes to an entity object tracked by the BindingObserver + + The entity object that has changed. + The property of the target entity object that has changed. + The value of the changed property of the target object. + + + Processes the INotifyCollectionChanged.Add event. + Event information such as added items. + Parent entity to which collection belongs. + Parent entity property referring to collection. + Entity set of the collection. + Collection that changed. + + + Processes the INotifyCollectionChanged.Remove event. + Event information such as deleted items. + Parent entity to which collection belongs. + Parent entity property referring to collection. + Collection that changed. + + + Removes a collection from the binding graph and detaches each item. + Collection whose elements are to be removed and detached. + + + Performs a Deep removal of all entities in a collection. + Collection whose items are removed from binding graph. + Parent item whose property refer to the being cleared. + Property of the that refers to . + Validation method if any that checks the individual item in for validity. + + + + Handles additions to collections of complex types. + + Collection that contains the new items. + Items that were added to the collection. + + + + Handles removals from collections of complex types. + + Collection that no longer contains the items. + Items that were removed from the collection. + + + Handle the DataServiceContext.SaveChanges operation. + DataServiceContext for the observer. + Information about SaveChanges operation results. + + + Collects a list of entities that observer is supposed to stop tracking + Entity being delete along with it's children + Parent of the + Property by which refers to + List in which entities to be untracked are collected + + + Determine if the DataServiceContext is tracking link between and . + The source object side of the link. + A property in the source side of the link that references the target. + The target object side of the link. + True if the link is tracked; otherwise false. + + + Checks whether the given entity is in detached or deleted state. + Entity being checked. + true if the entity is detached or deleted, otherwise returns false. + + + Entity validator that checks if the is of entity type. + Entity being validated. + + + The DataServiceContext associated with the BindingObserver. + + + The behavior of add operations should be Attach or Add on the context. + + + The behavior of remove operations should be Detach on the context. + + + + Callback invoked when a property of an entity object tracked by the BindingObserver has changed. + + + Entity objects tracked by the BindingObserver implement INotifyPropertyChanged. Events of this type + flow throw the EntityChangedParams. If this callback is not implemented by user code, or the user code + implementation returns false, the BindingObserver executes a default implementation for the callback. + + + + + Callback invoked when an DataServiceCollection tracked by the BindingObserver has changed. + + + DataServiceCollection objects tracked by the BindingObserver implement INotifyCollectionChanged. + Events of this type flow throw the EntityCollectionChanged callback. If this callback is not + implemented by user code, or the user code implementation returns false, the BindingObserver executes + a default implementation for the callback. + + + + Information regarding each entity to be untracked + + + Entity to untrack + + + Parent object of + + + Parent object property referring to + + + Utilities for binding related operations + + + + Throw if the entity set name is null or empty + + entity set name. + entity instance for which the entity set name is generated. + + + + Given a collection type, gets it's entity type + + Input collection type + Generic type argument for the collection + + + Verifies the absence of observer for an DataServiceCollection + Type of DataServiceCollection + Non-typed collection object + Collection property of the source object which is being assigned to + Type of the source object + + + + Encapsulates the arguments for the DataServiceContext ChangesSaved event + + + + + DataServiceContext SaveChanges response + + + + + Construct a DataServiceSaveChangesEventArgs object. + + DataServiceContext SaveChanges response + + + Encapsulates the arguments of a delegate + + + Context associated with the BindingObserver. + + + The entity object that has changed. + + + The property of the entity that has changed. + + + The current value of the target property. + + + Entity set to which the entity object belongs + + + Entity set to which the target propertyValue entity belongs + + + + Construct an EntityChangedParams object. + + Context to which the entity and propertyValue belong. + The entity object that has changed. + The property of the target entity object that has changed. + The current value of the entity property. + Entity set to which the entity object belongs + Entity set to which the target propertyValue entity belongs + + + The context that is associated with the entity object that has changed. + The context that is tracking the changed object. + + + The entity object that has changed. + The changed object. + + + The name of the property on the entity object that references the target object. + The name of the changed property. + + + The object that is currently referenced by the changed property on the entity object. + The current value that references a target entity. + + + The entity set of the source object. + An entity set name. + + + The entity set to which the target entity object belongs + An entity set name. + + + Encapsulates the arguments of a delegate. + + + Context associated with the BindingObserver. + + + + The source object that references the target object through a collection navigation property. + + + + The property of the source object that references the collection that has changed. + + + The entity set of the source object. + + + The collection that has changed. + + + The target entity object involved in the change. + + + The entity set name of the target object. + + + + The action that indicates how the collection was changed. The value will be Add or Remove. + + + + + Construct an EntityCollectionChangedParams object. + + The DataServiceContext associated with the BindingObserver. + The source object that references the target object through a collection navigation property. + The property of the source object that references the collection that has changed. + The entity set of the source object. + The collection that has changed. + The target entity object involved in the change. + The entity set name of the target object. + The action that indicates how the collection was changed. The value will be Add or Remove. + + + The associated with the that has changed. + The context associated with the collection that has changed + + + The source object that references the target object in the collection by using a navigation property. + The source object. + + + The navigation property on the source object that references the collection that has changed. + The navigation property name. + + + The entity set of the source object. + An entity set name. + + + The entity object in the collection that has changed. + The changed entity object in the collection. + + + The entity set name of the object in the collection. + An entity set name. + + + The that has changed. + A reference to the collection that has changed. + + + A value that indicates how the collection was changed. + A value that indicates how the collection was changed. + + + Determines whether changes that are made to a are tracked. + + + The collection should not track changes. + + + The collection should automatically track changes to the entities + in the collection. + + + Represents a dynamic entity collection that provides notifications when items get added, removed, or when the list is refreshed. + An entity type. + + + The BindingObserver associated with the DataServiceCollection + + + Is this a root collection + + + The continuation for partial collections. + + + True if tracking setup was deferred to first Load() call. + + + Callback tracked until tracking is enabled. + + + Callback tracked until tracking is enabled. + + + Entity set name tracked until tracking is enabled. + + + Initializes a new instance of the class. + Creates a default data service collection, with auto-change tracking enabled as soon as data is loaded into it. + + + Initializes a new instance of the class based on query execution. + A or LINQ query that returns an collection of objects that are used to initialize the collection. + + + Initializes a new instance of the class based on query execution and with the specified tracking mode. + A or LINQ query that returns an collection of objects that are used to initialize the collection. + A value that indicated whether or not changes made to items in the collection are automatically tracked. + + + Initializes a new instance of the class that uses the specified . + The used to track changes to objects in the collection. + + + Initializes a new instance of the class with the supplied change method delegates and that uses the specified . + The used to track items in the collection. + The entity set of the objects in the collection. + A delegate that encapsulates a method that is called when an entity changes. + A delegate that encapsulates a method that is called when the collection of entities changes. + + + Initializes a new instance of the class based on query execution and with the supplied change method delegates. + A or LINQ query that returns an collection of objects that are used to initialize the collection. + A value that indicated whether or not changes made to items in the collection are automatically tracked. + The entity set of the objects in the collection. + A delegate that encapsulates a method that is called when an entity changes. + A delegate that encapsulates a method that is called when the collection of entities changes. + + + Initializes a new instance of the class based on query execution, with the supplied change method delegates, and that uses the supplied . + The used to track items in the collection. + A or LINQ query that returns an collection of objects that are used to initialize the collection. + A value that indicated whether or not changes made to items in the collection are automatically tracked. + The entity set of the objects in the collection. + A delegate that encapsulates a method that is called when an entity changes. + A delegate that encapsulates a method that is called when the collection of entities changes. + + + Creates new DataServiceCollection. + The materializer + associated with the new collection. + Enumeration of items to initialize the new DataServiceCollection with. + The tracking mode for the new collection. + The name of the entity set the elements in the collection belong to. + Delegate that gets called when an entity changes. + Delegate that gets called when an entity collection changes. + This is the internal constructor called from materializer and used inside our projection queries. + + + Loads a collection of entity objects into the collection.Not supported by the WCF Data Services 5.0 client for Silverlight. + Collection of entity objects to be added to the . + + When tracking is enabled, the behavior of Load would be to attach all those entities that are not already tracked by the context + associated with the collection. The operation will go deep into the input entities so that all related + entities are attached to the context if not already present. All entities in + will be tracked after Load is done. + Load method checks for duplication. The collection will ignore any duplicated items been loaded. + For large amount of items, consider DataServiceContext.LoadProperty instead. + + + + Loads a single entity object into the collection.Not supported by the WCF Data Services 5.0 client for Silverlight. + Entity object to be added. + + When tracking is enabled, the behavior of Load would be to attach the entity if it is not already tracked by the context + associated with the collection. The operation will go deep into the input entity so that all related + entities are attached to the context if not already present. The will be + tracked after Load is done. + Load method checks for duplication. The collection will ignore any duplicated items been loaded. + + + + Indicates whether all the items from the collection are removed. + true if all the items from the collection are removed; otherwise, false. + + + Disables the tracking of all items in the collection. + + All the entitities in the root collection and all it's related objects will be untracked at the + end of this operation. + + + + Adds a specified item to the collection at the specified index. + Index at which to add the item. + The item to add. + + Override to prevent additions to the collection in "deferred tracking" mode, and to verify that the item implements INotifyPropertyChanged. + Overridding this method will cover items that are added to the collection via Add and Insert. + + + + + Verifies that input iterator parameter is not null and in case + of Silverlight, it is not of DataServiceQuery type. + + Input iterator parameter. + + + + Obtain the DataServiceContext from the incoming enumerable + + An IEnumerable that may be a DataServiceQuery or QueryOperationResponse object + DataServiceContext instance associated with the input + + + + Populate this collection with another collection of items + + The items to populate this collection with + + + + Prepare the collection for loading. For tracked collections, we enter the attaching state + + + + + Reset the collection after loading. For tracked collections, we exit the attaching state. + + + + Initialize and start tracking an DataServiceCollection + The context + Collection to initialize with + The entity set of the elements in the collection. + delegate that needs to be called when an entity changes. + delegate that needs to be called when an entity collection is changed. + + + Gets a continuation object that is used to return the next set of paged results. + A object that contains the URI to return the next set of paged results. + + + Observer for the collection. + The setter would get called only for child collections in the graph. + + + + Whether this collection is actively tracking + + + + Indicates the entity set to which a client data service class belongs. + + This attribute is generated only when there is one entity set associated with the type. + When there are more than one entity set associated with the type, then the entity set + name can be passed in through the EntitySetNameResolver event. + + + + + The entity set name. + + + + Creates a new instance of the . + The entity set to which the class belongs. + + + Gets the entity set to which the class belongs. + The entity set as string value. + + + Marks a class as an entity type in WCF Data Services. + + + Creates a new instance of the class. + + + Denotes the key property or properties of an entity. + + + Name of the properties that form the key. + + + Initializes a new instance of the class. + The string that contains name of the key attribute. + + + Initializes a new instance of the class. + An array of string values that contain key attribute names. + + + Gets the names of key attributes. + String value that contains names of key attributes. + + + Represents the versions of the Open Data Protocol (OData) that the data service may support. + + + Version 1 + + + Version 2 + + + Version 3 + + + Indicates that a class that is an entity type has a default binary data stream. + + + Indicates that a class that is an entity type has a related named binary stream. + + + Creates a new instance of the class. + The name of a binary stream that belongs to the attributed entity. + + + The name of a binary stream that belongs to the attributed entity. + The name of the binary stream. + + + Exception that indicates an error occurred while querying the data service. + + + Actual response object. + + + Initializes a new instance of the class with a system-supplied message that describes the error. + + + Initializes a new instance of the class with a specified message that describes the error. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture.The string value that the contains error message. + + + 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 message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture. The string value that contains the error message. + The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception. The inner exception object. + + + Initializes a new instance of the class. + The string value that contains the error message. + The inner exception object. + The object. + + + + Initializes a new instance of the DataServiceQueryException class from the + specified SerializationInfo and StreamingContext instances. + + + A SerializationInfo containing the information required to serialize + the new DataServiceQueryException. + + A StreamingContext containing the source of the serialized stream + associated with the new DataServiceQueryException. + + + Gets the that indicates the exception results. + A object that indicates the exception results. + + + Represents additional metadata that is included in a request message to WCF Data Services. + + + Creates a new instance of the class. + + + Gets or sets the Accept header of the request message. + The value of the Accept header. + + Sets the mime type (ex. image/png) to be used when retrieving the stream. + Note that no validation is done on the contents of this property. + It is the responsibility of the user to format it correctly to be used + as the value of an HTTP Accept header. + + + + Gets or sets the Content-Type header of the request message. + The value of the Content-Type header. + + Sets the Content-Type header to be used when sending the stream to the server. + Note that no validation is done on the contents of this property. + It is the responsibility of the user to format it correctly to be used + as the value of an HTTP Content-Type header. + + + + Gets or sets the value of the Slug header of the request message. + A value that is the Slug header of the request. + + Sets the Slug header to be used when sending the stream to the server. + Note that no validation is done on the contents of this property. + It is the responsibility of the user to format it correctly to be used + as the value of an HTTP Slug header. + + + + Gets the headers in the request message. + The headers in the request message. + + Dictionary containing all the request headers to be used when retrieving the stream. + The user should take care so as to not alter an HTTP header which will change + the meaning of the request. + No validation is performed on the header names or values. + This class will not attempt to fix up any of the headers specified and + will try to use them "as is". + + + + Request header collection. + + + Represents the error thrown if the data service returns a response code less than 200 or greater than 299, or the top-level element in the response is <error>. This class cannot be inherited. + + + Actual response object. + + + Initializes a new instance of the class with a system-supplied message that describes the error. + + + Initializes a new instance of the class with a specified message that describes the error. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture.The error message text. + + + 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 message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture. + The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception. + + + Initializes a new instance of the class. + Error message text. + Exception object that contains the inner exception. + object. + + + + Initializes a new instance of the DataServiceQueryException class from the + specified SerializationInfo and StreamingContext instances. + + + A SerializationInfo containing the information required to serialize + the new DataServiceException. + + A StreamingContext containing the source of the serialized stream + associated with the new DataServiceException. + + + Gets the response as a object. + A object. + + + Represents a response from WCF Data Services that contains binary data as a stream. + + + IODataResponseMessage containing all the response information. + + + Lazy initialized cached response headers. + + + + Response stream. Caching the response stream so that IODataResponseStream.GetStream is only called once. + This helps us to assert that no one internally calls the GetStream method more than once. + + + + + Constructor for the response. This method is internal since we don't want users to create instances + of this class. + + The web response to wrap. + + + Releases all resources used by the current instance of the class. + + + Checks if the object has already been disposed. If so it throws the ObjectDisposedException. + If the object has already been disposed. + + + Gets the content type of the response stream. + The content type of the response stream. + If the Content-Type header was not present in the response this property will return null. + + + Gets the Content-Disposition header field for the response stream. + The contents of the Content-Disposition header field. + /// If the Content-Disposition header was not present in the response this property will return null. + + + Gets the collection of headers from the response. + The headers collection from the response message as a object. + + + Gets the binary property data from the data service as a binary stream. + The stream that contains the binary property data. + When the is already disposed. + + Returns the stream obtained from the data service. When reading from this stream + the operations may throw if a network error occurs. This stream is read-only. + + Caller must call Dispose/Close on either the returned stream or on the response + object itself. Otherwise the network connection will be left open and the caller + might run out of available connections. + + + + + enum to describe the descriptor kind + + + + Entity Descriptor + + + Link Descriptor + + + Named stream descriptor + + + Service Operation descriptor + + + + represents the association between two entities + + + + equivalence comparer + + + source entity + + + name of property on source entity that references the target entity + + + target entity + + + + Constructor + + Source entity + Navigation property on the source entity + Target entity + The client model. + + + + Constructor + + Source entity + Navigation property on the source entity + Target entity + The link state + + + + Clear all the changes associated with this descriptor + This method is called when the client is done with sending all the pending requests. + + + + + If the current instance of link descriptor is equivalent to the parameters supplied + + The source entity + The source property name + The target entity + true if equivalent + + + The source entity in a link returned by a . + . + + + A source entity in a link returned by a . + . + + + The identifier property of the source entity in a link returned by a . + The string identifier of an identity property in a source entity. + + + this is a link + + + is this a collection property or not + + + equivalence comparer + + + are two LinkDescriptors equivalent, ignore state + link descriptor x + link descriptor y + true if equivalent + + + compute hashcode for LinkDescriptor + link descriptor + hashcode + + + Response from SaveChanges. + + + Descriptor containing the response object. + + + Initializes a new instance of the class. + HTTP headers + response object containing information about resources that got changed. + + + Gets the or modified by a change operation. + An or modified by a change operation. + + + + static utility functions for conversions + + + + + convert from string to the appropriate type + + incoming string value + type to convert to + converted value + + + + Tries to converts a binary value to a byte array. + + The binary value to convert. + The equivalent value converted to a byte array. + Whether the value was binary. + + + + change primtive typeName into non-nullable type + + like Edm.String or Edm.Binary + the mapped output type + true if named + + + + Convert from primitive value to an xml payload string. + NOTE: We need to pay special attention to DateTimes - if the converted value is going to be used as a content of + atom:updated or atom:published element we have to ensure it contains information about time zone. At the same time we + must not touch datetime values that in content or are mapped to custom elements. + + incoming object value + converted value + + + type edm type string for content + type to analyze + edm type string for payload, null for unknown + + + + Annotates a type on the client. + + + + Back reference to the EdmType this annotation is part of. + + + what is the clr full name using ToString for generic name expansion + + + what clr type does this represent + + + Storage for the client model. + + + Set to true if the type is marked as ATOM-style media link entry + + + Property that holds data for ATOM-style media link entries + + + Whether any property (including properties on descendant types) of this type is a collection of primitive or complex types. + + + object to manage and encapsulate the lazy loading of the EPM data. + + + Cached client properties. + + + Cached Edm properties + + + + discover and prepare properties for usage + + Back reference to the EdmType this annotation is part of. + type being processed + the qualified name of the type being processed + The client model. + + + Ensures that EPM is loaded + + + + Returns the list of EdmProperties for this type. + + Returns the list of EdmProperties for this type. + + + Returns the list of properties from this type. + Returns the list of properties from this type. + + + + Gets the set of properties on this type that should be serialized into insert/update payloads. + + The properties to serialize. + + + + get property wrapper for a property name, might be method around open types for otherwise unknown properties + + property name + are missing properties ignored + property wrapper + for unknown properties on closed types + + + + Checks if any of the properties (including properties of descendant types) is a collection of primitive or complex types. + + true if any if any of the properties (including properties of descendant types) is a collection of primitive or complex types. Otherwise false. + + + + Determines whether a given property should be serialized into an insert or update payload. + + The declaring type of the property. + The property. + Whether or not the property should be serialized. + + + + build the clientPropertyCache from EdmProperties + + + + + Check if this type represents an ATOM-style media link entry and + if so mark the ClientType as such + + + + + Set the HasStream boolean annotation in the EdmType to true. + + + + + Computes the metadata version of the property. + + List of properties for which metadata version needs to be computed. + List of complex type already visited. + the metadata version of the property collection. + + + + Discovers and returns edm properties for this type. + + Edm properties on this type. + + + if true then EntityType else if !KnownType then ComplexType else PrimitiveType + + + Property that holds data for ATOM-style media link entries + + + Returns true if the type is marked as ATOM-style media link entry + + + + Target tree for s on this type + + + + Are there any entity property mappings on this type + + + The minimum DSVP required for EPM mappings + + + Gets the EdmTypeReference for the client Type annotation. + + + + Class to encpsulate the lazy loading logic for EPM data + + + + Souce Epm mappings + + + Target Epm mappings + + + object to lock on when building the epm info + + + the current client annotation that the mappings are for + + + + Initializes a new instance of the class. + + The client type annotation. + + + + Ensures that the EPM data is loaded. + + + + + By going over EntityPropertyMappingInfoAttribute(s) defined on the ElementType + builds the corresponding EntityPropertyMappingInfo + + The ClientTypeAnnotation to refer to + The source tree to populate. + This method should be called after all properties are set on the edm type. + + + + By going over EntityPropertyMappingInfoAttribute(s) defined on + builds the corresponding EntityPropertyMappingInfo + + Type being looked at + The ClientTypeAnnotation to refer to + The source tree to populate. + + + + Builds the EntityPropertyMappingInfo corresponding to an EntityPropertyMappingAttribute, also builds the delegate to + be invoked in order to retrieve the property provided in the + + Source EntityPropertyMappingAttribute + ResourceType on which to look for the property + The ClientTypeAnnotation to refer to + The source tree to populate. + + + + Initializes the epm fields and builds the information into the fields + + + + + Target tree for s on this type + + + + + Source tree for s on this type + + + + + Determines if the Epm fields need initializing + + + + + The exception that is thrown when the server returns an error. + + + + + Contains the state for this exception. + + + + Initializes a new instance of the class with a system-supplied message that describes the error. + + + Initializes a new instance of the class with a specified message that describes the error. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture. + + + 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 message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture. + The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception. + + + Initializes a new instance of the class. + The string value that contains the error message. + The integer value that contains status code. + + + Initializes a new instance of the class. + The string value that contains the error message. + The System.Exception object that contains the inner exception. + The integer value that contains status code. + + + Gets the HTTP error status code returned after . + An integer value that represents the exception. + + + + Contains the state of the exception, used for serialization in security transparent code. + + + + + Called when deserialization of the exception is complete. + + The deserialized exception. + + + + Gets or sets the status code as returned by the server. + + + + non-generic placeholder for generic implementation + + + non-generic placeholder for generic implementation + + + internal constructor so that only our assembly can provide an implementation + + + + get an enumerable materializes the objects the response + + context + query components + Projection plan (if compiled in an earlier query). + contentType + the message + expected payload kind. + atom materializer + + + + Creates a instance of strongly typed DataServiceRequest with the given element type. + + element type for the DataServiceRequest. + constructor parameter. + returns the strongly typed DataServiceRequest instance. + + + + Ends an asynchronous request to an Internet resource. + + Element type of the result. + Source object of async request. + The data service context. + async method name. + The asyncResult being ended. + The response - result of the request. + + + The QueryComponents associated with this request + The client model. + instance of query components + + + + execute uri and materialize result + + element type + context + query components for request to execute + enumerable of results + + + + Synchronizely get the query set count from the server by executing the $count=value query + + The context + The server side count of the query set + + + + Begins an asynchronous request to an Internet resource. + + source of execute (DataServiceQuery or DataServiceContext + context + The AsyncCallback delegate. + The state object for this request. + async method name. + An IAsyncResult that references the asynchronous request for a response. + + + + Creates the result object for the specified query parameters. + + The source object for the request. + The data service context. + The AsyncCallback delegate. + The state object for the callback. + async method name at the source. + Result representing the create request. The request has not been initiated yet. + + + Gets the type of object submitted as a batch to the data service. + Type object. + + + Gets the URI of the request object submitted to a data service. + URI of the request object. + + + The ProjectionPlan for the request, if precompiled in a previous page; null otherwise. + + + Gets or sets the payload kind for this request. + + + internal constructor so that only our assembly can provide an implementation + + + Gets the object that can be used to iterate through the collection returned by the query. + An enumerator over the query results. + Expect derived class to override this with an explict interface implementation + + + Executes the query against the data service.Not supported by the WCF Data Services 5.0 client for Silverlight. + An that contains the results of the query operation. + When the data service returns an HTTP 404: Resource Not Found error. + + + Asynchronously sends a request to execute the data service query. + An object that is used to track the status of the asynchronous operation. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + + + Called to complete the asynchronous operation of executing a data service query. + An that contains the results of the query operation. + The result from the operation that contains the query results. + When the data service returns an HTTP 404: Resource Not Found error. + + + Synchronous methods not available + + Returns an IEnumerable from an Internet resource. + + An IEnumerable that contains the response from the Internet resource. + + + + Begins an asynchronous request to an Internet resource. + + The AsyncCallback delegate. + The state object for this request. + An IAsyncResult that references the asynchronous request for a response. + + + + Ends an asynchronous request to an Internet resource. + + The pending request for a response. + An IEnumerable that contains the response from the Internet resource. + + + Represents an expression that contains the query to the data service. + An object that represents the query. + + + Represents the query provider instance. + An representing the data source provider. + + + + Holds a Uri and type for the request. + + The type to construct for the request results + + + The ProjectionPlan for the request (if precompiled in a previous page). + + + Request uri for the current request. + + + The QueryComponents for the request + + + Initializes a new instance of the class. + The URI object that contains the request string. + + + Create a request for a specific Uri + The URI for the request. + The query components for the request + Projection plan to reuse (possibly null). + + + Represents the URI of the query to the data service. + The requested URI as a value. + + + The QueryComponents associated with this request + The client model. + an instance of QueryComponents. + + + Gets the type of the object used to create the instance. + A value that indicates the type of data returned. + + + Gets the URI object that contains the request string. + A object that contains the request string. + + + The ProjectionPlan for the request, if precompiled in a previous page; null otherwise. + + + + Data service response to ExecuteBatch & SaveChanges + + + + Http headers of the response. + + + Http status code of the response. + + + responses + + + true if this is a batch response, otherwise false. + + + + constructor + + HTTP headers + HTTP status code + list of responses + true if this represents a batch response, otherwise false. + + + Gets an enumerator that enables retrieval of responses to operations being tracked by objects within the . + An enumerator over the response received from the service. + + + Gets an enumerator that enables retrieval of responses to operations being tracked by objects within the . + An enumerator over the response received from the service. + + + The headers from an HTTP response associated with a batch request. + An object containing the name-value pairs of an HTTP response. + + + The status code from an HTTP response associated with a batch request. + An integer based on status codes defined in Hypertext Transfer Protocol. + + + Gets a Boolean value that indicates whether the response contains multiple results. + A Boolean value that indicates whether the response contains multiple results. + + + + Response to a batched query or Execute call. + + The type to construct for the request results + + + + Response to a batched query. + + + + Original query + + + Enumerable of objects in query + + + + constructor + + HTTP headers + original query + retrieved objects + + + Executes the and returns items. + The enumerator to a collection of items. + In the case of Collection(primitive) or Collection(complex), the entire collection is + materialized when this is called. + + + Gets a object containing the URI that is used to retrieve the next results page. + An object containing the URI that is used to return the next results page. + + + Gets a object containing the URI that is used to retrieve the next page of related entities in the specified collection. + A continuation object that points to the next page for the collection. + The collection of related objects being loaded. + + + Gets a object that contains the URI that is used to retrieve the next page of related entities in the specified collection. + A continuation object that points to the next page for the collection. + The collection of related objects being loaded. + The type of the items in the collection. + + + + Creates a generic instance of the QueryOperationResponse and return it + + generic type for the QueryOperationResponse. + constructor parameter1 + constructor parameter2 + constructor parameter3 + returns a new strongly typed instance of QueryOperationResponse. + + + Gets the enumeration helper for the . + The enumerator. + The generic type. + An enumerator to enumerator through the results. + + + Gets the that generates the items. + A object. + + + Gets the server result set count value from a query, if the query has requested the value. + The return value can be either a zero or positive value equal to the number of entities in the set on the server. + Thrown when the count tag is not found in the response stream. + + + get a non-null enumerable of the result + + + + constructor + + HTTP headers + original query + retrieved objects + + + Gets a object that contains the URI that is used to retrieve the next results page. + An object that contains the URI that is used to return the next results page. + + + Executes the and gets items. + An enumerator to a collection of items. + In the case of Collection(primitive) or Collection(complex), the entire collection is + materialized when this is called. + + + The server result set count value from a query, if the query has requested the value. + The return value can be either zero or a positive value equal to the number of entities in the set on the server. + + + + Event args for the event fired during reading or writing of + an entity serialization/deserialization + + + + The entity being (de)serialized + + + The ATOM entry data to/from the network + + + The xml base of the feed or entry containing the current ATOM entry + + + + Constructor + + The entity being (de)serialized + The ATOM entry data to/from the network + The xml base of the feed or entry containing the current ATOM entry + + + Gets the object representation of data returned from the property. + representation of the property. + + + Gets an entry or feed data represented as an . + + + + + + Gets the base URI base of the entry or feed. + Returns . + + + + Strongly-typed and parameterized exception factory. + + + Strongly-typed and parameterized exception factory. + + + + + create and trace new ArgumentException + + exception message + parameter name in error + ArgumentException + + + + create and trace new InvalidOperationException + + exception message + InvalidOperationException + + + + create and trace new InvalidOperationException + + exception message + innerException + InvalidOperationException + + + + Create and trace a NotSupportedException with a message + + Message for the exception + NotSupportedException + + + + create and throw a ThrowObjectDisposed with a type name + + type being thrown on + + + + create and trace a + + errorCode + message + InvalidOperationException + + + method not supported + method + exception to throw + + + throw an exception because unexpected batch content was encounted + internal error + + + throw an exception because expected batch content was not encountered + internal error + + + unexpected xml when reading web responses + internal error + exception to throw + + + throw exception for unexpected xml when reading web responses + internal error + + + + Trace the exception + + type of the exception + exception object to trace + the exception parameter + + + + The exception that is thrown when a null reference (Nothing in Visual Basic) is passed to a method that does not accept it as a valid argument. + + + + + The exception that is thrown when the value of an argument is outside the allowable range of values as defined by the invoked method. + + + + + The exception that is thrown when the author has yet to implement the logic at this point in the program. This can act as an exception based TODO tag. + + + + + The exception that is thrown when an invoked method is not supported, or when there is an attempt to read, seek, or write to a stream that does not support the invoked functionality. + + + + unique numbers for repeated error messages for unlikely, unactionable exceptions + + + + Use this class to materialize objects from an application/atom+xml stream. + + + + Backreference to the context to allow type resolution. + + + base type of the object to create from the stream. + + + when materializing a known type (like string) + <property> text-value </property> + + + Materializer from which instances are read. + + The log for the materializer stores all changes for the + associated data context. + + + + untyped current object + + + has GetEnumerator been called? + + + Whether anything has been read. + + + + output writer, set using reflection + + + + + constructor + + originating context + Query components (projection, expected type) + Projection plan (if compiled in an earlier query). + responseMessage + The kind of the payload to materialize. + + + + constructor + + originating context + entries that needs to be materialized. + result type. + The format of the response being materialized from. + + + + Private internal constructor used for creating empty wrapper. + + + + + dispose + + + + + as IEnumerable + + this + + + + Gets the type that of the instances that will be returned by materializer. + + Whether the expected is a primitive type. + Actual type on the client. + The client model used. + The actual type that implements ICollection<> + Type of the instances that will be returned by materializer. + + For collection navigation properties (i.e. ICollection<T> where T is an entity the method returns T. Materializer will + return single entity each time MoveNext() is called. However for collection properties we need the whole property instead of just a + single collection item. + + + + + Creates the next object from the stream. + + false if stream is finished + + + + Creates the next object from the stream. + + false if stream is finished + + + + Not supported. + + Always thrown + + + + Creates materializer for results + + Context of expression to analyze. + the results to wrap + a new materializer + + + Creates a materializer for partial result sets. + Context of expression to analyze. + The current page of results + The continuation for the results. + A new materializer. + + + set the inserted object expected in the response + object being inserted that the response is looking for + + + + The count tag's value, if requested + + The count value returned from the server + + + + Returns the next link URI for the collection key + + The collection for which the Uri is returned, or null, if the top level link is to be returned + An Uri pointing to the next page for the collection + + + verify the GetEnumerator can only be called once + + + Loosely typed current object property. + + For collection properties this property will be of AtomContentProperties to allow further materialization processing. + Otherwise the value should be of the right type, as the materializer takes the expected type into account. + + + + + A materializer for empty results + + + + + Returns true if the underlying object used for counting is available + + + + + The data service context object this materializer belongs to + + + + + Private type to wrap partial (paged) results and make it look like standard materialized results. + + + + The results to wrap + + + A continuation to the next page of results. + + + The data service context this result belongs to + + + + Creates a wrapper for raw results + + Context of expression to analyze. + the results to wrap + The continuation for this query. + + + + Get the next link to the result set + + When equals to null, returns the next link associated with this collection. Otherwise throws InvalidOperationException. + The continuation for this query. + + + + Gets Enumerator for wrapped results. + + IEnumerator for results + + + + The data service context this result belongs to + + + + + Materializer state for a given ODataEntry + + + + The entry. + + + entity descriptor object which keeps track of the entity state and other entity specific information. + + + True if the context format is Atom or if the MergeOption is anything other than NoTracking. + + + Entry flags. + + + List of navigation links for this entry. + + + + Creates a new instance of MaterializerEntry. + + + + + Creates a new instance of MaterializerEntry. + + The entry. + The format the entry was read in. + True if the contents of the entry will be tracked in the context, otherwise False. + The client model. + + + + Creates a new instance of MaterializerEntry using the given entity descriptor for LoadProperty. + + Entity descriptor. + OData Format. + Whether this entity is being tracked. + Use this constructor only for LoadProperty scenario. + + + + Creates an empty entry. + + An empty entry. + + + + Creates the materializer entry. + + The entry. + The format the entry was read in. + True if the contents of the entry will be tracked in the context, otherwise False. + The client model. + A new materializer entry. + + + + Creates the materializer entry for LoadProperty scenario. + + The entity descriptor. + The format the entry was read in. + True if the contents of the entry will be tracked in the context, otherwise False. + A new materializer entry. + + + + Gets an entry for a given ODataEntry. + + The ODataEntry. + The materializer entry + + + + Adds a navigation link. + + The link. + + + + Updates the entity descriptor. + + + + Gets the value for a masked item. + Mask value. + true if the flag is set; false otherwise. + + + Sets the value for a masked item. + Mask value. + Value to set + + + + Gets the entry. + + + + + True if the context format is Atom or if the context's MergeOption is anything other than NoTracking. + This is used to avoid building URI metadata information that is not needed outside of the context, such + as odata.id and odata.editlink. Since this information is always available in the payload with Atom, for + backward compatibility we continue using it as we always have, even for NoTracking cases. + + + + + Entry ID. + + + + + Properties of the entry. + + + Non-property content goes to annotations. + + + + The entity descriptor. + + + Resolved object. + + + Actual type of the ResolvedObject. + + + Whether values should be updated from payload. + + + Whether the entity has been resolved / created. + + + Whether the materializer has created the ResolvedObject instance. + + + Is this entry created for LoadProperty. + + + The navigation links. + + + Gets the format + + + Whether the entity descriptor has been updated. + + + + Masks used get/set the status of the entry + + + + Bitmask for ShouldUpdateFromPayload flag. + + + Bitmask for CreatedByMaterializer flag. + + + Bitmask for EntityHasBeenResolved flag. + + + Bitmask for MediaLinkEntry flag (value). + + + Bitmask for LoadProperty scenario. + + + + Materializer state for a given ODataFeed + + + + The feed. + + + The entries. + + + + Prevents a default instance of the struct from being created. + + The feed. + The entries. + + + + Creates the materializer feed. + + The feed. + The entries. + The materializer feed. + + + + Gets the materializer feed. + + The feed. + The materializer feed. + + + + Gets the feed. + + + + + Gets the entries. + + + + + URI representing the next page link. + + + + + Materializer state for a given ODataNavigationLink + + + + The navigation link. + + + An object field for the feed or enty. + + + + Prevents a default instance of the struct from being created. + + The link. + Value of the link. + + + + Creates the materializer link with an entry. + + The link. + The entry. + The materializer link. + + + + Creates the materializer link with a feed. + + The link. + The feed. + The materializer link. + + + + Gets the materializer link. + + The link. + The materializer link. + + + + Gets the link. + + + + + Gets the entry. + + + + + Gets the feed. + + + + + This class marks a type that represents an Astoria client entity + such that the Astoria client will treat it as a media entry + according to ATOM's "media link entry" concept. + + + + Name of the member that contains the data for the media entry + + + Creates a new instance of . + A string value that identifies the property that holds media data. + + Creates a new MediaEntryAttribute attribute and sets the name + of the member that contains the actual data of the media entry + (e.g. a byte[] containing a picture, a string containing HTML, etc.) + + + + The name of the property on the class that holds the media, usually binary data. + A string value that identifies the property that holds media data. + + + + Used to specify a value synchronization strategy. + + + Equivalent to System.Data.dll!System.Data.LoadOption + Equivalent to System.Data.Linq.dll!System.Data.Linq.RefreshMode + Equivalent to System.Data.Entity.dll!System.Data.Objects.MergeOption + + + + + No current values are modified. + + + Equivalent to System.Data.Objects.MergeOption.AppendOnly + Equivalent to System.Data.Linq.RefreshMode.KeepCurrentValues + + + + + All current values are overwritten with current store values, + regardless of whether they have been changed. + + + Equivalent to System.Data.LoadOption.OverwriteChanges + Equivalent to System.Data.Objects.MergeOption.OverwriteChanges + Equivalent to System.Data.Linq.RefreshMode.OverwriteCurrentValues + + + + + Current values that have been changed are not modified, but + any unchanged values are updated with the current store + values. No changes are lost in this merge. + + + Equivalent to System.Data.LoadOption.PreserveChanges + Equivalent to System.Data.Objects.MergeOption.PreserveChanges + Equivalent to System.Data.Linq.RefreshMode.KeepChanges + + + + + Equivalent to System.Data.Objects.MergeOption.NoTracking + + + + + This attribute indicates another property in the same type that + contains the MIME type that should be used for the data contained + in the property this attribute is applied to. + + + + The name of the property that contains the data + + + The name of the property that contains the mime type + + + Creates a new instance of the MimeTypePropertyAttribute. + A string that contains the name of the new property attribute. + A string that contains the Mime type of the new property attribute. + + + Gets the name of the MimeTypePropertyAttribute. + A string that contains the name of the property attribute. + + + Gets the Mime type of the MimeTypePropertyAttribute + A string that contains the Mime type of the property attribute. + + + + represents the cached entity + + + + uri to identitfy the entity + <atom:id>identity</id> + + + entity + + + tracks information about the default stream, if any. + + + uri of the resource set to add the entity to during save + + + uri to query the entity + <atom:link rel="self" href="queryLink" /> + + + uri to edit the entity. In case of deep add, this can also refer to the navigation property name. + <atom:link rel="edit" href="editLink" /> + + + + Contains the LinkInfo (navigation and relationship links) for navigation properties + + + + + entity descriptor instance which contains metadata from responses which haven't been fully processed/materialized yet. + This is used only in non-batch SaveChanges scenario. + + + + List of named streams for this entity + + + List of service operation descriptors for this entity. + + + + Create a new instance of Entity descriptor. + + The client model + + + + returns the most recent identity of the entity + + the identity of the entity, as returned in the latest response. + + + return the most recent edit link for the entity + the uri to edit the entity associated with the entity descriptor. + + + return the most recent edit link for the MR associated with the entity + the uri to edit the MR associated with the entity descriptor. + + + return the most recent etag for the entity + etag for the entity associated with the entity descriptor. + + + return the most return etag for the MR associated with the entity + etag for the MR associated with the entity descriptor. + + + return the most recent type name of the entity as returned in the response payload. + the type name of the entity as returned in the response payload. + + + uri to edit the entity + retrieves the baseUri to use for a given entity set. + whether to return the query link or edit link + absolute uri which can be used to edit the entity + + + is the entity the same as the source or target entity + related end + true if same as source or target entity + + + + Return the related end for this resource. One should call this method, only if the resource is inserted via deep resource. + + returns the related end via which the resource was inserted. + + + + clears all the changes - like closes the save stream, clears the transient entity descriptor. + This method is called when the client is done with sending all the pending requests. + + + + + Closes the save stream if there's any and sets it to null + + + + + Add the given navigation link to the entity descriptor + + name of the navigation property via which this entity is related to the other end. + uri that can be used to navigate from this entity to the other end. + + + + Add the given association link to the entity descriptor + + name of the navigation property via which this entity is related to the other end. + uri that can be used to navigate associations for this property. + + + + Merges the given linkInfo to the entity descriptor, + overwrites existing links with new ones (coming from the payload) + + linkInfo + + + + Try and get the navigation link. If the navigation link is not specified, then its used the self link of the entity and + appends the property name. + + retrieves the appropriate baseUri for a given entitySet. + ClientProperty instance representing the navigation property. + returns the uri for the given link. If the link is not present, its uses the self link of the current entity and appends the navigation property name. + + + + Returns the LinkInfo for the given navigation property. + + name of the navigation property + LinkInfo for the navigation propery + true if LinkInfo is found for the navigation property, false if not found + + + + Check if there is a stream with this name. If yes, returns the information about that stream, otherwise add a streams with the given name. + + name of the stream. + an existing or new namedstreaminfo instance with the given name. + + + + Adds an operation descriptor to the list of operation descriptors. + + the operation descriptor to add. + + + + Clears all operator descriptors + + + + + Appends OperationDescriptors to the existing list of OperationDescriptors + + List containing OperationDescriptors to add for this entityDescriptor + + + + Gets the stream info with the given name. + + name of the stream. + information about the stream with the given name. + true if there is a stream with the given name, otherwise returns false. + + + + Merges the given named stream info object. + If the stream descriptor is already present, then this method merges the info from the given stream descriptor + into the existing one, otherwise justs add this given stream descriptor to the list of stream descriptors for + this entity. + + namedStreamInfo instance containing information about the stream. + + + + Sets up the descriptor's parent descriptor and parent property. Only valid if the descriptor is in the Added state. + + The parent descriptor. + The property for insert. + + + + Sets the entity set URI to use for inserting the entity tracked by this descriptor. Only valid if the descriptor is in the added state. + + The entity set insert URI. + + + + Returns LinkInfo for the given property, if it does not exists than a new one is created. + + name of the navigation property + LinkInfo for propertyName + + + + In V1, we used to not support self links. Hence we used to use edit links as self links. + IN V2, we are adding support for self links. But if there are not specified, we need to + fall back on the edit link. + + whether to get query link or the edit link. + the query or the edit link, as specified in the parameter. + + + + Creates a default stream descriptor, if there is none yet, and returns it. + If there is one already present, then returns the current instance. + + stream descriptor representing the default stream. + + + Gets the URI that is the identity value of the entity. + The property corresponds to the identity element of the entry that represents the entity in the Atom response. + + + Gets the URI that is used to return the entity resource. + A URI that returns the entity. + + + Gets the URI that modifies the entity. + The edit link URI for the entity resource. + + + Gets the URI that accesses the binary property data of the entity. + A URI that accesses the binary property as a stream. + + If the entity for the box is an MLE this property stores the content source URI of the MLE. + That is, it stores the read URI for the associated MR. + Setting it to non-null marks the entity as MLE. + + + + Gets the URI that modifies the binary property data of the entity. + The property contains the edit-media link URI for the Media Resource that is associated with the entity, which is a Media Link Entry. + + If the entity for the box is an MLE this property stores the edit-media link URI. + That is, it stores the URI to send PUTs for the associated MR. + Setting it to non-null marks the entity as MLE. + + + + Gets the entity that contains the update data. + An object that contains update data. + + + Gets an eTag value that indicates the state of data targeted for update since the last call to . + The state of data. + + + Gets the eTag for the media resource associated with an entity that is a media link entry. + A string value that indicates the state of data. + + + Gets the parent entity that is related to the entity. + An object that is the parent entity in the relationship link. + This is only set for entities added through AddRelateObject call + + + Gets the name of the property of the entity that is a navigation property and links to the parent entity. + The name of the parent property. + + + Gets the name of the type in the data source to which the entity is mapped. + A string that is the name of the data type. + + + Returns a collection of links that are the relationships in which the entity participates. + A of objects that represents links in which the entity participates. + + + Returns a collection of named binary data streams that belong to the entity. + A of objects that are the named binary data streams that belong to the entity. + + + Gets a collection of operation descriptors associated with the entity. + A collection of operation descriptors associated with the entity. + + + + Gets the client model. + + + + Parent entity + + + this is a entity + + + + Returns true if the resource was inserted via its parent. E.g. POST customer(0)/Orders + + + + + The stream which contains the new content for the MR associated with this MLE. + This stream is used during SaveChanges to POST/PUT the MR. + Setting it to non-null marks the entity as MLE. + + + + + Describes whether the SaveStream is for Insert or Update. + The value NoStream is for both non-MLEs and MLEs with unmodified stream. + + + + + Returns true if we know that the entity is MLE. Note that this does not include the information + from the entity type. So if the entity was attributed with HasStream for example + this boolean might not be aware of it. + + + + + Returns true if the entry has been modified (and thus should participate in SaveChanges). + + + + + entity descriptor instance containing metadata from responses, which hasn't been fully processed yet. + + + + + Returns the stream descriptor for the default stream associated with this entity. + If this entity is not an MLE, then returns null; + + + + + Gets the edm structured value associated with this entity. + + + + + The entity set name provided in either AttachTo or AddObject. + + + + + Describes the insert/update/delete state of an entity or link. + + + Deleting an inserted resource will detach it. + After SaveChanges, deleted resources will become detached and Added & Modified resources will become unchanged. + + + + + The resource is not tracked by the context. + + + + + The resource is tracked by a context with no changes. + + + + + The resource is tracked by a context for insert. + + + + + The resource is tracked by a context for deletion. + + + + + The resource is tracked by a context for update. + + + + + options when saving changes + + + + default option, using multiple requests to the server stopping on the first failure + + + save the changes in a single changeset in a batch request. + + + save all the changes using multiple requests + + + Use replace semantics when doing update. + + + Use PATCH verb when doing update (retains the merge semantics). + + + save each change independently in a batch request. + + + + Handle the request (both sync and async) for non batch scenarios + + + + keeps track of all the parsed responses. + + + + We cache the current response and then parse it. we need to do this for the async case only. + + + + http web response + + + remove it later + + + + constructor for SaveResult + + context + method + options + user callback + user state object + + + + This starts the next change + + + + + This starts the next change + + + + Read and store response data for the current change, and try to start the next one + the completed per request object + + + IODataResponseMessage contain response for the operation. + IODataResponseMessage instance. + + + + Handle the response. + + an instance of the DataServiceResponse, containing individual responses for all the requests made during this SaveChanges call. + + + + Get the materializer to process the response. + + entity descriptor whose response is getting materialized. + information about the response to be materialized. + an instance of MaterializeAtom, that can be used to materialize the response. + + + + Returns the request message to write the headers and payload into. + + Http method for the request. + Base Uri for the request. + Request headers. + HttpStack to use. + Descriptor for the request, if there is one. + an instance of IODataRequestMessage. + + + + Create memory stream for descriptor (entity or link or MR or named stream). + + Index into changed entries. + RequestMessage to be used to generate the payload. + Stream of data for descriptor. + + + + Create request message from the next change. + + An instance of ODataRequestMessage for the next change. + + + + Check to see if the resource to be inserted is a media descriptor, and if so + setup a POST request for the media content first and turn the rest of + the operation into a PUT to update the rest of the properties. + + The resource to check/process + An instance of ODataRequestMessage to do POST to the media resource + + + + Checks if the entity descriptor represents an MLE with modified MR and if so creates a PUT request + to update the MR. + + The entity descriptor for the entity to be checked. + An instance of ODataRequestMessage for the newly created MR PUT request or null if the entity is not MLE or its MR hasn't changed. + + + + Creates HTTP request for the media resource (MR) + + The URI to request + The HTTP method to use (POST or PUT) + version to be sent in the DSV request header. + Send the request using chunked encoding to avoid buffering. + If the response preference setting should be applied to the request + (basically means if the response is expected to contain an entity or not). + Collection of request headers + Descriptor for this media resource request. + An instance of ODataRequestMessage. + + + + Sets the content and the headers of the media resource request + + The header collection to setup. + DataServiceSaveStream instance containing all information about the stream. + ETag header value to be set. If passed null, etag header is not set. + This only works with the V2 MR support (SetSaveStream), this will not setup + the request for V1 property based MRs. + List of headers to reset + + + operation with exception + exception object + response object + + + + Decide whether we should continue when there is an error thrown + + + + + copy the response data + + response object + + + + Handle the response payload. + + httpwebresponse instance. + stream containing the response payload. + + + + Creates a request for the given named stream. + + NamedStreamInfo instance containing information about the stream. + An instance of ODataRequestMessage for the given named stream. + + + returns false since this class handles only non-batch scenarios + + + + returns true if the payload needs to be processed. + + + + + In async case, this is a memory stream used to cache responses, as we are reading async from the underlying http web response stream. + In non-async case, this is the actual response stream, as returned by the http request. + + + + + cached response + + + + response headers + + + response status code + + + Parsed response DataServiceVersion header. + + + entry containing the parsed response. + + + Exception if encountered. + + + descriptor for which the response is getting parsed. + + + + Constructor + + descriptor whose response is getting processed. + headers + status code + Parsed response DataServiceVersion header. + atom entry, if there is a non-error response payload. + exception, if the request threw an exception. + + + + Event args for the event fired before executing a web request. Gives a + chance to customize or replace the request object to be used. + + + + The web request reported through this event + + + The request header collection. + + + + Constructor + + The request reported through this event + The request header collection. + + + Gets or sets the instance about to be sent by the client library to the data service. + . + + + Gets the collection protocol headers that are associated with the request to the data service. + A collection of protocol headers that are associated with the request. + + + + Serializes the request data into the given format using the given message writer. + + + + where to pull the changes from + + + The property converter to use for creating ODataProperty instances. + + + + Creates a new instance of the Serializer. + + the request info. + + + + Creates an instance of ODataMessageWriter. + + Instance of IODataRequestMessage. + RequestInfo containing information about the client settings. + true if the writer is intended to for a parameter payload, false otherwise. + An instance of ODataMessageWriter. + + + + Creates an ODataEntry for the given EntityDescriptor and fills in its ODataLib metadata. + + The entity descriptor. + Name of the server type. + The client-side entity type. + The current client format. + An odata entry with its metadata filled in. + + + + Writes the body operation parameters associated with a ServiceAction. + + The list of operation parameters to write. + The OData request message used to write the operation parameters. + + + + Write the entry element. + + The entity. + Collection of links related to the entity. + The OData request message. + + + + Writes a navigation link. + + The entity + The links related to the entity + The ODataWriter used to write the navigation link. + + + + Writes an entity reference link. + + The link descriptor. + The request message used for writing the payload. + + + + Enumerates through the list of URI operation parameters and creates a new Uri with the uri operation parameters written as query string of the new Uri. + + The Uri used to construct the new Uri. + The non-empty list of uri parameters which will be converted to query string. + Uri containing the uri parameters as query string. + + + + Returns the new XmlWriter to cache the payload for firing WritingEntity event. + + ODataEntry instance that is currently getting serialized. + XmlWriter that is used to write the payload. + XmlWriter instance that needs to be used to write the payload for the given odataentry. + + + + Fires the WritingEntity event, and then copies the payload into the parent writer. + + ODataEntry that is currently getting serialized. + XmlWriter writer instance that got returned by StartEntryXmlCustomizer method. + Parent writer to which the payload needs to get copied to, after firing the event. + + + + Converts a value to an escaped string for use in a Uri. Wraps the call to ODL's ConvertToUriLiteral and escapes the results. + + The name of the . Used for error reporting. + The value of the . + A string representation of for use in a Url. + + + + To cache the entity instance as annotation for firing WritingEntity event + + + + Entity instance that is currently getting serialized. + + + XDocument instance to cache the payload. + + + RequestInfo instance. + + + + Creates a new instance of WritingEntityInfo + + Entity instance that is currently getting serialized. + RequestInfo instance. + + + + Holds information about stream. + + + + + The Data service stream link object + + + + entity descriptor refering the parent entity. + + + + transient named stream info, which contains metadata from the response which has not been materialized yet. + + + + + Creates a StreamDescriptor class with the given name and other information + + name of the stream. + instance of entity descriptor that contains this stream. + + + + Creates a StreamDescriptor class for the default stream (MR) associated with an entity. + + instance of entity descriptor that contains this stream. + + + + Merge the information from the new stream info into the existing one. + + stream info into which the data needs to be merged. + stream info which contains the latest data. + + + + clears all the changes - like closes the save stream, clears the transient entity descriptor. + This method is called when the client is done with sending all the pending requests. + + + + return the most recent edit link for the named stream + the uri to edit the named stream. + + + return the most recent etag for the named stream + the etag for the named stream. + + + + Closes the save stream if there's any and sets it to null + + + + The that represents the binary resource stream. + Returns . + + + The that represents the entity to which the named resource stream belongs. + The of the entity. + + + + Returns the name of the stream. + + + + + Returns the URI to get the named stream. + + + + + Returns the URI to update the named stream. + + + + + Returns the content type of the named stream. + + + + + Returns the etag for the named stream. + + + + + Returns the stream associated with this name. + + + + return true, since this class represents entity descriptor. + + + + Transient named stream info, if there are responses which hasn't been fully processed yet. + + + + + Class which contains all the logic for resolving the type from the wire name. + + + + + Dictionary instance to map the edm type name to the client type annotation. + In V1/V2, we never used to cache this and call this during materialization. Hence 2 different contexts can resolve the same wire type + differently and that would have been fine. Also, someone could have written a logic that might differ based on queries within the same context. + For e.g. before executing a projection query, the user can set a flag so that the resolver behaves differently. + Hence caching this locally for every request to simulate that behavior. + + + The callback for resolving client CLR types. + + + The callback for resolving server type names. + + + The client model. + + + The service model, or null if one has not been provided. + + + Indicates whether or not to skip the type assignability check. + + + + Creates an instance of TypeResolver class. + + The client model. + The callback to resolve client CLR types. + The callback for resolving server type names. + The service model. + + + + In V2, in projection path, we do not use to check for assignability between the expected type + and the type returned by the type resolver. This variable is used to track that scenario. + If this is true, the current request is a projection request otherwise not. + + + + + Resolves the client type that should be used for materialization. + + Expected client clr type based on the API called. + + The name surfaced by the ODataLib reader. + If we have a server model, this will be a server type name that needs to be resolved. + If not, then this will already be a client type name. + The resolved annotation for the client type to materialize into. + + + + ODL callback for client type resolution + + The expected type for the given wire name + The name of the type from the payload + An IEdmType + + + + Resolves the expected EDM type to give to the ODataLib reader based on a client CLR type. + + The client side CLR type. + The resolved EDM type to provide to ODataLib. + + + + Determines whether or not the client type should be written for a property that is not defined on the server. + DEVNOTE: If there is no server model, the declaring type is complex, or the server type cannot be + found then the server type will be assumed to match the client type. + This is done this way to prevent getting this wrong if the server property is defined, but we cannot find it for some reason. + So if the types do not match, or we aren't able to align them, we will not write the type name, allowing the server to interpret it as the correct type. + + The client-side property. + The server type name of the current entity. + True if the client property type should be written because the property definitely not defined on the server type. + + + + Tries to resolve the name of the base type of the given entity set if a server model has been provided. + + The name of the entity set. + The server type name if one could be found. + Whether the type name could be found. + + + + Tries to resolve the name of a navigation property's target if a server model has been provided. + + The name of the server side source type. + The name of the navigation property. + The server type name if one could be found. + Whether the type name could be found. + + + + Tries to resolve the server type corresponding to the client type. + + The client type annotation. + The server type, if the server type could be resolved. + Whether or not the server type could be resolved. + + + + User hook to resolve name into a type. + + Name to resolve. + Expected type for the name. + the type as returned by the resolver. If no resolver is registered or resolver returns null, expected type is returned. + if ResolveType function returns a type not assignable to the userType + + + + Gets the reader model. + + + + + Represents a parameter associated with a service operation or a service function. + + + + Instantiates a new UriOperationParameter + The name of the uri operation parameter. + The value of the uri operation parameter. + + + + This immutable class is responsible for knowing how to correctly resolve base uri requests + + + + The baseUri provided by the user. can be null. + + + The function provided by the user to resolve the baseUri of entity sets. can be null + + + base uri with guranteed trailing slash + + + + Ctor for BaseUriResolver + + The baseUri provided by the user. + The function provider by the user to resolve the baseUri of the entity sets. + + + + Creates a UriResolver from a baseUri + + The baseUri to use in the UriResolver + The name of the paramter that the user passed the baseUri in from. + The new UriResolver using the passed in baseUri + + + + Creates a new BaseUriResolver with all the same values except a new BaseUri value + + The new BaseUri value + The name of the paramter that the user passed the baseUri in from. + A new BaseUriResolver with the BaseUri property set to the new value. + + + + Creates a new BaseUriResolver with all the same values except a new ResolveEntitySet value + + The new BaseUri value + A new BaseUriResolver with the ResolveEntitySet property set to the new value. + + + base uri with no trailing slash + the name of the entitSet whose Uri will be retrieved. + the baseUri ended with a slash for the entitySetName passed in. + + + + returns the BaseUri property followed by a slash. + + if the BaseUri property is null, an InvalidOperationException is thrown + + The BaseUri property with a slash. + + + + If necessary will create an absolute uri by combining the BaseUri and requestUri + + The uri specified by the user + An absolute Uri based on the requestUri and if nessesary the BaseUri + + + + Converts the baseUri passed in to an absolute Uri and then validates that it is + usable by the system. + + The user provided baseUri value. + The name of the paramter that the user passed the baseUri in from. + + + + Validates that the passed in BaseUri + + the baseUri that needs to be validated + True if the baseUri is valid, otherwise false + + + + Updates a relative silverlight uri to an absolute uri + + the uri passed by the client + the updated absolute uri + + + + Returns a Uri that is not slash terminated + + Will be the passed in one if it is slash termination free, or a new one + if the passed in one is slash terminated. + + The Uri to be un slash terminated + A slash termination free version of the passed in Uri. + + + + Returns a slash terminated Uri. + + Will be the passed in one if it is already slash terminated, or a new one + if the passed in one is not slash terminated. + + The Uri to be slash terminated + A slash terminated version of the passed in Uri. + + + + returns the BaseUri property followed by a slash. + + if the BaseUri property is null, an InvalidOperationException is thrown + + + Returns the error message to use if the BaseUri is not available. Using a function so we only have to + look up the resource if an error is actually thrown; + + The BaseUri property with a slash. + + + + Gets a Uri from the ResolveEntitySet property if available + + The name of the entity set to resolve to a URI + An absolute URI for the entitySet or null + + + Gets the ResolveEntitySet value. + + + + This property returns the baseUri value with no validation at all + + NOTE: this property should only be used to show the user what the BaseUri value is, all + other access should go through the GetBaseUriWithSlash() method + + the baseUri value + + + + Gets the base URI of the resolver regardless of whether or not it is null. + + + + + static utility functions for uris + + + + forward slash char array for triming uris + + + + Turn Uri instance into string representation + This is needed because Uri.ToString unescapes the string + + The uri instance + The string representation of the uri + + + new Uri(string uriString, UriKind uriKind) + value + kind + new Uri(value, kind) + + + new Uri(Uri baseUri, Uri requestUri) + baseUri + relativeUri + new Uri(baseUri, requestUri) + + + + Appends the absolute baseUri with the relativeUri to create a new absolute uri + + An absolute Uri + A relative Uri + An absolute Uri that is the combination of the base and relative Uris passed in. + + + + Component for controlling what convention set is used for generating URLs. + + + + Singleton instance of the default conventions. + + + Singleton instance of the key-as-segment conventions. + + + The key serializer to use. + + + The url convention to use. + + + + Prevents a default instance of the class from being created. + + The url convention to use. + + + + Appends the key expression for the given entity to the given + + The entity to build the key expression from. + The builder to append onto. + + + + Appends the key expression for the given entity to the given + + The type of the properties. + The properties of the key. + Delegate to get the name of a property. + Delegate to get the value of a property. + The builder to append onto. + + + + Adds the required headers for the url convention. + + The request headers to add to. + + + + Gets the raw CLR value for the given . + + The property to get the value for. + The type which declared the property. + The raw CLR value of the property. + + + + An instance of which uses default URL conventions. Specifically, this instance will produce keys that use parentheses like "Customers('ALFKI')". + + + + + An instance of which uses key-as-segment URL conventions. Specifically, this instance will produce keys that use segments like "Customers/ALFKI". + + + + + static utility function + + + + + String Suffix on outgoing version numbers + + + + Tool name for the GeneratedCode attribute used by Astoria CodeGen + + + Method name for the LoadProperty method. + + + Method name for the Execute method. + + + Method name for the Async Execute method overload which expects void result. + + + Method name for the SaveChanges method. + + + + Empty Data Service Version - represents a blank DSV header + + + + + Data Service Version 1 + + + + + Data Service Version 2 + + + + + Data Service Version 3 + + + + + Data service versions supported on the client + + + + + static char[] for indenting whitespace when tracing xml + + + + + Converts the DataServiceProtocolVersion to a Version instance. + + The max protocol version value. + The same version expressed as Version instance. + + + + DebugInjectFault is a test hook to inject faults in specific locations. The string is the ID for the location + + The injector state parameter + + + + Checks the argument value for null and throw ArgumentNullException if it is null + + type of the argument to prevent accidental boxing of value types + argument whose value needs to be checked + name of the argument + if value is null + value + + + + Checks the string value is not empty + + value to check + parameterName of public function + if value is null + if value is empty + + + + Checks the string value is not empty, but allows it to be null + + value to check + parameterName of public function + if value is empty + + + + Checks the array value is not empty + + type of the argument to prevent accidental boxing of value types + value to check + parameterName of public function + if value is null + if value is empty or contains null elements + + + + Validate MergeOption + + option to validate + name of the parameter being validated + if option is not valid + option + + + + Validate MaxProtocolVersion + + version to validate + name of the parameter being validated + if version is not valid + version + + + + Validate HttpStack + + option to validate + name of the parameter being validated + if option is not valid + option + + + + get char[] for indenting whitespace when tracing xml + + how many characters to trace + char[] + + + dispose of the object and set the reference to null + type that implements IDisposable + object to dispose + + + dispose of the object + type that implements IDisposable + object to dispose + + + + Checks whether the exception type is one of the DataService*Exception + + exception to test + true if the exception type is one of the DataService*Exception + + + validate value is non-null + type of value + value + error code to throw if null + the non-null value + + + + check the atom:null="true" attribute + + XmlReader + true of null is true + + + Set the continuation for the following results for a collection. + The collection to set the links to + The continuation for the collection. + + + + Determines if the current type is nullable or not + + The type parameter. + true if its nullable false otherwise + + + + Similar to Activator.CreateInstance, but uses LCG to avoid + more stringent Reflection security constraints.in Silverlight + + Type to create. + Arguments. + The newly instantiated object. + + + + Similar to ConstructorInfo.Invoke, but uses LCG to avoid + more stringent Reflection security constraints in Silverlight + + Constructor to invoke. + Arguments. + The newly instantiated object. + + + + checks whether the given flag is set on the options + + options as specified by the user. + whether the given flag is set on the options + true if the given flag is set, otherwise false. + + + + checks whether any batch flag is set on the options + + options as specified by the user. + true if the given flag is set, otherwise false. + + + + checks whether the batch flag is set on the options for the single changeset + + options as specified by the user. + true if the given flag is set, otherwise false. + + + + checks whether the batch flag with independent Operation per change set is set + + options as specified by the user. + true if the given flag is set, otherwise false. + + + modified or unchanged + state to test + true if modified or unchanged + + + + trace Element node + + XmlReader + TextWriter + + + + trace EndElement node + + XmlReader + TextWriter + indent or not + + + + trace string value + + TextWriter + value + + + + Converts the given IEnumerable into IEnumerable + + Type parameter. + IEnumerable which contains the list of the objects that needs to be converted. + Delegate to use to convert the value. + An instance of IEnumerable which contains the converted values. + + + Given a enumeration returns the instance with the same version number. + The protocol version enum value to convert. + The version instance with the version number for the specified protocol version. + + + + A workaround to a problem with FxCop which does not recognize the CheckArgumentNotNull method + as the one which validates the argument is not null. + + This has been suggested as a workaround in msdn forums by the VS team. Note that even though this is production code + the attribute has no effect on anything else. + + + + The represents the runtime context of the data service. + + + + + string constant for the 'serviceRoot' parameter to UriResolver + + + + Same version as but stored as instance of for easy comparisons. + + + The client model for the current context instance. + + + The tracker for user-specified format information. + + + The maximum protocol version the client should support (send and receive). + + + + Class which tracks all the entities and links for the given context + + + + + The response preference for add and update operations + + + + The resolver for baseUris + + + Authentication interface for retrieving credentials for Web client authentication. + + + Override the namespace used for the data parts of the ATOM entries + + + resolve type from a typename + + + resolve typename from a type + + + time-out value in seconds, 0 for default + + + whether to use post-tunneling for PUT/DELETE + + + Options when deserializing properties to the target type. + + + Used to specify a value synchronization strategy. + + + Default options to be used while doing savechanges. + + + Override the namespace used for the scheme in the category for ATOM entries. + + + Client will ignore 404 resource not found exception and return an empty set when this is set to true + + + The URL conventions to use. + + + The HTTP stack to use for requests. + + + + Test hook which gets called after the HttpWebRequest has been created and all headers have been set. + + + + + Test hook which gets called after we call HttpWebRequest.GetRequestStream, so that the test code can wrap the stream and see what gets written to it. + + + + + Test hook which gets called after the HttpWebResponse is received. + + + + + Test hook which gets called after we call HttpWebRequest.GetResponseStream, so that the test code can wrap the stream and see what gets read from it. + + + + + A flag indicating if the data service context is applying changes + + + + Initializes a new instance of the class. + It is expected that the BaseUri or ResolveEntitySet properties will be set before using the newly created context. + + + Initializes a new instance of the class with the specified . + An absolute URI that identifies the root of a data service. + When the is null. + If the is not an absolute URI -or-If the is a well formed URI without a query or query fragment. + + The library expects the Uri to point to the root of a data service, + but does not issue a request to validate it does indeed identify the root of a service. + If the Uri does not identify the root of the service, the behavior of the client library is undefined. + A Uri provided with a trailing slash is equivalent to one without such a trailing character. + With Silverlight, the can be a relative Uri + that will be combined with System.Windows.Browser.HtmlPage.Document.DocumentUri. + + + + Initializes a new instance of the class with the specified and targeting the specific . + An absolute URI that identifies the root of a data service. + A value that is the maximum protocol version that the client understands. + + The library expects the Uri to point to the root of a data service, + but does not issue a request to validate it does indeed identify the root of a service. + If the Uri does not identify the root of the service, the behavior of the client library is undefined. + A Uri provided with a trailing slash is equivalent to one without such a trailing character. + With Silverlight, the can be a relative Uri + that will be combined with System.Windows.Browser.HtmlPage.Document.DocumentUri. + + + + + Instantiates a new context with the specified Uri. + The library expects the Uri to point to the root of a data service, + but does not issue a request to validate it does indeed identify the root of a service. + If the Uri does not identify the root of the service, the behavior of the client library is undefined. + + + An absolute, well formed http or https URI without a query or fragment which identifies the root of a data service. + A Uri provided with a trailing slash is equivalent to one without such a trailing character + + max protocol version that the client understands. + The client edm model to use. Provided for testability. + If the is not a valid value. + + With Silverlight, the can be a relative Uri + that will be combined with System.Windows.Browser.HtmlPage.Document.DocumentUri. + + + + Gets the for the supplied entity object. + The instance for the , or null if an does not exist for the object. + The object for which to return the entity descriptor. + + + Gets the for a specific link that defines the relationship between two entities. + The instance for the specified relationship, or null if a does not exist for the relationship. + Source object in the link + The name of the navigation property on the object that returns the related object. + The related entity. + + + Attempts to cancel the operation that is associated with the supplied object. + The object from the operation being canceled. + DataServiceContext is not safe to use until asyncResult.IsCompleted is true. + + + Creates a data service query for data of a specified generic type. + A new instance that represents a data service query. + A string that resolves to a URI. + The type returned by the query + create a query based on (BaseUri + relativeUri) + + + Gets a URI of the location of .edmx metadata. + A URI that identifies the location of the metadata description, in .edmx format, for the data service identified by the base URI that is passed to the constructor. + + + Asynchronously loads the value of the specified property from the data service. + An IAsyncResult that represents the status of the asynchronous operation. + The entity that contains the property to load. + The name of the property on the specified entity to load. + The delegate called when a response to the request is received. + The user-defined state object that is used to pass context data to the callback method. + actually doesn't modify the property until EndLoadProperty is called. + + + Asynchronously loads a page of related entities from the data service by using the supplied next link URI. + An object that is used to track the status of the asynchronous operation. + The entity that contains the property to load. + The name of the property of the specified entity to load. + The URI used to load the next results page. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + + + Asynchronously loads the next page of related entities from the data service by using the supplied query continuation object. + An that represents the status of the operation. + The entity that contains the property to load. + The name of the property of the specified entity to load. + A object that represents the next page of related entity data to return from the data service. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + + + Called to complete the operation. + The response to the load operation. + An that represents the status of the asynchronous operation. + + + Loads deferred content for a specified property from the data service.Not supported by the WCF Data Services 5.0 client for Silverlight. + The response to the load operation. + The entity that contains the property to load. + The name of the property of the specified entity to load. + + If is in in detached or added state, this method will throw an InvalidOperationException + since there is nothing it can load from the server. + + If is in unchanged or modified state, this method will load its collection or + reference elements as unchanged with unchanged bindings. + + If is in deleted state, this method will load the entities linked to by its collection or + reference property in the unchanged state with bindings in the deleted state. + + + + Loads a page of related entities by using the supplied next link URI.Not supported by the WCF Data Services 5.0 client for Silverlight. + An instance of that contains the results of the request. + The entity that contains the property to load. + The name of the property of the specified entity to load. + The URI that is used to load the next results page. + When is in a or state. + + If is in in detached or added state, this method will throw an InvalidOperationException + since there is nothing it can load from the server. + + If is in unchanged or modified state, this method will load its collection or + reference elements as unchanged with unchanged bindings. + + If is in deleted state, this method will load the entities linked to by its collection or + reference property in the unchanged state with bindings in the deleted state. + + + + Loads the next page of related entities from the data service by using the supplied query continuation object.Not supported by the WCF Data Services 5.0 client for Silverlight. + The response that contains the next page of related entity data. + The entity that contains the property to load. + The name of the property of the specified entity to load. + A object that represents the next page of related entities to load from the data service. + When is in the or state. + + If is in in detached or added state, this method will throw an InvalidOperationException + since there is nothing it can load from the server. + + If is in unchanged or modified state, this method will load its collection or + reference elements as unchanged with unchanged bindings. + + If is in deleted state, this method will load the entities linked to by its collection or + reference property in the unchanged state with bindings in the deleted state. + + + + Loads the next page of related entities from the data service by using the supplied generic query continuation object.Not supported by the WCF Data Services 5.0 client for Silverlight. + The response that contains the next page of related entity data. + The entity that contains the property to load. + The name of the property of the specified entity to load. + A object that represents the next page of related entities to load from the data service. + Element type of collection to load. + When is in the or state. + + If is in in detached or added state, this method will throw an InvalidOperationException + since there is nothing it can load from the server. + + If is in unchanged or modified state, this method will load its collection or + reference elements as unchanged with unchanged bindings. + + If is in deleted state, this method will load the entities linked to by its collection or + reference property in the unchanged state with bindings in the deleted state. + + + + Gets the URI that is used to return a binary data stream. + The read URI of the binary data stream. + The entity that has a related binary stream to retrieve. + If the entity specified is null. + The is not tracked by this . + If the specified entity is a Media Link Entry, this method will return an URI which can be used to access the content of the Media Resource. This URI should only be used to GET/Read the content of the MR. It may not respond to POST/PUT/DELETE requests. + + + Gets the URI that is used to return a named binary data stream. + The read URI of the binary data stream. + The entity that has the named binary data stream to retrieve. + The name of the stream to request. + If the specified entity has a stream with the given name, this method will return an URI which can be used to access the content of the stream. This URI should only be used to GET/Read the content of the stream. It may not respond to POST/PUT/DELETE requests. + If the entity specified is null. + If the name parameter is empty or the entity specified is not being tracked. + + + Asynchronously gets the binary data stream that belongs to the specified entity, by using the specified message headers. + An object that is used to track the status of the asynchronous operation. + The entity that has a the binary data stream to retrieve. + Instance of the class that contains settings for the HTTP request message. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + Any of the parameters supplied to the method is null. + The is not tracked by this .-or-The is in the state.-or-The is not a Media Link Entry and does not have a related binary data stream. + + + Asynchronously gets a named binary data stream that belongs to the specified entity, by using the specified message headers. + An object that is used to track the status of the asynchronous operation. + The entity that has the binary data stream to retrieve. + The name of the binary stream to request. + Instance of the class that contains settings for the HTTP request message. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + + + Called to complete the asynchronous operation of retrieving a binary data stream. + An instance of which contains the response stream along with its metadata. + The result from the operation that contains the binary data stream. + The method will block if the request have not finished yet. + + + Gets the binary data stream that belongs to the specified entity. + An instance of that represents the response. + The entity that has the binary stream to retrieve. + The is null. + The is not tracked by this .-or-The is in the state.-or-The is not a Media Link Entry and does not have a related binary stream. + + + Gets the binary data stream that belongs to the specified entity, by using the specified Content-Type message header. + An instance of that represents the response. + The entity that has the binary data stream to retrieve. + The Content-Type of the binary data stream requested from the data service, specified in the Accept header. + + is null.-or- is null. + The is not tracked by this .-or-The is in the state.-or-The is not a Media Link Entry and does not have a related stream. + + + Gets binary data stream for the specified entity by using the specified message headers. + An instance of that represents the response. + The entity that has the binary stream to retrieve. + Instance of class that contains settings for the HTTP request message. + + is null.-or- is null. + The is not tracked by this .-or-The is in the state.-or-The is not a Media Link Entry and does not have a related binary stream. + + + Gets a named binary data stream that belongs to the specified entity, by using the specified Content-Type message header. + An instance of that represents the response. + The entity that has the binary data stream to retrieve. + The name of the binary stream to request. + Instance of class that contains settings for the HTTP request message. + Either entity or args parameters are null. + The specified entity is either not tracked, is in the added state. + + + Sets a binary data stream that belongs to the specified entity, with the specified Content-Type and Slug headers in the request message. + The entity to which the data stream belongs. + The from which to read the binary data. + A value that determines whether the data stream is closed when the method is completed. + The Content-Type header value for the request message. + The Slug header value for the request message. + Any of the parameters supplied to the method are null. + The is not being tracked by this instance. -or-The entity has the applied. + Calling this method marks the entity as media link resource (MLE). It also marks the entity as modified + so that it will participate in the next call to SaveChanges. + + + Sets a binary data stream for the specified entity, with the specified headers in the request message. + The entity to which the binary stream belongs. + The from which to read the binary data. + A value that determines whether the data stream is closed when the method is completed. + An instance of the class that contains settings for the HTTP request message. + Any of the parameters supplied to the method are null. + The is not being tracked by this instance. -or-The has the applied. + Calling this method marks the entity as media link resource (MLE). It also marks the entity as modified + so that it will participate in the next call to SaveChanges. + + + Sets a binary data stream for the specified entity. + The entity to which the binary stream belongs. + The name of the binary stream to save. + The from which to read the binary data. + A value that determines whether the data stream is closed when the method is completed. + The Content-Type header value for the request message. + The entity is not being tracked or name is an empty string. + Any of the arguments is null. + + + Sets a named binary data stream that belongs to the specified entity, with the specified headers in the request message. + The entity to which the binary stream belongs. + The name of the binary stream to save. + The from which to read the binary data. + A value that determines whether the data stream is closed when the method is completed. + An instance of the class that contains settings for the HTTP request message. + Calling this method marks the entity as media link resource (MLE). It also marks the entity as modified + so that it will participate in the next call to SaveChanges. + The entity is not being tracked. The entity has the MediaEntry attribute + marking it to use the older way of handling MRs. + Any of the arguments is null. + + + Asynchronously submits a group of queries as a batch to the data service. + An object that is used to track the status of the asynchronous operation. + The delegate that is called when a response to the batch request is received. + User-defined state object that is used to pass context data to the callback method. + The array of query requests to include in the batch request. + + + Called to complete the . + The DataServiceResult object that indicates the result of the batch operation. + An that represents the status of the asynchronous operation. + + + Synchronously submits a group of queries as a batch to the data service.Not supported by the WCF Data Services 5.0 client for Silverlight. + The response to the batch operation. + Array of objects that make up the queries. + + + Asynchronously sends the request so that this call does not block processing while waiting for the results from the service. + An object that is used to track the status of the asynchronous operation. + The URI to which the query request will be sent. The URI may be any valid data service URI; it can contain $ query parameters. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + The type returned by the query. + + + Asynchronously sends a request to the data service to execute a specific URI. + The result of the operation. + The URI to which the query request will be sent. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + The HTTP data transfer method used by the client. + The operation parameters used. + + This overload expects the to end with a ServiceOperation + or ServiceAction that returns void. + + + + Asynchronously sends a request to the data service to execute a specific URI. + The result of the operation. + The URI to which the query request will be sent. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + The HTTP data transfer method used by the client. + Attribute used on service operations to specify that they return a single instance of their return element. + The operation parameters used. + The type returned by the query. + + + Asynchronously sends a request to the data service to retrieve the next page of data in a paged query result. + An that represents the status of the operation. + A object that represents the next page of data to return from the data service. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + The type returned by the query. + + + Called to complete the . + The results returned by the query operation. + + object. + The type returned by the query. + When is null. + When did not originate from this instance. -or- When the method was previously called. + When an error is raised either during execution of the request or when it converts the contents of the response message into objects. + When the data service returns an HTTP 404: Resource Not Found error. + + + Called to complete the . + The result of the operation. + An that represents the status of the asynchronous operation. + This method should be used in combination with the BeginExecute overload which + expects the request uri to end with a service operation or service action that returns void. + + + Sends a request to the data service to execute a specific URI.Not supported by the WCF Data Services 5.0 client for Silverlight. + The results of the query operation. + The URI to which the query request will be sent. The URI may be any valid data service URI. Can contain $ query parameters. + The type that the query returns. + When a response is not received from a request to the . + When is null. + When is not a valid URI for the data service. + When an error is raised either during execution of the request or when it converts the contents of the response message into objects. + When the data service returns an HTTP 404: Resource Not Found error. + + + Sends a request to the data service to retrieve the next page of data in a paged query result.Not supported by the WCF Data Services 5.0 client for Silverlight. + The response that contains the next page of data in the query result. + A object that represents the next page of data to return from the data service. + The type returned by the query. + + + Sends a request to the data service to execute a specific URI by using a specific HTTP method.Not supported by the WCF Data Services 5.0 client for Silverlight. + The response of the operation. + The URI to which the query request will be sent. The URI may be any valid data service URI. Can contain $ query parameters. + The HTTP data transfer method used by the client. + The operation parameters used. + + This overload expects the to end with a ServiceOperation + or ServiceAction that returns void. + + null requestUri + The is not GET nor POST. + problem materializing results of query into objects + failure to get response for requestUri + + + Sends a request to the data service to execute a specific URI by using a specific HTTP method.Not supported by the WCF Data Services 5.0 client for Silverlight. + Returns . + The URI to which the query request will be sent. The URI may be any valid data service URI. Can contain $ query parameters. + The HTTP data transfer method used by the client. + Attribute used on service operations to specify that they return a single instance of their return element. + The operation parameters used. + The type returned by the query. + null requestUri + The is not GET nor POST. + problem materializing results of query into objects + failure to get response for requestUri + + + Asynchronously submits the pending changes to the data service collected by the since the last time changes were saved. + An IAsyncResult that represents the status of the asynchronous operation. + The delegate to call when the operation is completed. + The user-defined state object that is used to pass context data to the callback method. + + + Asynchronously submits the pending changes to the data service collected by the since the last time changes were saved. + An that represents the status of the asynchronous operation. + The options for how the client can save the pending set of changes. + The delegate to call when the operation is completed. + The user-defined state object that is used to pass context data to the callback method. + + BeginSaveChanges will asynchronously attach identity Uri returned by server to sucessfully added entites. + EndSaveChanges will apply updated values to entities, raise ReadingEntity events and change entity states. + + + + Called to complete the operation. + A object that indicates the result of the batch operation. + An that represents the status of the asynchronous operation. + + + Saves the changes that the is tracking to storage.Not supported by the WCF Data Services 5.0 client for Silverlight. + A that contains status, headers, and errors that result from the call to . + + + Saves the changes that the is tracking to storage.Not supported by the WCF Data Services 5.0 client for Silverlight. + A that contains status, headers, and errors that result from the call to . + A member of the enumeration that specifies the materialization option. + + + Adds the specified link to the set of objects the is tracking. + The source object for the new link. + The name of the navigation property on the source object that returns the related object. + The object related to the source object by the new link. + When , , or are null. + If a link already exists.-or-If either the or objects are in a or state.-or-If is not a collection. + + Notifies the context that a new link exists between the and objects + and that the link is represented via the source. which is a collection. + The context adds this link to the set of newly created links to be sent to + the data service on the next call to SaveChanges(). + Links are one way relationships. If a back pointer exists (ie. two way association), + this method should be called a second time to notify the context object of the second link. + + + + Notifies the to start tracking the specified link that defines a relationship between entity objects. + The source object in the new link. + The name of the property on the source object that represents the link between the source and target object. + The target object in the link that is bound to the source object specified in this call. The target object must be of the type identified by the source property or a subtype. + When , , or is null. + When the link between the two entities already exists.-or-When or is in an or state. + + + Removes the specified link from the list of links being tracked by the . + Returns true if the specified entity was detached; otherwise false. + The source object participating in the link to be marked for deletion. + The name of the property on the source object that represents the source in the link between the source and the target. + The target object involved in the link that is bound to the source object. The target object must be of the type identified by the source property or a subtype. + When or are null. + When is an empty string. + Any link being tracked by the context, regardless of its current state, can be detached. + + + Changes the state of the link to deleted in the list of links being tracked by the . + The source object in the link to be marked for deletion. + The name of the navigation property on the source object that is used to access the target object. + The target object involved in the link that is bound to the source object. The target object must be of the type identified by the source property or a subtype. + When , , or is null. + When or is in a or state.-or-When is not a collection. + + Notifies the context that a link exists between the and object + and that the link is represented via the source. which is a collection. + The context adds this link to the set of deleted links to be sent to + the data service on the next call to SaveChanges(). + If the specified link exists in the "Added" state, then the link is detached (see DetachLink method) instead. + + + + Notifies the that a new link exists between the objects specified and that the link is represented by the property specified by the parameter. + The source object for the new link. + The property on the source object that identifies the target object of the new link. + The child object involved in the new link that is to be initialized by calling this method. The target object must be a subtype of the type identified by the parameter. If is set to null, the call represents a delete link operation. + When , or are null. + When the specified link already exists.-or-When the objects supplied as or are in the or state.-or-When is not a navigation property that defines a reference to a single related object. + + Notifies the context that a modified link exists between the and objects + and that the link is represented via the source. which is a reference. + The context adds this link to the set of modified created links to be sent to + the data service on the next call to SaveChanges(). + Links are one way relationships. If a back pointer exists (ie. two way association), + this method should be called a second time to notify the context object of the second link. + + + + Adds the specified object to the set of objects that the is tracking. + The name of the entity set to which the resource will be added. + The object to be tracked by the . + When or is null. + When is empty.-or-When does not have a key property defined. + When the entity is already being tracked by the context. + + It does not follow the object graph and add related objects. + Any leading or trailing forward slashes will automatically be trimmed from entitySetName. + + + + Adds a related object to the context and creates the link that defines the relationship between the two objects in a single request. + The parent object that is being tracked by the context. + The name of the navigation property that returns the related object based on an association between the two entities. + The related object that is being added. + + + Notifies the to start tracking the specified resource and supplies the location of the resource within the specified resource set. + The name of the set that contains the resource. + The resource to be tracked by the . The resource is attached in the Unchanged state. + When or is null. + When is an empty string.-or-When the does not have a key property defined. + When the is already being tracked by the context. + It does not follow the object graph and attach related objects. + + + Notifies the to start tracking the specified resource and supplies the location of the resource in the specified resource set. + The string value that contains the name of the entity set to which to the entity is attached. + The entity to add. + An etag value that represents the state of the entity the last time it was retrieved from the data service. This value is treated as an opaque string; no validation is performed on it by the client library. + When is null.-or-When is null. + When is an empty string.-or-When the supplied object does not have a key property. + When the supplied object is already being tracked by the context + It does not follow the object graph and attach related objects. + + + Changes the state of the specified object to be deleted in the . + The tracked entity to be changed to the deleted state. + When is null. + When the object is not being tracked by the . + + Existings objects in the Added state become detached. + + + + Removes the entity from the list of entities that the is tracking. + Returns true if the specified entity was detached; otherwise false. + The tracked entity to be detached from the . + When is null. + + + Changes the state of the specified object in the to . + The tracked entity to be assigned to the state. + When is null. + When is in the state. + + + + Changes the state of the given entity. + Note that the 'Added' state is not supported by this method, and that AddObject or AddRelatedObject should be used instead. + If the state 'Modified' is given, calling this method is exactly equivalent to calling UpdateObject. + If the state 'Deleted' is given, calling this method is exactly equivalent to calling DeleteObject. + If the state 'Detached' is given, calling this method is exactly equivalent to calling Detach. + If the state 'Unchanged' is given, the state will be changed, but no other modifications will be made to the entity or entity descriptor associated with it. + + The entity whose state to change. + The new state of the entity. + + + Test retrieval of an entity being tracked by the by reference to the URI of the entity. + If an entity is found at , the entity is returned in the out parameter and true is returned. If no entity is found, false is returned. + The URI of the tracked entity to be retrieved. + The entity to be retrieved. + The type of the entity. + When is null. + entities in added state are not likely to have a identity + + + Retrieves the canonical URI associated with the specified entity, if available. + Returns true if the canonical URI is returned in the out parameter. If the specified entity is not tracked by the or is in the added state, no URI is available and false is returned. + The entity identified by the . + The URI of the entity. + When is null. + Entities in added state are not likely to have an identity. Though the identity might use a dereferencable scheme, you MUST NOT assume it can be dereferenced. + + + + Execute the using . + + Element type of the result. + Request URI to execute. + HttpMethod to use. Only GET or POST are supported. + If set to true, indicates that a single result is expected as a response. + False indicates that a collection of TElement is assumed. Should be null for void, entry, and feed cases. + This function will check if TElement is an entity type and set singleResult to null in this case. + The operation parameters associated with the service operation. + A QueryOperationResponse that is enumerable over the results and holds other response information. + null requestUri + The is not GET nor POST. + problem materializing results of query into objects + failure to get response for requestUri + + + Begins the execution of the request uri based on the http method. + element type of the result + request to execute + User callback when results from execution are available. + user state in IAsyncResult + HttpMethod to use. Only GET and POST are supported. + async method name at the source. + If set to true, indicates that a single result is expected as a response. + The operation parameters associated with the service operation. + async result object + + + + Track a binding. + + Source resource. + Property on the source resource that relates to the target resource. + Target resource. + merge operation + + + + Creates the OData request message to write the headers and payload into. + + The arguments for creating the message. + List of header names that needs to be reset after calling SendingRequest event. + Descriptor to expose in SendingRequest2 + An instance of IODataRequestMessage with the given headers and version. + + + + user hook to resolve name into a type + + name to resolve + Null if no type resolver is registered, otherwise returns whatever is returned by the type resolver. + + + + The reverse of ResolveType, use for complex types and LINQ query expression building + + client type + type for the server + + + + Fires the WritingEntity event + + Entity being serialized + XML data of the ATOM entry + The xml base of the feed or entry containing the current ATOM entry + + + + Fires the SendingRequest event. + + SendingRequestEventArgs instance containing all information about the request. + + + + Fires the SendingRequest2 event. + + SendingRequest2EventArgs instance containing all information about the request. + + + + Fires the ReceivingResponse event. + + Args instance containing information about the response. + + + + This method wraps the HttpWebRequest.GetSyncronousResponse method call. The reasons for doing this are to give us a place + to invoke internal test hook callbacks that can validate the response headers, and also so that we can do + debug validation to make sure that the headers have not changed since they were originally configured on the request. + + HttpWebRequest instance + If set to true, this method will only re-throw the WebException that was caught if + the response in the exception is null. If set to false, this method will always re-throw in case of a WebException. + + Returns the HttpWebResponse from the wrapped GetSyncronousResponse method. + + + + + This method wraps the HttpWebRequest.EndGetResponse method call. The reason for doing this is to give us a place + to invoke internal test hook callbacks that can validate the response headers. + + HttpWebRequest instance + Async result obtained from previous call to BeginGetResponse. + Returns the HttpWebResponse from the wrapped EndGetResponse method. + + + + Invokes the sendRequest test hook callback with a reference to the HttpWebRequest + + HttpWebRequest to provide in the callback. + + + + Invokes the getRequestWrappingStream test hook callback, so that the test code can wrap the stream and see what gets written to it. + + Underlying HTTP stream to be wrapped + + If the test hook is being used, returns the stream provided by the callback, otherwise returns the original stream. + + + + + Invokes the sendResponse test hook callback with a reference to the HttpWebResponse + + HttpWebResponse to provide in the callback. + + + + Invokes the getResponseWrappingStream test hook callback, so that the test code can wrap the stream and see what gets read from it. + + Underlying HTTP stream to be wrapped + + If the test hook is being used, returns the stream provided by the callback, otherwise returns the original stream. + + + + + Gets an entity metadata builder to evaluate metadata which is not present in payloads, or for which the payload is not available. + + Name of the entity set to which the entity belongs. + The entity to build metadata for. + + A metadata builder for the entity tracked by the given entity instance. + + + This is used for example to determine the edit link for an entity if the payload didn't have one, or to determine the URL for a navigation when building a query through LINQ. + + + + + Fires the BuildingRequest event to get a new RequestMessageArgs object. + + Http method for the request. + Base Uri for the request. + Http stack to use for the request. + Http stack to use for the request. + Descriptor for the request, if there is one. + A new RequestMessageArgs object for building the request message. + + + + Determines the type that + + Name of the type to resolve. + Namespace of the type. + Namespace of the type, can be different in VB than the fullNamespace. + Type that the name resolved to or null if none found. + Function was added for Portable Lib support to handle the differences in accessing the assembly of the context. + + + validate and trim leading and trailing forward slashes + + resource name to validate + if entitySetName was null + if entitySetName was empty or contained only forward slash + + + validate is entity type + entity to validate + The client model. + if entity was null + if entity does not have a key property + + + + Validates a given list of operation parameter and returns two seperated list of body operation parameter + and uri operation parameter respectively. + + the http method used in the request. Only POST and GET http methods are supported with operation parameters. + The list of operation parameters to be validated. + The list of body operation parameters to be returned. + The list of uri operation parameters to be returned. + + + + Verify that the format is set to Atom, and fail otherwise. + + + + + Fires the BuildingRequest event so the user can add custom query parameters. + + Information about the request so they user can selectively add query parameters. + A new RequestMessageArgs object that contains any changes the user made to the query string. + + + + Validate the SaveChanges Option + + options as specified by the user. + + + + Validate and process the input parameters to all the execute methods. Also seperates and returns + the input operation parameters list into two seperate list - one of body operation parameters and the other + for uri operation parameters. + + element type. See Execute method for more details. + request to execute + HttpMethod to use. Only GET and POST are supported. + If set to true, indicates that a single result is expected as a response. + The list of body operation parameters to be returned. + The list of uri operation parameters to be returned. + The operation parameters associated with the service operation. + + + + create the load property request + + entity + name of collection or reference property to load + The AsyncCallback delegate. + user state + The request uri, or null if one is to be constructed + Continuation, if one is available. + a aync result that you can get a response from + + + + verify the source and target are relatable + + source Resource + source Property + target Resource + destination state of relationship to evaluate for + true if DeletedState and one of the ends is in the added state + if source or target are null + if source or target are not contained + if source property is null + if source property empty + Can only relate ends with keys. + If target doesn't match property type. + If adding relationship where one of the ends is in the deleted state. + If attaching relationship where one of the ends is in the added or deleted state. + + + + This method creates an async result object around a request to get the read stream for a Media Resource + associated with the Media Link Entry represented by the entity object. + + The entity which is the Media Link Entry for the requested Media Resource. Thist must specify + a tracked entity in a non-added state. + Instance of class with additional metadata for the request. + Must not be null. + User defined callback to be called when results are available. Can be null. + User state in IAsyncResult. Can be null. + name of the stream. + The async result object for the request, the request hasn't been started yet. + Either entity or args parameters are null. + The specified entity is either not tracked, + is in the added state or it's not an MLE. + + + + Ensures that the required data service protocol version is lesser than the maxprotocolversion on this instance. + + throws an invalidoperationexception if the max protocolversion is lesser than the required protocol version + + + + Ensures that the maxprotocolversion on this instance is lesser than + + The property being modified. + The max allowed dataserviceversion for modifying this property. + throws a NotSupportedException if the max protocolversion is greater than + + + + Helper method for calling the overridable GetEntityMetadataBuilder API and performing common logic/verification. + + The entity descriptor tracking the entity. + A metadata builder for the entity tracked by the given descriptor. + + + + This method wraps the HttpWebRequest.GetSyncronousResponse method call. It fires the ReceivingResponse event. + It also gives us a place to invoke internal test hook callbacks that can validate the response headers, and also so that we can do + debug validation to make sure that the headers have not changed since they were originally configured on the request. + + HttpWebRequest instance + IAsyncResult for EndGetResponse if this is an async call. + If set to true, this method will only re-throw the WebException that was caught if + the response in the exception is null. If set to false, this method will always re-throw in case of a WebException. + Returns the HttpWebResponse from the wrapped GetSyncronousResponse method. + + + + Mark an existing object for update in the context. + + entity to be mark for update + If true, then an exception should be thrown if the entity is in neither the unchanged nor modified states. + if entity is null + if entity is detached + if entity is not unchanged or modified and is true. + + + + Mark an existing object being tracked by the context for deletion. + + entity to be mark deleted + If true, then an exception will be thrown if the entity is in the added state. + if entity is null + if entity is not being tracked by the context, or if the entity is in the added state and is true. + + Existings objects in the Added state become detached if is false. + + + + + Sets the entity's state to unchanged. + + The entity to set back to unchanged. + + + Occurs when a new has been created. + + This event is fired before a request is sent to the server, giving + the handler the opportunity to inspect, adjust and/or replace the + WebRequest object used to perform the request. + When calling BeginSaveChanges and not using SaveChangesOptions.Batch and SaveChangesOptions.BatchWithIndependentOperations, + this event may be raised from a different thread. + + + + + This event is fired before a request is sent to the server, giving + the handler the opportunity to inspect, adjust and/or replace the + WebRequest object used to perform the request. + + + When calling BeginSaveChanges and not using SaveChangesOptions.Batch and SaveChangesOptions.BatchWithIndependentOperations, + this event may be raised from a different thread. + + + + + This event is fired before a request message object is built, giving + the handler the opportunity to inspect, adjust and/or replace some + request information before the message is built. This event should be + used to modify the outgoing Url of the request or alter request headers. + After the request is built, other modifications on the WebRequest object can be made + in SendingRequest2. + + + When calling BeginSaveChanges and not using SaveChangesOptions.Batch and SaveChangesOptions.BatchWithIndependentOperations, + this event may be raised from a different thread. + + + + Occurs after entity data has been completely read into the entity object. + + This event fires once an entry has been read into a .NET object + but before the serializer returns to the caller, giving handlers + an opporunity to read further information from the incoming ATOM + entry and updating the object. + This event should only be raised from the thread that was used to + invoke Execute, EndExecute, SaveChanges, EndSaveChanges. + + + + + This event fires when a response is received by the client. + It fires for both top level responses and each operation or query within a batch response. + + + On top level requests, the event is fired before any processing is done. + For inner batch operations, the event is also fired before any processing is done, with + the exception that the content-ID of a changeset operation will be read before the event is fired. + + + + Occurs after an entity has been fully serialized into XML in a request message. + + This event fires once an ATOM entry is ready to be written to + the network for a request, giving handlers an opportunity to + customize the entry with information from the corresponding + .NET object or the environment. + When calling BeginSaveChanges and not using SaveChangesOptions.Batch and SaveChangesOptions.BatchWithIndependentOperations, + this event may be raised from a different thread. + + + + + This event fires when SaveChanges or EndSaveChanges is called + + + + + Internal event instance used by the public SendingRequest event. + + + + + Internal event instance used by the public BuildingRequest event. + + + + + Internal event instance used by the public WritingEntity event. + + + + Gets or sets the delegate method that is used to resolve the entity set URI when the value cannot be determined from an edit-link or self-link URI. + A delegate that takes a and returns a value. + + + Gets the absolute URI identifying the root of the target data service. + An absolute URI that identifies the root of a T data service. + + A Uri provided with a trailing slash is equivalent to one without such a trailing character. + Example: http://server/host/myservice.svc + + + + Gets or sets whether the client requests that the data service return entity data in the response message to a change request. + A object that determines whether to request a response form the data service. + Whether POST/PUT/MERGE requests will process response from the server. Corresponds to Prefer header in HTTP POST/PUT/MERGE request. + + + Gets the maximum version of the Open Data Protocol (OData) that the client is allowed to use. + The maximum version of OData that the client is allowed to use. + If the request or response would require higher version the client will fail. + + + Gets or sets the authentication information that is used by each query created by using the object. + The base authentication interface for retrieving credentials for Web client authentication. + + + Gets or sets the synchronization option for receiving entities from a data service. + One of the members of the enumeration. + + Used to specify a synchronization strategy when sending/receiving entities to/from a data service. + This value is read by the deserialization component of the client prior to materializing objects. + As such, it is recommended to set this property to the appropriate materialization strategy + before executing any queries/updates to the data service. + The default value is .AppendOnly. + + + + Gets a value that indicates whether the is currently applying changes to tracked objects. + Returns true when changes are currently being applied; otherwise returns false. + + + Gets or sets whether the properties read from the type must be mapped to properties on the client-side type. + A Boolean value that indicates whether the properties read from the type must be mapped to properties on the client-side type. + + This also affects responses during SaveChanges. + + + + Gets or sets the XML namespace for data items, not metadata items, of an Atom payload. + A string representing the XML namespace for data items of a payload in the ATOM format. + + + Gets or sets a function to override the default type resolution strategy used by the client library when you send entities to a data service. + Returns a string that contains the name of the . + + Enables one to override the default type resolution strategy used by the client library. + Set this property to a delegate which identifies a function that resolves + a type within the client application to a namespace-qualified type name. + This enables the client to perform custom mapping between the type name + provided in a response from the server and a type on the client. + This method enables one to override the entity name that is serialized + to the target representation (ATOM,JSON, etc) for the specified type. + + + + Gets or sets a function that is used to override the default type resolution option that is used by the client library when receiving entities from a data service. + A function delegate that identifies an override function that is used to override the default type resolution option that is used by the client library. + + Enables one to override the default type resolution strategy used by the client library. + Set this property to a delegate which identifies a function that resolves a + namespace-qualified type name to type within the client application. + This enables the client to perform custom mapping between the type name + provided in a response from the server and a type on the client. + Overriding type resolution enables inserting a custom type name to type mapping strategy. + It does not enable one to affect how a response is materialized into the identified type. + + + + Gets or sets the time-out option (in seconds) that is used for the underlying HTTP request to the data service. + An integer that indicates the time interval (in seconds) before time-out of a service request. + + A value of 0 will use the default timeout of the underlying HTTP request. + This value must be set before executing any query or update operations against + the target data service for it to have effect on the on the request. + The value may be changed between requests to a data service and the new value + will be picked up by the next data service request. + + + + Gets or sets the URI used to indicate what type scheme is used by the service. + A object that contains the type scheme. + + + Gets or sets a Boolean value that indicates whether to use post tunneling. + A Boolean value that indicates whether to use post tunneling. + + + Gets the collection of all associations or links currently being tracked by the object. + A collection of objects that represent all associations or links current being tracked by the current being tracked by the object. + If no links are being tracked, a collection with 0 elements is returned. + + + Gets a list of all the resources currently being tracked by the . + A list of objects that represent all the resources currently being tracked by the . + If no resources are being tracked, a collection with 0 elements is returned. + + + Gets or sets the values that are used by the method. + The current options for the save changes operation. + + + Gets or sets whether an exception is raised when a 404 error (resource not found) is returned by the data service. + When set to true, the client library returns an empty set instead of raising a when the data service returns an HTTP 404: Resource Not Found error. + + + + Gets the configurations. + + + + + Gets an object which allows the user to customize the format the client will use for making requests. + + + + + Gets or sets the URL conventions the client should use. + + + + + Gets or sets a System.Boolean value that controls whether default credentials are sent with requests. + + + + Gets a value that indicates the type of HTTP implementation to use when accessing the data service in Silverlight. + A value that indicates the HTTP implementation to use when accessing the data service. + Default value is HttpStack.Auto + + + Indicates if there are subscribers for the WritingEntity event + + + + True if any event handlers are registered for events that are only supported with Atom. + + + + Indicates if there are subscribers for the SendingRequest event. + We do not fire SendingRequest event if there are subscribers to SendingRequest2 event. + + + Indicates if there are subscribers for the SendingRequest2 event. + + + + INdicates if there are any subscribers for the BuildingRequestEvent. + + + + Returns the instance of entity tracker which tracks all the entities and links tracked by the context. + + + The tracker for user-specified format information. + + + Returns the instance of entity tracker which tracks all the entities and links tracked by the context. + + + + Gets the client model. + + + + + Cache for client edm models by version. + + + + A cache that maps a data service protocol version to its corresponding . + Note that it is initialized in a static ctor and must not be changed later to avoid threading issues. + + + + Static constructor used to initialize modelCache. + + + + + Get the cached model for the specified max protocol version. + + The to get the cached model for. + The cached model for the . + + + + query object + + type of object to materialize + + + Method info for the v1 Expand method. + + + Method info for the generic version of the Expand method + + + Linq Expression + + + Linq Query Provider + + + Uri, Projection, Version for translated query + + + + query object + + expression for query + query provider for query + + + Starts an asynchronous network operation that executes the query represented by this object instance. + An that represents the status of the asynchronous operation. + The delegate to invoke when the operation completes. + User defined object used to transfer state between the start of the operation and the callback defined by . + + + Ends an asynchronous query request to a data service. + Returns an that contains the results of the query operation. + The pending asynchronous query request. + When the data service returns an HTTP 404: Resource Not Found error. + + + Executes the query and returns the results as a collection that implements IEnumerable.Not supported by the WCF Data Services 5.0 client for Silverlight. + An in which TElement represents the type of the query results. + When the data service returns an HTTP 404: Resource Not Found error. + When during materialization an object is encountered in the input stream that cannot be deserialized to an instance of TElement. + + + Expands a query to include entities from a related entity set in the query response. + A new query that includes the requested $expand query option appended to the URI of the supplied query. + The expand path in the format Orders/Order_Details. + + + Expands a query to include entities from a related entity set in the query response, where the related entity is of a specific type in a type hierarchy. + Returns a that with the expand option included. + A lambda expression that indicates the navigation property that returns the entity set to include in the expanded query. + Target type of the last property on the expand path. + + + Requests that the count of all entities in the entity set be returned inline with the query results. + A new object that has the inline count option set. + + + Creates a new with the query option set in the URI generated by the returned query. + A new query that includes the requested query option appended to the URI of the supplied query + The string value that contains the name of the query string option to add. + The object that contains the value of the query string option. + + + Executes the query and returns the results as a collection. + A typed enumerator over the results in which TElement represents the type of the query results. + + + Represents the URI of the query to the data service. + A URI as string that represents the query to the data service for this instance. + + + Executes the query and returns the results as a collection. + An enumerator over the query results. + + + + gets the UriTranslateResult for a the query + + The client model. + an instance of QueryComponents. + + + Synchronous methods not available + + Returns an IEnumerable from an Internet resource. + + An IEnumerable that contains the response from the Internet resource. + + + + Begins an asynchronous request to an Internet resource. + + The AsyncCallback delegate. + The state object for this request. + An IAsyncResult that references the asynchronous request for a response. + + + + Ends an asynchronous request to an Internet resource. + + The pending request for a response. + An IEnumerable that contains the response from the Internet resource. + + + + gets the query components for the query after translating + + QueryComponents for query + + + Returns the type of the object used in the template to create the instance. + Returns representing the type used in the template when the query is created. + + + Represents an expression containing the query to the data service. + A object representing the query. + + + Represents the query provider instance. + A representing the data source provider. + + + Get the URI for the query. + The URI of the request. + + + The ProjectionPlan for the request (if precompiled in a previous page). + + + Context associated with this query. + + + + Ordered DataServiceQuery which implements IOrderedQueryable. + + + + + constructor + + expression for query + query provider for query + + + web utility functions + + + + Default buffer size used for stream copy. + + + + + Whether DataServiceCollection<> type is available. + + + + Method info for GetDefaultValue<T>. + + + copy from one stream to another + input stream + output stream + reusable buffer + count of copied bytes + + + get response object from possible WebException + exception to probe + http web respose object from exception + an instance of InvalidOperationException. + + + is this a success status code + status code + true if status is between 200-299 + + + + Checks if the provided type is a collection type (i.e. it implements ICollection and the collection item type is not an entity). + + Type being checked. + The client model. + True if the CLR type is a collection compatible type. False otherwise. + + + + Checks if the provided type name is a name of a collection type. + + Type name read from the payload. + true if is a name of a collection type otherwise false. + + + + Returns collection item type name or null if the provided type name is not a collection. + + Collection type name read from payload. + Collection item type name or null if not a collection. + + + + Resolves and creates if necessary a backing type for the . + + Type of a collection property as defined by the user - can be just an interface or generic type. + Type of items stored in the collection. + Resolved concrete type that can be instantiated and will back the collection property. Can be the type. + + + + Checks the argument value for null and throw ArgumentNullException if it is null + + type of the argument + argument whose value needs to be checked + name of the argument + returns the argument back + + + + Checks if the collection is valid. Throws if the collection is not valid. + + The type of the collection item. Can not be null. + Collection instance to be validated. + The name of the property being serialized (for exception messages). Can be null if the type is not a property. + + + + Checks if the value of a collection item is valid. Throws if it finds the value invalid. + + The value of the collection item. + This method should be called first to validate all items in a collection regardless of their type. + + + + Checks if the value of a primitive collection item is valid. Throws if it finds the value invalid. + + The value of the collection item. + The name of the collection property being serialized. Can be null. + The type of the collection item as declared by the collection. + + + + Checks if the value of a complex collection item is valid. Throws if it finds the value invalid. + + The value of the collection item. + The name of the collection property being serialized. Can be null if the type is not a property. + The type of the collection item as declared by the collection. + + + + Validates the value of the identity, the atom:id or DataServiceId + + The value to validate + + + + Validates the value of the 'Location' response header. + + the value as seen on the wire. + an absolute uri or + + + + Determines the value of the Prefer header based on the response preference settings. Also modifies the request version as necessary. + + The response preference setting for the request. + The request version so far, this might be modified (raised) if necessary due to response preference being applied. + The value of the Prefer header to apply to the request. + + + + Raises the version specified to the new minimal version (if it's lower than the current one) + + The version to be raised. + The minimal version needed. + + + + Checks if the given type is DataServiceCollection<> type. + + Type to be checked. + true if the provided type is DataServiceCollection<> or false otherwise. + + + + Creates an instance of DataServiceCollection<> class using provided types. + + Types to be used for creating DataServiceCollection<> object. + + Instance of DataServiceCollection<> class created using provided types or null if DataServiceCollection<> + type is not avaiable. + + + + + Returns the default value for the given type + + type to get the default value + returns the default value for . + + + + Returns the default value for the given type + + type to get the default value + returns the default value for . + + + + Dispose the message if it implements IDisposable. + + IODataResponseMessage to dispose. + + + + Forces loading WindowsBase assembly. If WindowsBase assembly is not present JITter will throw an exception. + This method MUST NOT be inlined otherwise we won't be able to catch the exception by JITter in the caller. + + typeof(DataServiceCollection<>) + + + + Returns true if DataServiceCollection<> type is available or false otherwise. + + + + + A workaround to a problem with FxCop which does not recognize the CheckArgumentNotNull method + as the one which validates the argument is not null. + + This has been suggested as a workaround in msdn forums by the VS team. Note that even though this is production code + the attribute has no effect on anything else. + + + + Represents an EDM property for client types and caches methods for the propertyInfo. + + + + Back reference to the EdmProperty this annotation is part of. + + + property name for debugging + + + Exact property type; possibly nullable but not necessarily so. + + + type of the property + + + what is the dictionary value type + + + what type was this property declared on? + + + + Is this a known primitive/reference type or an entity/complex/collection type? + + + + property getter + + + property setter + + + "set_Item" method supporting IDictionary properties + + + "Add" method supporting ICollection<> properties + + + "Remove" method supporting ICollection<> properties + + + "Contains" method supporting ICollection<> properties + + + "Clear" method supporting ICollection<> properties + + + ICollection<> generic type + + + cached value for IsPrimitiveOrComplexCollection property + + + cached value of IsGeographyOrGeometry property + + + The other property in this type that holds the MIME type for this one + + + + constructor + + Back reference to the EdmProperty this annotation is part of. + propertyInfo instance. + The client model. + + + + get property value from an object + + object to get the property value from + property value + + + + remove a item from the collection instance + + collection + item to remove + + + + set property value on an object + + object to set the property value on + property value + used for open type + allow add to a collection if available, else allow setting collection property + + + + Clears . + + ICollection instance that needs to be cleared. + + + + Adds value to a collection. + + ICollection Instance to add to. + Value to be added to . + + + + Gets the client model. + + + + The other property in this type that holds the MIME type for this one + + + what is the nested collection element + + + Is this property a collection of entities? + + + Type of items in the primitive or complex collection. + + + Is this property a collection of primitive or complex types? + + + Returns true if the type of property is a Geography or Geometry type, otherwise returns false. + + + Is this property a dictionary? + + + Returns true if this property is a stream link property, otherwise false. + + + + Utility methods for client types. + + + + A static empty PropertyInfo array. + + + + Sets the single instance of on the given instance of . + + The model the belongs to. + IEdmType instance to set the annotation on. + The annotation to set + + + + Gets the ClientTypeAnnotation for the given type. + + The model. + Type for which the annotation needs to be returned. + An instance of ClientTypeAnnotation containing metadata about the given type. + + + + Gets the single instance of from the given instance of . + + The model the belongs to. + IEdmType instance to get the annotation. + Returns the single instance of from the given instance of . + + + + Sets the given instance of to the given instance of . + + IEdmProperty instance to set the annotation. + Annotation instance to set. + + + + Gets the single instance of ClientPropertyAnnotation from the given instance of . + + The model. + IEdmProperty instance to get the annotation. + Returns the single instance of ClientPropertyAnnotation from the given instance of . + + + + Gets the instance of ClientTypeAnnotation from the given instance of . + + The model. + IEdmProperty instance to get the annotation. + Returns the instance of ClientTypeAnnotation from the given instance of . + + + + Returns the corresponding edm type reference for the given edm type. + + EdmType instance. + A boolean value indicating whether the clr type of this edm type is nullable + Returns the corresponding edm type reference for the given edm type. + + + + Returns the full name for the given edm type + + EdmType instance. + the full name of the edmType. + + + + Returns MethodInfo instance for a generic type retrieved by using and gets + element type for the provided . + + starting type + the generic type definition to find + the method to search for + the element type for if found + element types + + + Gets a delegate that can be invoked to add an item to a collection of the specified type. + Type of list to use. + The delegate to invoke. + + + + Gets the Add method to add items to a collection of the specified type. + + Type for the collection. + The element type in the collection if found; null otherwise. + The method to invoke to add to a collection of the specified type. + + + + get concrete type that implements the genericTypeDefinition + + starting type + the generic type definition to find + concrete type that implementats the generic type + + + + Is the type an Entity Type? + + Type to examine + The client model. + bool indicating whether or not entity type + + + + Is the type or element type (in the case of nullableOfT or IEnumOfT) a Entity Type? + + Type to examine + bool indicating whether or not entity type + + + Checks whether the specified type is a DataServiceCollection type (or inherits from one). + Type to check. + true if the type inherits from DataServiceCollection; false otherwise. + + + Whether a variable of can be assigned null. + Type to check. + true if a variable of type can be assigned null; false otherwise. + + + Returns the list of properties defined on . + Type instance in question. + True to to get the properties declared on ; false to get all properties defined on . + Returns the list of properties defined on . + + + + Returns the list of key properties defined on ; null if is complex. + + Type in question. + Returns the list of key properties defined on ; null if is complex. + + + + Returns the list of key properties defined on ; null if is complex. + + Type in question. + true if has any (declared or inherited) properties; otherwise false. + Returns the list of key properties defined on ; null if is complex. + + + Gets the type of the specified . + Member to get type of (typically PropertyInfo or FieldInfo). + The type of property or field type. + + + + Returns the KeyKind if is declared as a key in or it follows the key naming convension. + + Property in question. + DataServiceKeyAttribute instance. + Returns the KeyKind if is declared as a key in or it follows the key naming convension. + + + + Checks whether the specified is a + closed constructed type of the generic type. + + Type to check. + Generic type for checkin. + true if is a constructed type of . + The check is an immediate check; no inheritance rules are applied. + + + + Determines whether the declared on + overrides a (virtual/abstract) property of a base type. + + The declaring type of the property. + The property to check. + true if overrides a property on a base types; otherwise false. + + + + Enumeration for the kind of key + + + + If this is not a key + + + If the key property name was equal to ID + + + If the key property name was equal to TypeName+ID + + + if the key property was attributed + + + + Caches wire type names and their mapped client CLR types. + + + + cache <T> and wireName to mapped type + + + + resolve the wireName/userType pair to a CLR type + + type name sent by server + type passed by user or on propertyType from a class + mapped clr type + + + + is the type a visible subclass with correct name + + type name from server + the type from user for materialization or property type + type being tested + the previously discovered matching type + if the mapping is ambiguous + + + type + wireName combination + + + type + + + type name from server + + + equality comparer for TypeName + + + equality comparer for TypeName + left type + right type + true if x and y are equal + + + compute hashcode for TypeName + object to compute hashcode for + computed hashcode + + + + Helper methods that provide a common API surface on all platforms. + + + + + Use this instead of Type.EmptyTypes. + + + + + Use this instead of Uri.UriSchemeHttp. + + + + + Use this instead of Uri.UriSchemeHttps. + + + + + Replacement for Type.Assembly. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsValueType. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsGenericParameter. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsAbstract. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsGenericType. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsGenericTypeDefinition. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsVisible. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsInterface. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsClass. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsEnum. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.BaseType. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.ContainsGenericParameters. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Array.AsReadOnly(T[]). + + Type of items in the array. + Array to use to create the ReadOnlyCollection. + ReadOnlyCollection containing the specified array items. + + + + Converts a string to a DateTime. + + String to be converted. + See documentation for method being accessed in the body of the method. + + + + Converts a string to a DateTimeOffset. + + String to be converted. + See documentation for method being accessed in the body of the method. + + + + Adds the seconds padding as zeros to the date time string if seconds part is missing. + + String that needs seconds padding + DateTime string after adding seconds padding + + + + Converts the DateTime to a string, internal method. + + DateTime to convert to String. + Converted String. + + + + Converts a DateTime to a string. + + DateTime to be converted. + See documentation for property being accessed in the body of the method. + + + + Gets the specified type. + + Name of the type to get. + Throws if the type could not be found. + Type instance that represents the specified type name. + + + + Gets the TypeCode for the specified type. + + Type on which to call this helper method. + TypeCode representing the specified type. + + + + Gets the Unicode Category of the specified character. + + Character to get category of. + Category of the character. + + + + Replacement for usage of MemberInfo.MemberType property. + + MemberInfo on which to access this method. + True if the specified member is a property, otherwise false. + + + + Replacement for usage of Type.IsPrimitive property. + + Type on which to access this method. + True if the specified type is primitive, otherwise false. + + + + Replacement for usage of Type.IsSealed property. + + Type on which to access this method. + True if the specified type is sealed, otherwise false. + + + + Replacement for usage of MemberInfo.MemberType property. + + MemberInfo on which to access this method. + True if the specified member is a method, otherwise false. + + + + Compares two methodInfos and returns true if they represent the same method. + Need this for Windows Phone as the method Infos of the same method are not always instance equivalent. + + MemberInfo to compare. + MemberInfo to compare. + True if the specified member is a method, otherwise false. + + + + Gets public properties for the specified type. + + Type on which to call this helper method. + True if method should return only instance properties, false if it should return both instance and static properties. + Enumerable of public properties for the type. + + + + Gets public properties for the specified type. + + Type on which to call this helper method. + True if method should return only instance properties, false if it should return both instance and static properties. + True if method should return only properties that are declared on the type, false if it should return properties declared on the type as well as those inherited from any base types. + Enumerable of public properties for the type. + + + + Gets instance constructors for the specified type. + + Type on which to call this helper method. + True if method should return only public constructors, false if it should return only non-public constructors. + Enumerable of instance constructors for the specified type. + + + + Gets a instance constructor for the type that takes the specified argument types. + + Type on which to call this helper method. + True if method should search only public constructors, false if it should search only non-public constructors. + Array of argument types for the constructor. + ConstructorInfo for the constructor with the specified characteristics if found, otherwise null. + + + + Tries to the get method from the type, returns null if not found. + + The type. + The name. + The parameter types. + Returns True if found. + + + + Gets a method on the specified type. + + Type on which to call this helper method. + Name of the method on the type. + True if method should search only public methods, false if it should search only non-public methods. + True if method should search only static methods, false if it should search only instance methods. + MethodInfo for the method with the specified characteristics if found, otherwise null. + + + + Gets a method on the specified type. + + Type on which to call this helper method. + Name of the method on the type. + Argument types for the method. + True if method should search only public methods, false if it should search only non-public methods. + True if method should search only static methods, false if it should search only instance methods. + MethodInfo for the method with the specified characteristics if found, otherwise null. + + + + Gets all public static methods for a type. + + Type on which to call this helper method. + Enumerable of all public static methods for the specified type. + + + + Replacement for Type.GetNestedTypes(BindingFlags.NonPublic) + + Type on which to call this helper method. + All types nested in the current type + + + + Creates a Compiled Regex expression + + Pattern to match. + Options to use. + Regex expression to match supplied patter + Is marked as compiled option only in platforms otherwise RegexOption.None is used + + + + Sets public key string for friend assemblies. + + + + ProductPublicKey is an official MS supported public key for external releases. + + + TestPublicKey is an unsupported strong key for testing and internal use only + + + Dont know what this is + + + Used for comparison with external assemblies for silverlight like Microsoft.VisualBasic. + + + Used for comparison with external assemblies for desktop like Microsoft.VisualBasic. + + + + AutoGenerated resource class. Usage: + + string s = TextRes.GetString(TextRes.MyIdenfitier); + + + + + Strongly-typed and parameterized string resources. + + + + + A string like "The expected content type for a batch requests is "multipart/mixed;boundary=batch" not "{0}"." + + + + + A string like "The POST request expected a response with content. ID={0}" + + + + + A string like "The web response contained unexpected sections. ID={0}" + + + + + A string like "The ResolveEntitySet function must return a non-null Uri for the EntitySet '{0}', otherwise you must set the BaseUri property." + + + + + A string like "Unable to convert value '{0}' into a key string for a URI." + + + + + A string like "System.Data.Services.Client internal error {0}." + + + + + A string like "The stream named '{0}' cannot be modified because it does not have an edit-media link. Make sure that the stream name is correct and that an edit-media link for this stream is included in the entry element in the response." + + + + + A string like "The property '{0}' is not supported when MaxProtocolVersion is greater than '{1}'." + + + + + A string like "Media link object of type '{0}' is configured to use the MIME type specified in the property '{1}'. However, that property's value is null or empty." + + + + + A string like "Response version '{0}' is not supported. The only supported versions are: {1}." + + + + + A string like "The response version is {0}, but the MaxProtocolVersion of the data service context is set to {1}. Set the MaxProtocolVersion to the version required by the response, and then retry the request. If the client does not support the required protocol version, then upgrade the client." + + + + + A string like "The request requires that version {0} of the protocol be used, but the MaxProtocolVersion of the data service context is set to {1}. Set the MaxProtocolVersion to the higher version, and then retry the operation." + + + + + A string like "The entity type {0} is marked with MediaEntry attribute but no save stream was set for the entity." + + + + + A string like "Can't use SetSaveStream on entity with type {0} which has a media entry property defined." + + + + + A string like "Calling SetSaveStream on an entity with state '{0}' is not allowed." + + + + + A string like "The entity does not have a stream named '{0}'. Make sure that the name of the stream is correct." + + + + + A string like "There is no self-link or edit-media link for the stream named '{0}'. Make sure that either the self-link or edit-media link is specified for this stream." + + + + + A string like "The serialized resource has a null value in key member '{0}'. Null values are not supported in key members." + + + + + A string like "An entity in the 'Added' state cannot be changed to '{0}', it can only be changed to 'Detached'." + + + + + A string like "The content-type value '{0}' is not supported." + + + + + A string like "{0}.{1} must return a non-null open property collection." + + + + + A string like "The open object property '{0}:{1}' is not defined." + + + + + A string like "{0} has multiple definitions for OpenObjectAttribute." + + + + + A string like "The closed type {0} does not have a corresponding {1} settable property." + + + + + A string like "{0} has key properties declared on a non-simple type." + + + + + A string like "{0} has key properties declared at different levels within its type hierarchy." + + + + + A string like "Type '{0}' has a MimeTypeProperty attribute that references the MIME type property '{1}'. However, this type does not have a property '{1}'." + + + + + A string like "Type '{0}' has a MimeTypeProperty attribute that references the data property '{1}'. However, this type does not have a property '{1}'." + + + + + A string like "Type '{0}' has a MediaEntry attribute that references a property called '{1}'. However, this type does not have a property '{1}'." + + + + + A string like "The type '{0}' has no settable properties." + + + + + A string like "The open type property '{0}' returned a null instance." + + + + + A string like "Resolving type from '{0}' that inherits from '{1}' is ambiguous." + + + + + A string like "The type '{0}' is not supported by the client library." + + + + + A string like "The type '{0}' has a property '{1}' which is a collection property. Collection properties are only supported in 'V3' version of the protocol and above." + + + + + A string like "Multiple types were found with the same name '{0}'. Type names must be unique." + + + + + A string like "The type '{0}' is a collection type. Collection types are only supported in 'V3' version of the protocol and above." + + + + + A string like "An item in the collection property '{0}' is not of the correct type. All items in the collection property must be of the collection item type." + + + + + A string like "A collection of item type '{0}' has an item which is not of the correct type. All items in the collection must be of the collection item type." + + + + + A string like "The property '{0}' is of entity type and it cannot be a property of the type '{1}', which is not of entity type. Only entity types can contain navigation properties." + + + + + A string like "The current value '{1}' type is not compatible with the expected '{0}' type." + + + + + A string like "Error processing response stream. Atom payload has a feed and the property '{0}' is not a collection." + + + + + A string like "Error processing response stream. Atom payload has an entry and the property '{0}' is a collection." + + + + + A string like "Error processing response stream. Server failed with following message:\r\n{0}" + + + + + A string like "The value of the property '{0}' is null. Properties that are a collection type of primitive or complex types cannot be null." + + + + + A string like "The value of the collection of item type '{0}' is null. A collection cannot have a null value." + + + + + A string like "The entity with identity '{0}' does not have a self-link or an edit-link associated with it. Please make sure that the entity has either a self-link or an edit-link associated with it." + + + + + A string like "The PropertyName property value '{1}' of EntityPropertyMappingAttribute on type '{0}' is not valid." + + + + + A string like "The PropertyName property value '{0}' on more than one EntityPropertyMappingAttribute on resource type '{1}' is provided more than once." + + + + + A string like "The property '{0}' provided at the end of the PropertyName property of the EntityPropertyMappingAttribute on a resource type is not a primitive type." + + + + + A string like "The property '{0}' on type '{1}' is not present or is inaccessible." + + + + + A string like "The property '{0}' on the type '{1}' is of the type 'DataServiceStreamLink'. Stream properties cannot be mapped with an entity property mapping." + + + + + A string like "The property '{0}' on the type '{1}' is a spatial type. Spatial type properties cannot be mapped with an entity property mapping." + + + + + A string like "The property '{0}' on the type '{1}' is a collection. Collection properties cannot be mapped with an entity property mapping." + + + + + A string like "The TargetName property path '{0}' set in the EntityPropertyMappingAttribute is not valid." + + + + + A string like "The attribute identifier '{0}' is provided in the middle of the TargetName property of EntityPropertyMappingAttribute." + + + + + A string like "The TargetName property '{0}' on more than one EntityPropertyMappingAttribute on resource type '{1}' have the same value. Conflicting properties are '{2}' and '{3}'." + + + + + A string like "Character set '{0}' is not supported." + + + + + A string like "Value for MIME type parameter '{0}' is incorrect because it contained escape characters even though it was not quoted." + + + + + A string like "Value for MIME type parameter '{0}' is incorrect because it terminated with escape character. Escape characters must always be followed by a character in a parameter value." + + + + + A string like "Value for MIME type parameter '{0}' is incorrect because the closing quote character could not be found while the parameter value started with a quote character." + + + + + A string like "The expression type {0} is not supported." + + + + + A string like "Could not convert constant {0} expression to string." + + + + + A string like "The method '{0}' is not supported." + + + + + A string like "The unary operator '{0}' is not supported." + + + + + A string like "The binary operator '{0}' is not supported." + + + + + A string like "The constant for '{0}' is not supported." + + + + + A string like "The member access of '{0}' is not supported." + + + + + A string like "Can't cast to unsupported type '{0}'" + + + + + A string like "The expression {0} is not supported." + + + + + A string like "Error translating Linq expression to URI: {0}" + + + + + A string like "Can't add duplicate query option '{0}'." + + + + + A string like "Can't add query option '{0}' because it would conflict with the query options from the translated Linq expression." + + + + + A string like "Can't add query option '{0}' because it begins with reserved character '$'." + + + + + A string like "Referencing public field '{0}' not supported in query option expression. Use public property instead." + + + + + A string like "The {0} query option cannot be specified after the {1} query option." + + + + + A string like "Cannot initialize an instance of entity type '{0}' because '{1}' and '{2}' do not refer to the same source entity." + + + + + A string like "The expression '{0}' is not a valid expression for navigation path. The only supported operations inside the lambda expression body are MemberAccess and TypeAs. The expression must contain at least one MemberAccess and it cannot end with TypeAs." + + + + + A string like "Initializing instances of the entity type {0} with the expression {1} is not supported." + + + + + A string like "Constructing or initializing instances of the type {0} with the expression {1} is not supported." + + + + + A string like "Cannot assign the value from the {0} property to the {1} property. When projecting results into a entity type, the property names of the source type and the target type must match for the properties being projected." + + + + + A string like "The collection property '{0}' cannot be used in an 'orderby' query expression. Collection properties are not supported by the 'orderby' query option." + + + + + A string like "The collection property '{0}' cannot be used in a 'where' query expression. Collection properties are only supported as the source of 'any' or 'all' methods in a 'where' query option." + + + + + A string like "Navigation to members of the collection property '{0}' in a 'select' query expression is not supported." + + + + + A string like "The property '{0}' of type 'DataServiceStreamLink' cannot be used in 'where' or 'orderby' query expressions. Properties of type 'DataServiceStreamLink' are not supported by these query options." + + + + + A string like "Unsupported expression '{0}' in '{1}' method. Expression cannot end with TypeAs." + + + + + A string like "The method '{0}' is not supported when MaxProtocolVersion is less than '{1}'." + + + + + A string like "The type '{0}' is not an entity type. The target type for a TypeAs operator must be an entity type." + + + + + A string like "The source parameter for the '{0}' method has to be either a navigation or a collection property." + + + + + A string like "The method '{0}' is not supported by the 'orderby' query option." + + + + + A string like "The DataServiceCollection to be tracked must contain entity typed elements with at least one key property. The element type '{0}' does not have any key property." + + + + + A string like "Setting an instance of DataServiceCollection to an entity property is disallowed if the instance is already being tracked. Error occurred on property '{0}' for entity type '{1}'." + + + + + A string like "Unexpected action '{0}' on the OnCollectionChanged event raised by DataServiceCollection." + + + + + A string like "Unexpected action '{0}' on the OnCollectionChanged event raised by a collection object of type '{1}'." + + + + + A string like "Null values are disallowed during '{0}' operations on DataServiceCollection." + + + + + A string like "A value provided during '{0}' operation on DataServiceCollection is not of an entity type with key." + + + + + A string like "Entity set name has not been provided for an entity of type '{0}'." + + + + + A string like "An attempt was made to add entity of type '{0}' to a collection in which the same entity already exists." + + + + + A string like "An attempt to track an entity or complex type failed because the entity or complex type '{0}' does not implement the INotifyPropertyChanged interface." + + + + + A string like "An attempt to track an entity or complex type failed because the entity or complex type contains a collection property of type '{0}' that does not implement the INotifyCollectionChanged interface." + + + + + A string like "An attempt to track a complex object of type '{0}' failed because the complex object is already being tracked." + + + + + A string like "An attempt to track a collection object of type '{0}' failed because the collection object is already being tracked." + + + + + A string like "The null value from property '{0}' cannot be assigned to a type '{1}'." + + + + + A string like "An entry of type '{0}' cannot be added to a collection that contains instances of type '{1}'. This may occur when an existing entry of a different type has the same identity value or when the same entity is projected into two different types in a single query." + + + + + A string like "An entry returned by the navigation property '{0}' is null and cannot be initialized. You should check for a null value before accessing this property." + + + + + A string like "An entry that contains the data required to create an instance of type '{0}' is null and cannot be initialized. You should check for a null value before accessing this entry." + + + + + A string like "An entity of type '{0}' cannot be projected because there is already an instance of type '{1}' for '{2}'." + + + + + A string like "The expected property '{0}' could not be found while processing an entry. Check for null before accessing this property." + + + + + A string like "Property '{0}' is not an entity." + + + + + A string like "Collection property '{0}' cannot be created because the type '{1}' does not have a public parameterless constructor." + + + + + A string like "The element '{0}' is not a valid collection item. The name of the collection item element must be 'element' and must belong to the 'http://schemas.microsoft.com/ado/2007/08/dataservices' namespace." + + + + + A string like "There is a type mismatch between the client and the service. Type '{0}' is an entity type, but the type in the response payload does not represent an entity type. Please ensure that types defined on the client match the data model of the service, or update the service reference on the client." + + + + + A string like "There is a type mismatch between the client and the service. Type '{0}' is not an entity type, but the type in the response payload represents an entity type. Please ensure that types defined on the client match the data model of the service, or update the service reference on the client." + + + + + A string like "Materialization of top level collection expected ICollection<>, but actual type was {0}." + + + + + A string like "The response payload is a not a valid response payload. Please make sure that the top level element is a valid Atom or JSON element or belongs to '{0}' namespace." + + + + + A string like "The response content type '{0}' is not currently supported." + + + + + A string like "Cannot materialize the results into a collection type '{0}' because it does not have a parameterless constructor." + + + + + A string like "Cannot materialize a collection of a primitives or complex without the type '{0}' being a collection." + + + + + A string like "A circular loop was detected while serializing the property '{0}'. You must make sure that loops are not present in properties that return a collection or complex type." + + + + + A string like "A circular loop was detected while serializing the complex type '{0}'. You must make sure that loops are not present in a collection or a complex type." + + + + + A string like "The operation parameter named '{0}' has a collection item of Edm type kind '{1}'. A collection item must be either a primitive type or a complex Edm type kind." + + + + + A string like "The operation parameter named '{0}' has a null collection item. The items of a collection must not be null." + + + + + A string like "The operation parameter named '{0}' was of Edm type kind '{1}'. An operation parameter must be either a primitive type, a complex type or a collection of primitive or complex types." + + + + + A string like "The parameter alias '{0}' was not present in the request URI. All parameters passed as alias must be present in the request URI." + + + + + A string like "An internal error '{0}' occurred." + + + + + A string like "The entity set '{0}' doesn't have the 'OData.EntitySetUri' annotation. This annotation is required." + + + + + A string like "The entity set '{0}' has a URI '{1}' which has no path segments. An entity set URI suffix cannot be appended to a URI without path segments." + + + + + A string like "Neither the 'OData.EntityInstanceUri' nor the 'OData.EntitySetUriSuffix' annotation was found for entity set '{0}'. One of these annotations is required." + + + + + A string like "The type '{0}' was found for a primitive value. In OData, the type '{0}' is not a supported primitive type." + + + + + A string like "Incompatible primitive type kinds were found. The type '{0}' was found to be of kind '{2}' instead of the expected kind '{1}'." + + + + + A string like "Incompatible primitive type kinds were found. Found type kind '{0}' instead of the expected kind '{1}'." + + + + + A string like "A value with primitive kind '{0}' cannot be converted into a primitive object value." + + + + + A string like "Not all requests in the batch had a response." + + + + + A string like "Expected an absolute, well formed http URL without a query or fragment." + + + + + A string like "You must set the BaseUri property before you perform this operation." + + + + + A string like "The Uri that is returned by the ResolveEntitySet function must be an absolute, well-formed URL with an "http" or "https" scheme name and without any query strings or fragment identifiers." + + + + + A string like "Because the requestUri is a relative Uri, you must set the BaseUri property on the DataServiceContext." + + + + + A string like "The identity value specified by either the Atom id element or the DataServiceId header must be an absolute URI." + + + + + A string like "The 'Location' header value specified in the response must be an absolute URI." + + + + + A string like "One of the link's resources failed to insert." + + + + + A string like "An error occurred for this query during batch execution. See the inner exception for details." + + + + + A string like "Expected a relative URL path without query or fragment." + + + + + A string like "Changes cannot be saved as a batch when an entity has one or more streams associated with it. Retry the SaveChanges operation without enabling the SaveChangesOptions.Batch and the SaveChangesOptions.BatchWithIndependentOperations options." + + + + + A string like "This operation requires the entity be of an Entity Type, and has at least one key property." + + + + + A string like "This operation requires the entity to be of an Entity Type, either mark its key properties, or attribute the class with DataServiceEntityAttribute" + + + + + A string like "The context is not currently tracking the entity." + + + + + A string like "The context is already tracking the entity." + + + + + A string like "The context is already tracking a different entity with the same resource Uri." + + + + + A string like "The current object did not originate the async result." + + + + + A string like "The asynchronous result has already been completed." + + + + + A string like "The operation has been canceled." + + + + + A string like "The context can not load the related collection or reference for objects in the added state." + + + + + A string like "One or both of the ends of the relationship is in the added state." + + + + + A string like "One or both of the ends of the relationship is in the deleted state." + + + + + A string like "The context is already tracking the relationship." + + + + + A string like "The sourceProperty is not a reference or collection of the target's object type." + + + + + A string like "AddLink and DeleteLink methods only work when the sourceProperty is a collection." + + + + + A string like "AddRelatedObject method only works when the sourceProperty is a collection." + + + + + A string like "AddRelatedObject method only works if the source entity is in a non-deleted state." + + + + + A string like "SetLink method only works when the sourceProperty is not a collection." + + + + + A string like "Saving entities with the [MediaEntry] attribute is not currently supported in batch mode. Use non-batched mode instead." + + + + + A string like "Unexpected result (<= 0) from stream.Read() while reading raw data for this property." + + + + + A string like "Attempt to delete a link between two objects failed because the identity of the target object of the link depends on the source object of the link." + + + + + A string like "The ContentType value for a named stream cannot be null or an empty string." + + + + + A string like "This operation requires that the specified entity be a Media Link Entry and that the ReadStreamUri be available. However, the specified entity either is not a Media Link Entry or does not have a valid ReadStreamUri value. If the entity is a Media Link Entry, re-query the data service for this entity to obtain a valid ReadStreamUri value." + + + + + A string like "There is no edit-media link for the entity's media stream. Make sure that the edit-media link is specified for this stream." + + + + + A string like "The response should have both 'Location' and 'DataServiceId' headers or the response should not have any of these headers." + + + + + A string like "OperationParameter of type BodyOperationParameter cannot be specified when the HttpMethod is set to GET." + + + + + A string like "The Name property of an OperationParameter must be set to a non-null, non-empty string." + + + + + A string like "Multiple uri operation parameters were found with the same name. Uri operation parameter names must be unique." + + + + + A string like "Multiple body operation parameters were found with the same name. Body operation parameter names must be unique." + + + + + A string like "The HttpMethod must be GET or POST." + + + + + A string like "EndExecute overload for void service operations and actions received a non-void response from the server." + + + + + A string like "The operation parameters array contains a null element which is not allowed." + + + + + A string like "An implementation of ODataEntityMetadataBuilder is required, but a null value was returned from GetEntityMetadataBuilder." + + + + + A string like "SendingRequest is a deprecated event. If using BuildingRequest, you cannot use SendingRequest. Use SendingRequest2 instead." + + + + + A string like "The ChangeState method does not support the 'Added' state because additional information is needed for inserts. Use either AddObject or AddRelatedObject instead." + + + + + A string like "The entity's state can only be changed to 'Modified' if it is currently 'Unchanged'." + + + + + A string like "DataServiceContext.Configurations.RequestPipeline.OnMessageCreating property must not return a null value. Please return a non-null value for this property." + + + + + A string like "SendingRequest cannot be used in combination with the DataServiceContext.Configurations.RequestPipeline.OnMessageCreating property. Please use SendingRequest2 with DataServiceContext.Configurations.RequestPipeline.OnMessageCreating property instead." + + + + + A string like "The ReadingEntity and WritingEntity events are only supported when using the Atom format. Use the Atom format or remove all registered handlers for these events before enabling another format." + + + + + A string like "When you call the UseJson method without a parameter, you must use the LoadServiceModel property to provide a valid IEdmModel instance." + + + + + A string like "UseJson is not supported when the MaxProtocolVersion is set to less than V3. This JSON format is only supported by OData v3 or a later version." + + + + + A string like "To use the JSON format, you must first call DataServiceContext.Format.UseJson() and supply a valid service model." + + + + + A string like "Multiple implementations of ICollection<T> is not supported." + + + + + A string like "Collection properties of a collection type are not supported." + + + + + A string like "An error occurred while processing this request." + + + + + A string like "Only a single enumeration is supported by this IEnumerable." + + + + + A string like "Error processing response stream. Element value interspersed with a comment is not supported." + + + + + A string like "Error processing response stream. The XML element contains mixed content." + + + + + A string like "Error processing response stream. Atom payload has a link, local object has a simple value." + + + + + A string like "The response to this POST request did not contain a 'location' header. That is not supported by this client." + + + + + A string like "Error processing response stream. Missing id element in the response." + + + + + A string like "An item in the collection property has a null value. Collection properties that contain items with null values are not supported." + + + + + A string like "A collection property of primitive types cannot contain an item of a complex type." + + + + + A string like "A collection property of complex types cannot contain an item of a primitive type." + + + + + A string like "Content-Type header value missing." + + + + + A string like "Media type is missing a parameter value." + + + + + A string like "Media type requires a ';' character before a parameter definition." + + + + + A string like "Media type requires a '/' character." + + + + + A string like "Media type requires a subtype definition." + + + + + A string like "Media type is unspecified." + + + + + A string like "Count value is not part of the response stream." + + + + + A string like "The top level link is only available after the response has been enumerated." + + + + + A string like "The collection is not part of the current entry" + + + + + A string like "This response does not contain any nested collections. Use null as Key instead." + + + + + A string like "GetStream method is not supported." + + + + + A string like "Empty string." + + + + + A string like "Empty array." + + + + + A string like "Array contains a null element." + + + + + A string like "An operation between an expression and a type is not supported." + + + + + A string like "The conditional expression is not supported." + + + + + A string like "The parameter expression is not supported." + + + + + A string like "Lambda Expressions not supported." + + + + + A string like "New Expressions not supported." + + + + + A string like "Member Init Expressions not supported." + + + + + A string like "List Init Expressions not supported." + + + + + A string like "New Array Expressions not supported." + + + + + A string like "Invocation Expressions not supported." + + + + + A string like "Can only specify query options (orderby, where, take, skip) after last navigation." + + + + + A string like "Expand query option not allowed." + + + + + A string like "Individual properties can only be selected from a single resource or as part of a type. Specify a key predicate to restrict the entity set to a single instance or project the property into a named or anonymous type." + + + + + A string like "Multiple key predicates cannot be specified for the same entity set." + + + + + A string like "Custom query option not allowed." + + + + + A string like "Cannot specify query options (orderby, where, take, skip, count) on single resource." + + + + + A string like "Cannot add count option to the resource set." + + + + + A string like "Cannot add count option to the resource set because it would conflict with existing count options." + + + + + A string like "Can only specify 'select' query option after last navigation." + + + + + A string like "Cannot translate multiple Linq Select operations in a single 'select' query option." + + + + + A string like "Construction of entity type instances must use object initializer with default constructor." + + + + + A string like "Referencing of local entity type instances not supported when projecting results." + + + + + A string like "Can only project the last entity type in the query being translated." + + + + + A string like "Cannot create projection while there is an explicit expansion specified on the same query." + + + + + A string like "The target type for an OfType filter could not be determined." + + + + + A string like "Non-redundant type filters (OfType<T>, C# 'as' and VB 'TryCast') can only be used once per resource set." + + + + + A string like "The expression 'TypeAs' is not supported when MaxProtocolVersion is less than '3.0'." + + + + + A string like "The '$format' query option is not supported. Use the DataServiceContext.Format property to set the desired format." + + + + + A string like "DataServiceKey attribute must specify at least one property name." + + + + + A string like "Target collection for the Load operation must have an associated DataServiceContext." + + + + + A string like "The tracking of DataServiceCollection can not be stopped for child collections." + + + + + A string like "This operation is only supported on collections that are being tracked." + + + + + A string like "The DataServiceContext to which the DataServiceCollection instance belongs could not be determined. The DataServiceContext must either be supplied in the DataServiceCollection constructor or be used to create the DataServiceQuery or QueryOperationResponse object that is the source of the items in the DataServiceCollection." + + + + + A string like "An item could not be added to the collection. When items in a DataServiceCollection are tracked by the DataServiceContext, new items cannot be added before items have been loaded into the collection." + + + + + A string like "Add/Update/Delete operation cannot be performed on a child entity, if the parent entity is already detached." + + + + + A string like "Expected exactly one Atom entry in the response from the server, but none was found." + + + + + A string like "Expected exactly one Atom entry in the response from the server, but more than one was found." + + + + + A string like "Expected an Atom feed or entry in the response from the server, but found an unexpected element instead." + + + + + A string like "A DataServiceCollection can only contain entity types. Primitive and complex types cannot be contained by this kind of collection." + + + + + A string like "Reset should never be called for collection reader in an internal enumerable." + + + + + A string like "This target framework does not enable you to directly enumerate over a data service query. This is because enumeration automatically sends a synchronous request to the data service. Because this framework only supports asynchronous operations, you must instead call the BeginExecute and EndExecute methods to obtain a query result that supports enumeration." + + + + + A string like "Only instances of HttpWebRequest are currently allowed for this property. Other subtypes of WebRequest are not supported." + + + + + A string like "Failed to get the count value from the server." + + + + + A string like "Execute overload for void service operations and actions received a non-void response from the server." + + + + diff --git a/TinyFileManager.NET/bin/Microsoft.WindowsAzure.Configuration.dll b/TinyFileManager.NET/bin/Microsoft.WindowsAzure.Configuration.dll new file mode 100644 index 0000000..c5e7797 Binary files /dev/null and b/TinyFileManager.NET/bin/Microsoft.WindowsAzure.Configuration.dll differ diff --git a/TinyFileManager.NET/bin/Microsoft.WindowsAzure.Storage.dll b/TinyFileManager.NET/bin/Microsoft.WindowsAzure.Storage.dll new file mode 100644 index 0000000..5ce26e4 Binary files /dev/null and b/TinyFileManager.NET/bin/Microsoft.WindowsAzure.Storage.dll differ diff --git a/TinyFileManager.NET/bin/Microsoft.WindowsAzure.Storage.xml b/TinyFileManager.NET/bin/Microsoft.WindowsAzure.Storage.xml new file mode 100644 index 0000000..3456ccc --- /dev/null +++ b/TinyFileManager.NET/bin/Microsoft.WindowsAzure.Storage.xml @@ -0,0 +1,25921 @@ + + + + Microsoft.WindowsAzure.Storage + + + + + Represents the status of an asynchronous operation and provides support for cancellation. + + + + + Cancels the asynchronous operation. + + + + + Represents a handler that signs HTTP requests. + + + + + Signs the specified HTTP request so it can be authenticated by the Windows Azure storage services. + + The HTTP request to sign. + An object for tracking the current operation. + + + + Represents a handler that signs HTTP requests with no authentication information. + + + + + Initializes a new instance of the class. + + + + + Signs the specified HTTP request with no authentication information. + + The HTTP request to sign. + An object for tracking the current operation. + + + + Represents a handler that signs HTTP requests with a shared key. + + + + + Initializes a new instance of the class. + + A canonicalizer that converts HTTP request data into a standard form appropriate for signing. + A object providing credentials for the request. + The name of the storage account that the HTTP request will access. + + + + Signs the specified HTTP request with a shared key. + + The HTTP request to sign. + An object for tracking the current operation. + + + + Represents a handler that signs HTTP requests with a shared key. + + + + + Initializes a new instance of the class. + + A canonicalizer that converts HTTP request data into a standard form appropriate for signing. + A object providing credentials for the request. + The name of the storage account that the HTTP request will access. + + + + Signs the specified HTTP request with a shared key. + + The HTTP request to sign. + An object for tracking the current operation. + + + + Initializes a new instance of the BlobReadStreamBase class. + + Blob reference to read from + An object that represents the access conditions for the blob. If null, no condition is used. + An object that specifies additional options for the request. + An object for tracking the current operation. + + + + Sets the position within the current stream. + + A byte offset relative to the origin parameter. + A value of type SeekOrigin indicating the reference + point used to obtain the new position. + The new position within the current stream. + Seeking in a BlobReadStream disables MD5 validation. + + + + This operation is not supported in BlobReadStreamBase. + + Not used. + + + + This operation is not supported in BlobReadStreamBase. + + Not used. + Not used. + Not used. + + + + This operation is a no-op in BlobReadStreamBase. + + + + + Read as much as we can from the internal buffer + + The buffer to read the data into. + The byte offset in buffer at which to begin writing + data read from the stream. + The maximum number of bytes to read. + Number of bytes read from the stream. + + + + Calculates the number of bytes to read from the blob. + + Number of bytes to read. + + + + Updates the blob MD5 with newly downloaded content. + + The buffer to read the data from. + The byte offset in buffer at which to begin reading data. + The maximum number of bytes to read. + + + + Releases the blob resources used by the Stream. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Gets a value indicating whether the current stream supports reading. + + + + + Gets a value indicating whether the current stream supports seeking. + + + + + Gets a value indicating whether the current stream supports writing. + + + + + Gets or sets the position within the current stream. + + + + + Gets the length in bytes of the stream. + + The length in bytes of the stream. + + + + Initializes a new instance of the BlobReadStream class. + + Blob reference to read from + An object that represents the access conditions for the blob. If null, no condition is used. + An object that specifies additional options for the request. + An object for tracking the current operation. + + + + Reads a sequence of bytes from the current stream and advances the + position within the stream by the number of bytes read. + + The buffer to read the data into. + The byte offset in buffer at which to begin writing + data read from the stream. + The maximum number of bytes to read. + The total number of bytes read into the buffer. This can be + less than the number of bytes requested if that many bytes are not + currently available, or zero (0) if the end of the stream has been reached. + + + + Begins an asynchronous read operation. + + The buffer to read the data into. + The byte offset in buffer at which to begin writing + data read from the stream. + The maximum number of bytes to read. + An optional asynchronous callback, to be called when the read is complete. + A user-provided object that distinguishes this particular asynchronous read request from other requests. + An IAsyncResult that represents the asynchronous read, which could still be pending. + + + + Waits for the pending asynchronous read to complete. + + The reference to the pending asynchronous request to finish. + The total number of bytes read into the buffer. This can be + less than the number of bytes requested if that many bytes are not + currently available, or zero (0) if the end of the stream has been reached. + + + + Dispatches an async read operation that either reads from the cache or makes a call to + the server. + + The reference to the pending asynchronous request to finish. + The buffer to read the data into. + The byte offset in buffer at which to begin writing + data read from the stream. + The maximum number of bytes to read. + + + + Called when the asynchronous DownloadRangeToStream operation completes. + + The result of the asynchronous operation. + + + + Dispatches a sync read operation that either reads from the cache or makes a call to + the server. + + The buffer to read the data into. + The byte offset in buffer at which to begin writing + data read from the stream. + The maximum number of bytes to read. + Number of bytes read from the stream. + + + + Represents a stream for writing to a blob. + + + + + Clears all buffers for this stream, causes any buffered data to be written to the underlying blob, and commits the blob. + + + + + Begins an asynchronous commit operation. + + An optional asynchronous callback, to be called when the commit is complete. + A user-provided object that distinguishes this particular asynchronous commit request from other requests. + An ICancellableAsyncResult that represents the asynchronous commit, which could still be pending. + + + + Waits for the pending asynchronous commit to complete. + + The reference to the pending asynchronous request to finish. + + + + Begins an asynchronous flush operation. + + An optional asynchronous callback, to be called when the flush is complete. + A user-provided object that distinguishes this particular asynchronous flush request from other requests. + An ICancellableAsyncResult that represents the asynchronous flush, which could still be pending. + + + + Waits for the pending asynchronous flush to complete. + + The reference to the pending asynchronous request to finish. + + + + Initializes a new instance of the BlobWriteStreamBase class. + + The service client. + An object that represents the access conditions for the blob. If null, no condition is used. + An object that specifies additional options for the request. + An object for tracking the current operation. + + + + Initializes a new instance of the BlobWriteStreamBase class for a block blob. + + Blob reference to write to. + An object that represents the access conditions for the blob. If null, no condition is used. + An object that specifies additional options for the request. + An object for tracking the current operation. + + + + Initializes a new instance of the BlobWriteStreamBase class for a page blob. + + Blob reference to write to. + Size of the page blob. + Use true if the page blob is newly created, false otherwise. + An object that represents the access conditions for the blob. If null, no condition is used. + An object that specifies additional options for the request. + An object for tracking the current operation. + + + + This operation is not supported in BlobWriteStreamBase. + + Not used. + Not used. + Not used. + + + + Calculates the new position within the current stream for a Seek operation. + + A byte offset relative to the origin parameter. + A value of type SeekOrigin indicating the reference + point used to obtain the new position. + The new position within the current stream. + + + + This operation is not supported in BlobWriteStreamBase. + + Not used. + + + + Generates a new block ID to be used for PutBlock. + + Base64 encoded block ID + + + + Releases the blob resources used by the Stream. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Gets a value indicating whether the current stream supports reading. + + + + + Gets a value indicating whether the current stream supports seeking. + + + + + Gets a value indicating whether the current stream supports writing. + + + + + Gets the length in bytes of the stream. + + + + + Gets or sets the position within the current stream. + + + + + Initializes a new instance of the BlobWriteStream class for a block blob. + + Blob reference to write to. + An object that represents the access conditions for the blob. If null, no condition is used. + An object that specifies additional options for the request. + An object for tracking the current operation. + + + + Initializes a new instance of the BlobWriteStream class for a page blob. + + Blob reference to write to. + Size of the page blob. + Use true if the page blob is newly created, false otherwise. + An object that represents the access conditions for the blob. If null, no condition is used. + An object that specifies additional options for the request. + An object for tracking the current operation. + + + + Sets the position within the current stream. + + A byte offset relative to the origin parameter. + A value of type SeekOrigin indicating the reference + point used to obtain the new position. + The new position within the current stream. + + + + Writes a sequence of bytes to the current stream and advances the current + position within this stream by the number of bytes written. + + An array of bytes. This method copies count bytes from + buffer to the current stream. + The zero-based byte offset in buffer at which to begin + copying bytes to the current stream. + The number of bytes to be written to the current stream. + + + + Begins an asynchronous write operation. + + An array of bytes. This method copies count bytes from + buffer to the current stream. + The zero-based byte offset in buffer at which to begin + copying bytes to the current stream. + The number of bytes to be written to the current stream. + An optional asynchronous callback, to be called when the write is complete. + A user-provided object that distinguishes this particular asynchronous write request from other requests. + An IAsyncResult that represents the asynchronous write, which could still be pending. + + + + Waits for the pending asynchronous write to complete. + + The reference to the pending asynchronous request to finish. + + + + Clears all buffers for this stream and causes any buffered data to be written to the underlying blob. + + + + + Begins an asynchronous flush operation. + + An optional asynchronous callback, to be called when the flush is complete. + A user-provided object that distinguishes this particular asynchronous flush request from other requests. + An ICancellableAsyncResult that represents the asynchronous flush, which could still be pending. + + + + Waits for the pending asynchronous flush to complete. + + The reference to the pending asynchronous request to finish. + + + + Called when noPendingWritesEvent is signalled indicating that there are no outstanding write requests. + + An object containing information to be used by the callback method each time it executes. + true if the WaitHandle timed out; false if it was signaled. + + + + Releases the blob resources used by the Stream. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Clears all buffers for this stream, causes any buffered data to be written to the underlying blob, and commits the blob. + + + + + Begins an asynchronous commit operation. + + An optional asynchronous callback, to be called when the commit is complete. + A user-provided object that distinguishes this particular asynchronous commit request from other requests. + An ICancellableAsyncResult that represents the asynchronous commit, which could still be pending. + + + + Waits for the pending asynchronous commit to complete. + + The reference to the pending asynchronous request to finish. + + + + Called when the pending flush operation completes so that we can continue with the commit. + + The result of the asynchronous operation. + + + + Called when the block blob commit operation completes. + + The result of the asynchronous operation. + + + + Called when the page blob commit operation completes. + + The result of the asynchronous operation. + + + + Dispatches a write operation. + + The reference to the pending asynchronous request to finish. + + + + Starts an asynchronous PutBlock operation as soon as the parallel + operation semaphore becomes available. + + Data to be uploaded + Block ID + MD5 hash of the data to be uploaded + The reference to the pending asynchronous request to finish. + + + + Called when the asynchronous PutBlock operation completes. + + The result of the asynchronous operation. + + + + Starts an asynchronous WritePages operation as soon as the parallel + operation semaphore becomes available. + + Data to be uploaded + Offset within the page blob + MD5 hash of the data to be uploaded + The reference to the pending asynchronous request to finish. + + + + Called when the asynchronous WritePages operation completes. + + The result of the asynchronous operation. + + + + Provides a client-side logical representation of the Windows Azure Blob service. This client is used to configure and execute requests against the Blob service. + + The service client encapsulates the base URI for the Blob service. If the service client will be used for authenticated access, + it also encapsulates the credentials for accessing the storage account. + + Provides a client-side logical representation of the Windows Azure Blob service. This client is used to configure and execute requests against the Blob service. + + The service client encapsulates the base URI for the Blob service. If the service client will be used for authenticated access, it also encapsulates + the credentials for accessing the storage account. + + + + Returns an enumerable collection of containers whose names + begin with the specified prefix and that are retrieved lazily. + + The container name prefix. + A value that indicates whether to return container metadata with the listing. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + An enumerable collection of containers that are retrieved lazily. + + + + Returns a result segment containing a collection of objects. + + A returned by a previous listing operation. + A result segment of containers. + + + + Returns a result segment containing a collection of objects. + + The container name prefix. + A returned by a previous listing operation. + A result segment of containers. + + + + Returns a result segment containing a collection of containers whose names begin with the specified prefix. + + The container name prefix. + A value that indicates whether to return container metadata with the listing. + A non-negative integer value that indicates the maximum number of results to be returned + in the result segment, up to the per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A returned by a previous listing operation. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A result segment of containers. + + + + Returns a result segment containing a collection of containers + whose names begin with the specified prefix. + + The container name prefix. + A value that indicates whether to return container metadata with the listing. + A non-negative integer value that indicates the maximum number of results to be returned + in the result segment, up to the per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A continuation token returned by a previous listing operation. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A result segment of containers. + + + + Begins an asynchronous request to return a result segment containing a collection of containers. + + A continuation token returned by a previous listing operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous request to return a result segment containing a collection of containers. + + The container name prefix. + A continuation token returned by a previous listing operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous request to return a result segment containing a collection of containers + whose names begin with the specified prefix. + + The container name prefix. + A value that indicates whether to return container metadata with the listing. + A non-negative integer value that indicates the maximum number of results to be returned + in the result segment, up to the per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A continuation token returned by a previous listing operation. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to return a result segment containing a collection of containers. + + An that references the pending asynchronous operation. + A result segment of containers. + + + + Returns a task that performs an asynchronous request to return a result segment containing a collection of containers. + + A continuation token returned by a previous listing operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to return a result segment containing a collection of containers. + + A continuation token returned by a previous listing operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to return a result segment containing a collection of containers. + + The container name prefix. + A continuation token returned by a previous listing operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to return a result segment containing a collection of containers. + + The container name prefix. + A continuation token returned by a previous listing operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to return a result segment containing a collection of containers. + + The container name prefix. + A value that indicates whether to return container metadata with the listing. + A non-negative integer value that indicates the maximum number of results to be returned + in the result segment, up to the per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A continuation token returned by a previous listing operation. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to return a result segment containing a collection of containers. + + The container name prefix. + A value that indicates whether to return container metadata with the listing. + A non-negative integer value that indicates the maximum number of results to be returned + in the result segment, up to the per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A continuation token returned by a previous listing operation. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns an enumerable collection of the blobs in the container that are retrieved lazily. + + The blob name prefix. + Specifies whether to list blobs in a flat listing, or whether to list blobs hierarchically, by virtual directory. + A enumeration describing which items to include in the listing. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + An enumerable collection of objects that implement and are retrieved lazily. + + + + Returns a result segment containing a collection of blob items + in the container. + + The blob name prefix, including the container name. + A returned by a previous listing operation. + A result segment containing objects that implement . + + + + Returns a result segment containing a collection of blob items + in the container. + + The blob name prefix, including the container name. + Specifies whether to list blobs in a flat listing, or whether to list blobs hierarchically, by virtual directory. + A enumeration describing which items to include in the listing. + A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the + per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A returned by a previous listing operation. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A result segment containing objects that implement . + + + + Begins an asynchronous operation to return a result segment containing a collection of blob items + in the container. + + The blob name prefix, including the container name. + A returned by a previous listing operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to return a result segment containing a collection of blob items + in the container. + + The blob name prefix, including the container name. + Specifies whether to list blobs in a flat listing, or whether to list blobs hierarchically, by virtual directory. + A enumeration describing which items to include in the listing. + A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the + per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A returned by a previous listing operation. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to return a result segment containing a collection of blob items + in the container. + + An that references the pending asynchronous operation. + A result segment containing objects that implement . + + + + Returns a task that performs an asynchronous operation to return a result segment containing a collection of blob items + in the container. + + The blob name prefix, including the container name. + A returned by a previous listing operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to return a result segment containing a collection of blob items + in the container. + + The blob name prefix. + A returned by a previous listing operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to return a result segment containing a collection of blob items + in the container. + + The blob name prefix. + Specifies whether to list blobs in a flat listing, or whether to list blobs hierarchically, by virtual directory. + A enumeration describing which items to include in the listing. + A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the + per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A returned by a previous listing operation. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to return a result segment containing a collection of blob items + in the container. + + The blob name prefix. + Specifies whether to list blobs in a flat listing, or whether to list blobs hierarchically, by virtual directory. + A enumeration describing which items to include in the listing. + A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the + per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A returned by a previous listing operation. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Gets a reference to a blob from the service. + + The URI of the blob. The service assumes this is the URI for the blob in the primary location. + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + An object of type containing a reference to the blob. + + + + Gets a reference to a blob from the service. + + The URI of the blob. + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies any additional options for the request. + An object that represents the context for the current operation. + An object of type containing a reference to the blob. + + + + Begins an asynchronous operation to get a reference to a blob from the service. + + The URI of the blob. The service assumes this is the URI for the blob in the primary location. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to get a reference to a blob from the service. + + The URI of the blob. The service assumes this is the URI for the blob in the primary location. + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to get a reference to a blob from the service. + + The URI of the blob. + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies any additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to get a reference to a blob from the service. + + An that references the pending asynchronous operation. + A reference to the blob. + + + + Returns a task that gets a reference to a blob from the service. + + The URI of the blob. The service assumes this is the URI for the blob in the primary location. + A object that represents the current operation. + + + + Returns a task that gets a reference to a blob from the service. + + The URI of the blob. The service assumes this is the URI for the blob in the primary location. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a object that gets a reference to a blob from the service. + + The URI of the blob. The service assumes this is the URI for the blob in the primary location. + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that gets a reference to a blob from the service. + + The URI of the blob. The service assumes this is the URI for the blob in the primary location. + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that gets a reference to a blob from the service. + + The URI of the blob. + An object that represents the access conditions for the container. If null, no condition is used. + An object that specifies any additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that gets a reference to a blob from the service. + + The URI of the blob. + An object that represents the access conditions for the container. If null, no condition is used. + An object that specifies any additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Core implementation for the ListContainers method. + + The container prefix. + The details included. + The continuation token. + A non-negative integer value that indicates the maximum number of results to be returned + in the result segment, up to the per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A object that specifies additional options for the request. + A that lists the containers. + + + + Implements the FetchAttributes method. The attributes are updated immediately. + + The URI of the blob. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + A that fetches the attributes. + + + + Begins an asynchronous operation to get the properties of the blob service. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user defined object to be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to get the properties of the blob service. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user defined object to be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to get the properties of the blob service. + + An that references the pending asynchronous operation. + The blob service properties. + + + + Returns a task that performs an asynchronous operation to get the properties of the blob service. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to get the properties of the blob service. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to get the properties of the blob service. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to get the properties of the blob service. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Gets the properties of the blob service. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + The blob service properties. + + + + Begins an asynchronous operation to set the properties of the blob service. + + The blob service properties. + The callback delegate that will receive notification when the asynchronous operation completes. + A user defined object to be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to set the properties of the blob service. + + The blob service properties. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user defined object to be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to set the properties of the blob service. + + An that references the pending asynchronous operation. + + + + Returns a task that gets the properties of the blob service. + + The blob service properties. + A object that represents the current operation. + + + + Returns a task that gets the properties of the blob service. + + The blob service properties. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that gets the properties of the blob service. + + The blob service properties. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that gets the properties of the blob service. + + The blob service properties. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Sets the properties of the blob service. + + The blob service properties. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to get the stats of the blob service. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user defined object to be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to get the stats of the blob service. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user defined object to be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to get the stats of the blob service. + + An that references the pending asynchronous operation. + The blob service stats. + + + + Returns a task that performs an asynchronous operation to get the stats of the blob service. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to get the stats of the blob service. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to get the stats of the blob service. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to get the stats of the blob service. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Gets the stats of the blob service. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + The blob service stats. + + + + Stores the default delimiter. + + + + + Stores the parallelism factor. + + + + + Default is 32 MB. + + + + + The default server and client timeout interval. + + + + + Max execution time across all potential retries. + + + + + Initializes a new instance of the class using the specified Blob service endpoint + and anonymous credentials. + + The Blob service endpoint to use to create the client. + + + + Initializes a new instance of the class using the specified Blob service endpoint + and account credentials. + + The Blob service endpoint to use to create the client. + The account credentials. + + + + Initializes a new instance of the class using the specified Blob service endpoint + and account credentials. + + The Blob service endpoint to use to create the client. + The account credentials. + + + + Returns a reference to the root container for this service client. + + A reference to the root container. + + + + Returns a reference to a object with the specified name. + + The name of the container, or an absolute URI to the container. + A reference to a container. + + + + Parses the user prefix. + + The prefix. + Name of the container. + The listing prefix. + + + + Gets or sets the authentication scheme to use to sign HTTP requests. + + + + + Gets the authentication handler used to sign HTTP requests. + + The authentication handler. + + + + Gets or sets a buffer manager that implements the interface, + specifying a buffer pool for use with operations against the Blob service client. + + + + + Gets the account credentials used to create the Blob service client. + + The account credentials. + + + + Gets the base URI for the Blob service client, at the primary location. + + The base URI used to construct the Blob service client, at the primary location. + + + + Gets the Blob service endpoints for all locations. + + An object of type containing Blob service URIs for all locations. + + + + Gets or sets the default retry policy for requests made via the Blob service client. + + The retry policy. + + + + Gets or sets the default location mode for requests made via the Blob service client. + + The location mode. + + + + Gets or sets the default server and client timeout for requests made via the Blob service client. + + The server and client timeout interval. + + + + Gets or sets the maximum execution time across all potential retries. + + The maximum execution time across all potential retries. + + + + Gets or sets the default delimiter that may be used to create a virtual directory structure of blobs. + + The default delimiter. + + + + Gets or sets the maximum size of a blob in bytes that may be uploaded as a single blob. + + The maximum size of a blob, in bytes, that may be uploaded as a single blob, + ranging from between 1 and 64 MB inclusive. + + + + Gets or sets the number of blocks that may be simultaneously uploaded when uploading a blob that is greater than + the value specified by the property in size. + + The number of parallel operations that may proceed. + + + + Gets a value indicating whether the service client is used with Path style or Host style. + + Is true if use path style URIs; otherwise, false. + + + + Represents a container in the Windows Azure Blob service. + + Containers hold directories, which are encapsulated as objects, and directories hold block blobs and page blobs. Directories can also contain sub-directories. + + Represents a container in the Windows Azure Blob service. + + + + + Creates the container. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. This object + is used to track requests to the storage service, and to provide additional runtime information about the operation. + + + + Creates the container and specifies the level of access to the container's data. + + An object that specifies whether data in the container may be accessed publicly and what level of access is to be allowed. + A object that specifies additional options for the request. + An object that represents the context for the current operation. This object + is used to track requests to the storage service, and to provide additional runtime information about the operation. + + + + Begins an asynchronous operation to create a container. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to create a container. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to create a container and specify the level of access to the container's data. + + An object that specifies whether data in the container may be accessed publicly and what level of access is to be allowed. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to create a container. + + An that references the pending asynchronous operation. + + + + Returns a task that creates a container. + + A object that represents the current operation. + + + + Returns a task that creates a container. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that creates a container. + + An object that specifies whether data in the container may be accessed publicly and what level of access is to be allowed. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that creates a container and specifies the level of access to the container's data. + + An object that specifies whether data in the container may be accessed publicly and what level of access is to be allowed. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Creates the container if it does not already exist. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + true if the container did not already exist and was created; otherwise false. + + + + Creates the container if it does not already exist and specifies whether the container or its blobs are publicly accessible. + + An object that specifies whether data in the container may be accessed publicly and what level of access is to be allowed. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + true if the container did not already exist and was created; otherwise false. + + + + Begins an asynchronous request to create the container if it does not already exist. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous request to create the container if it does not already exist. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous request to create the container if it does not already exist. + + An object that specifies whether data in the container may be accessed publicly and the level of access. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Returns the result of an asynchronous request to create the container if it does not already exist. + + An that references the pending asynchronous operation. + true if the container did not already exist and was created; otherwise, false. + + + + Returns a task that creates the container if it does not already exist. + + A object that represents the current operation. + + + + Returns a task that creates the container if it does not already exist. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that creates the container if it does not already exist. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that creates the container if it does not already exist. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that creates the container if it does not already exist. + + An object that specifies whether data in the container may be accessed publicly and the level of access. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that creates the container if it does not already exist. + + An object that specifies whether data in the container may be accessed publicly and the level of access. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Deletes the container. + + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to delete a container. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to delete a container. + + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to delete a container. + + An that references the pending asynchronous operation. + + + + Returns a task that deletes the container. + + A object that represents the current operation. + + + + Returns a task that deletes the container. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that deletes the container. + + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that deletes the container. + + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Deletes the container if it already exists. + + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + true if the container did not already exist and was created; otherwise false. + + + + Begins an asynchronous request to delete the container if it already exists. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous request to delete the container if it already exists. + + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Returns the result of an asynchronous request to delete the container if it already exists. + + An that references the pending asynchronous operation. + true if the container did not already exist and was created; otherwise, false. + + + + Returns a task that deletes the container if it already exists. + + A object that represents the current operation. + + + + Returns a task that deletes the container if it already exists. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that deletes the container if it already exists. + + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that deletes the container if it already exists. + + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Gets a reference to a blob in this container. + + The name of the blob. + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A reference to the blob. + + + + Begins an asynchronous operation to get a reference to a blob in this container. + + The name of the blob. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to get a reference to a blob in this container. + + The name of the blob. + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to get a reference to a blob in this container. + + An that references the pending asynchronous operation. + A reference to the blob. + + + + Returns a task that gets a reference to a blob in this container. + + The name of the blob. + A object that represents the current operation. + + + + Returns a task that gets a reference to a blob in this container. + + The name of the blob. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that gets a reference to a blob in this container. + + The name of the blob. + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that gets a reference to a blob in this container. + + The name of the blob. + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns an enumerable collection of the blobs in the container that are retrieved lazily. + + The blob name prefix. + Specifies whether to list blobs in a flat listing, or whether to list blobs hierarchically, by virtual directory. + A enumeration describing which items to include in the listing. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + An enumerable collection of objects that implement and are retrieved lazily. + + + + Returns a result segment containing a collection of blob items + in the container. + + A continuation token returned by a previous listing operation. + A result segment containing objects that implement . + + + + Returns a result segment containing a collection of blob items + in the container. + + The blob name prefix. + A continuation token returned by a previous listing operation. + A result segment containing objects that implement . + + + + Returns a result segment containing a collection of blob items + in the container. + + The blob name prefix. + Specifies whether to list blobs in a flat listing, or whether to list blobs hierarchically, by virtual directory. + A enumeration describing which items to include in the listing. + A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the + per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A continuation token returned by a previous listing operation. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A result segment containing objects that implement . + + + + Returns a result segment containing a collection of blob items + in the container. + + The blob name prefix. + Specifies whether to list blobs in a flat listing, or whether to list blobs hierarchically, by virtual directory. + A enumeration describing which items to include in the listing. + A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the + per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A continuation token returned by a previous listing operation. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A result segment containing objects that implement . + + + + Begins an asynchronous operation to return a result segment containing a collection of blob items + in the container. + + A continuation token returned by a previous listing operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to return a result segment containing a collection of blob items + in the container. + + The blob name prefix. + A continuation token returned by a previous listing operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to return a result segment containing a collection of blob items + in the container. + + The blob name prefix. + Specifies whether to list blobs in a flat listing, or whether to list blobs hierarchically, by virtual directory. + A enumeration describing which items to include in the listing. + A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the + per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A continuation token returned by a previous listing operation. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to return a result segment containing a collection of blob items + in the container. + + An that references the pending asynchronous operation. + A result segment containing objects that implement . + + + + Returns a task that returns a result segment containing a collection of blob items + in the container. + + A continuation token returned by a previous listing operation. + + + + Returns a task that returns a result segment containing a collection of blob items + in the container. + + A continuation token returned by a previous listing operation. + A to observe while waiting for a task to complete. + + + + Returns a task that returns a result segment containing a collection of blob items + in the container. + + The blob name prefix. + A continuation token returned by a previous listing operation. + + + + Returns a task that returns a result segment containing a collection of blob items + in the container. + + The blob name prefix. + A continuation token returned by a previous listing operation. + A to observe while waiting for a task to complete. + + + + Returns a task that returns a result segment containing a collection of blob items + in the container. + + The blob name prefix. + Specifies whether to list blobs in a flat listing, or whether to list blobs hierarchically, by virtual directory. + A enumeration describing which items to include in the listing. + A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the + per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A continuation token returned by a previous listing operation. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that returns a result segment containing a collection of blob items + in the container. + + The blob name prefix. + Specifies whether to list blobs in a flat listing, or whether to list blobs hierarchically, by virtual directory. + A enumeration describing which items to include in the listing. + A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the + per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A continuation token returned by a previous listing operation. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Sets permissions for the container. + + The permissions to apply to the container. + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous request to set permissions for the container. + + The permissions to apply to the container. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous request to set permissions for the container. + + The permissions to apply to the container. + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Returns the result of an asynchronous request to set permissions for the container. + + An that references the pending asynchronous operation. + + + + Returns a task that sets permissions for the container. + + The permissions to apply to the container. + A object that represents the current operation. + + + + Returns a task that sets permissions for the container. + + The permissions to apply to the container. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that sets permissions for the container. + + The permissions to apply to the container. + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that sets permissions for the container. + + The permissions to apply to the container. + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Gets the permissions settings for the container. + + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The container's permissions. + + + + Begins an asynchronous request to get the permissions settings for the container. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous request to get the permissions settings for the container. + + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Returns the asynchronous result of the request to get the permissions settings for the container. + + An that references the pending asynchronous operation. + The container's permissions. + + + + Returns a task that gets the permissions settings for the container. + + A object that represents the current operation. + + + + Returns a task that gets the permissions settings for the container. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that gets the permissions settings for the container. + + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that gets the permissions settings for the container. + + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Checks whether the container exists. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + true if the container exists. + + + + Checks whether the container exists. + + If true, the command will be executed against the primary location. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + true if the container exists. + + + + Begins an asynchronous request to check whether the container exists. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous request to check whether the container exists. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous request to check whether the container exists. + + If true, the command will be executed against the primary location. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Returns the asynchronous result of the request to check whether the container exists. + + An that references the pending asynchronous operation. + true if the container exists. + + + + Returns a task that checks whether the container exists. + + A object that represents the current operation. + + + + Returns a task that checks whether the container exists. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that checks whether the container exists. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that checks whether the container exists. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Retrieves the container's attributes. + + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to retrieve the container's attributes. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to retrieve the container's attributes. + + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to retrieve the container's attributes. + + An that references the pending asynchronous operation. + + + + Returns a task that retrieves the container's attributes. + + A object that represents the current operation. + + + + Returns a task that retrieves the container's attributes. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that retrieves the container's attributes. + + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that retrieves the container's attributes. + + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Sets the container's user-defined metadata. + + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to set user-defined metadata on the container. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to set user-defined metadata on the container. + + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous request operation to set user-defined metadata on the container. + + An that references the pending asynchronous operation. + + + + Returns a task that sets container's user-defined metadata. + + A object that represents the current operation. + + + + Returns a task that sets container's user-defined metadata. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that sets container's user-defined metadata. + + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that sets container's user-defined metadata. + + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Acquires a lease on this container. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. If null, an infinite lease will be acquired. If not null, this must be + greater than zero. + A string representing the proposed lease ID for the new lease, or null if no lease ID is proposed. + An object that represents the access conditions for the container. If null, no condition is used. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + The ID of the acquired lease. + + + + Begins an asynchronous operation to acquire a lease on this container. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. If null, an infinite lease will be acquired. If not null, this must be + greater than zero. + A string representing the proposed lease ID for the new lease, or null if no lease ID is proposed. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to acquire a lease on this container. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. If null, an infinite lease will be acquired. If not null, this must be + greater than zero. + A string representing the proposed lease ID for the new lease, or null if no lease ID is proposed. + An object that represents the access conditions for the container. If null, no condition is used. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to acquire a lease on this container. + + An IAsyncResult that references the pending asynchronous operation. + The ID of the acquired lease. + + + + Returns a task that acquires a lease on this container. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. If null, an infinite lease will be acquired. If not null, this must be + greater than zero. + A string representing the proposed lease ID for the new lease, or null if no lease ID is proposed. + A object that represents the current operation. + + + + Returns a task that acquires a lease on this container. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. If null, an infinite lease will be acquired. If not null, this must be + greater than zero. + A string representing the proposed lease ID for the new lease, or null if no lease ID is proposed. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that acquires a lease on this container. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. If null, an infinite lease will be acquired. If not null, this must be + greater than zero. + A string representing the proposed lease ID for the new lease, or null if no lease ID is proposed. + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that acquires a lease on this container. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. If null, an infinite lease will be acquired. If not null, this must be + greater than zero. + A string representing the proposed lease ID for the new lease, or null if no lease ID is proposed. + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Renews a lease on this container. + + An object that represents the access conditions for the container, including a required lease ID. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to renew a lease on this container. + + An object that represents the access conditions for the container, including a required lease ID. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to renew a lease on this container. + + An object that represents the access conditions for the container, including a required lease ID. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to renew a lease on this container. + + An IAsyncResult that references the pending asynchronous operation. + + + + Returns a task that renews a lease on this container. + + An object that represents the access conditions for the container, including a required lease ID. + A object that represents the current operation. + + + + Returns a task that renews a lease on this container. + + An object that represents the access conditions for the container, including a required lease ID. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that renews a lease on this container. + + An object that represents the access conditions for the container, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that renews a lease on this container. + + An object that represents the access conditions for the container, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Changes the lease ID on this container. + + A string representing the proposed lease ID for the new lease. This cannot be null. + An object that represents the access conditions for the container, including a required lease ID. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + The new lease ID. + + + + Begins an asynchronous operation to change the lease on this container. + + A string representing the proposed lease ID for the new lease. This cannot be null. + An object that represents the access conditions for the container, including a required lease ID. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to change the lease on this container. + + A string representing the proposed lease ID for the new lease. This cannot be null. + An object that represents the access conditions for the container, including a required lease ID. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to change the lease on this container. + + An IAsyncResult that references the pending asynchronous operation. + The new lease ID. + + + + Returns a task that changes the lease ID on this container. + + A string representing the proposed lease ID for the new lease. This cannot be null. + An object that represents the access conditions for the container, including a required lease ID. + A object that represents the current operation. + + + + Returns a task that changes the lease ID on this container. + + A string representing the proposed lease ID for the new lease. This cannot be null. + An object that represents the access conditions for the container, including a required lease ID. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that changes the lease ID on this container. + + A string representing the proposed lease ID for the new lease. This cannot be null. + An object that represents the access conditions for the container, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that changes the lease ID on this container. + + A string representing the proposed lease ID for the new lease. This cannot be null. + An object that represents the access conditions for the container, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Releases the lease on this container. + + An object that represents the access conditions for the container, including a required lease ID. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to release the lease on this container. + + An object that represents the access conditions for the container, including a required lease ID. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to release the lease on this container. + + An object that represents the access conditions for the container, including a required lease ID. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to release the lease on this container. + + An IAsyncResult that references the pending asynchronous operation. + + + + Returns a task that releases the lease on this container. + + An object that represents the access conditions for the container, including a required lease ID. + A object that represents the current operation. + + + + Returns a task that releases the lease on this container. + + An object that represents the access conditions for the container, including a required lease ID. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that releases the lease on this container. + + An object that represents the access conditions for the container, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that releases the lease on this container. + + An object that represents the access conditions for the container, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Breaks the current lease on this container. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. If null, the break period is the remainder of the current lease, + or zero for infinite leases. + An object that represents the access conditions for the container. If null, no condition is used. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + A representing the amount of time before the lease ends, to the second. + + + + Begins an asynchronous operation to break the current lease on this container. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. If null, the break period is the remainder of the current lease, + or zero for infinite leases. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to break the current lease on this container. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. If null, the break period is the remainder of the current lease, + or zero for infinite leases. + An object that represents the access conditions for the container. If null, no condition is used. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to break the current lease on this container. + + An IAsyncResult that references the pending asynchronous operation. + A representing the amount of time before the lease ends, to the second. + + + + Returns a task that breaks the current lease on this container. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. If null, the break period is the remainder of the current lease, + or zero for infinite leases. + A object that represents the current operation. + + + + Returns a task that breaks the current lease on this container. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. If null, the break period is the remainder of the current lease, + or zero for infinite leases. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that breaks the current lease on this container. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. If null, the break period is the remainder of the current lease, + or zero for infinite leases. + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that breaks the current lease on this container. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. If null, the break period is the remainder of the current lease, + or zero for infinite leases. + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Generates a RESTCommand for acquiring a lease. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. If null, an infinite lease will be acquired. If not null, this must be + greater than zero. + A string representing the proposed lease ID for the new lease, or null if no lease ID is proposed. + An object that represents the access conditions for the container. If null, no condition is used. + The options for this operation. This parameter must not be null. + A RESTCommand implementing the acquire lease operation. + + + + Generates a RESTCommand for renewing a lease. + + An object that represents the access conditions for the container. If null, no condition is used. + The options for this operation, including the current lease ID. + This cannot be null. + A RESTCommand implementing the renew lease operation. + + + + Generates a RESTCommand for changing a lease ID. + + The proposed new lease ID. + An object that represents the access conditions for the container. If null, no condition is used. + The options for this operation, including the current lease ID. This cannot be null. + A RESTCommand implementing the change lease ID operation. + + + + Generates a RESTCommand for releasing a lease. + + An object that represents the access conditions for the container. If null, no condition is used. + The options for this operation, including the current lease ID. + This cannot be null. + A RESTCommand implementing the release lease operation. + + + + Generates a RESTCommand for breaking a lease. + + The amount of time to allow the lease to remain, rounded down to seconds. + If null, the break period is the remainder of the current lease, or zero for infinite leases. + An object that represents the access conditions for the container. If null, no condition is used. + The options for this operation. Cannot be null. + A RESTCommand implementing the break lease operation. + + + + Implementation for the Create method. + + A object that specifies additional options for the request. + An object that specifies whether data in the container may be accessed publicly and the level of access. + A that creates the container. + + + + Implementation for the Delete method. + + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + A that deletes the container. + + + + Implementation for the FetchAttributes method. + + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + A that fetches the attributes. + + + + Implementation for the Exists method. + + A object that specifies additional options for the request. + If true, the command will be executed against the primary location. + A that checks existence. + + + + Implementation for the SetMetadata method. + + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + A that sets the metadata. + + + + Implementation for the SetPermissions method. + + The permissions to set. + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + A that sets the permissions. + + + + Implementation for the GetPermissions method. + + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + A that gets the permissions. + + + + Selects the protocol response. + + The protocol item. + The parsed . + + + + Core implementation of the ListBlobs method. + + The blob prefix. + A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the + per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + Specifies whether to list blobs in a flat listing, or whether to list blobs hierarchically, by virtual directory. + A enumeration describing which items to include in the listing. + A object that specifies additional options for the request. + A continuation token returned by a previous listing operation. + A that lists the blobs. + + + + Retrieve ETag and LastModified date time from response. + + The response to parse. + + + + Initializes a new instance of the class. + + The absolute URI to the container. + + + + Initializes a new instance of the class. + + The absolute URI to the container. + The account credentials. + + + + Initializes a new instance of the class. + + The absolute URI to the container. + The account credentials. + + + + Initializes a new instance of the class. + + The container name. + A client object that specifies the endpoint for the Blob service. + + + + Initializes a new instance of the class. + + The properties. + The metadata. + The container name. + The client to be used. + + + + Parse URI for SAS (Shared Access Signature) information. + + The complete Uri. + The credentials to use. + + + + Returns the canonical name for shared access. + + The canonical name. + + + + Returns a shared access signature for the container. + + The access policy for the shared access signature. + A shared access signature, as a URI query string. + The query string returned includes the leading question mark. + + + + Returns a shared access signature for the container. + + The access policy for the shared access signature. + A container-level access policy. + A shared access signature, as a URI query string. + The query string returned includes the leading question mark. + + + + Gets a reference to a page blob in this container. + + The name of the blob. + A reference to a page blob. + + + + Returns a reference to a page blob in this virtual directory. + + The name of the page blob. + The snapshot timestamp, if the blob is a snapshot. + A reference to a page blob. + + + + Gets a reference to a block blob in this container. + + The name of the blob. + A reference to a block blob. + + + + Gets a reference to a block blob in this container. + + The name of the blob. + The snapshot timestamp, if the blob is a snapshot. + A reference to a block blob. + + + + Gets a reference to a virtual blob directory beneath this container. + + The name of the virtual blob directory. + A reference to a virtual blob directory. + + + + Gets the service client for the container. + + A client object that specifies the endpoint for the Blob service. + + + + Gets the container's URI for the primary location. + + The absolute URI to the container, at the primary location. + + + + Gets the container's URIs for all locations. + + An object of type containing the container's URIs for all locations. + + + + Gets the name of the container. + + The container's name. + + + + Gets the container's metadata. + + The container's metadata. + + + + Gets the container's system properties. + + The container's properties. + + + + Represents a virtual directory of blobs, designated by a delimiter character. + + Containers, which are encapsulated as objects, hold directories, and directories hold block blobs and page blobs. Directories can also contain sub-directories. + + Represents a virtual directory of blobs on the client which emulates a hierarchical data store by using delimiter characters. + + Containers, which are encapsulated as objects, hold directories, and directories hold block blobs and page blobs. Directories can also contain sub-directories. + + + + Represents an item that may be returned by a blob listing operation. + + + + + Gets the URI to the blob item, at the primary location. + + The blob item's URI. + + + + Gets the blob item's URIs for all locations. + + An object of type containing the blob item's URIs for all locations. + + + + Gets the blob item's parent virtual directory. + + The blob item's parent virtual directory. + + + + Gets the blob item's container. + + The blob item's container. + + + + Returns an enumerable collection of the blobs in the virtual directory that are retrieved lazily. + + Specifies whether to list blobs in a flat listing, or whether to list blobs hierarchically, by virtual directory. + A enumeration describing which items to include in the listing. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + An enumerable collection of objects that implement and are retrieved lazily. + + + + Returns a result segment containing a collection of blob items + in the virtual directory. + + A continuation token returned by a previous listing operation. + A result segment containing objects that implement . + + + + Returns a result segment containing a collection of blob items + in the virtual directory. + + Specifies whether to list blobs in a flat listing, or whether to list blobs hierarchically, by virtual directory. + A enumeration describing which items to include in the listing. + A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the + per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A continuation token returned by a previous listing operation. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A result segment containing objects that implement . + + + + Begins an asynchronous operation to return a result segment containing a collection of blob items + in the virtual directory. + + A continuation token returned by a previous listing operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to return a result segment containing a collection of blob items + in the virtual directory. + + Specifies whether to list blobs in a flat listing, or whether to list blobs hierarchically, by virtual directory. + A enumeration describing which items to include in the listing. + A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the + per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A continuation token returned by a previous listing operation. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to return a result segment containing a collection of blob items + in the virtual directory. + + An that references the pending asynchronous operation. + A result segment containing objects that implement . + + + + Returns a task that performs an asynchronous operation to return a result segment containing a collection of blob items + in the virtual directory. + + A continuation token returned by a previous listing operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to return a result segment containing a collection of blob items + in the virtual directory. + + A continuation token returned by a previous listing operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to return a result segment containing a collection of blob items + in the virtual directory. + + Specifies whether to list blobs in a flat listing, or whether to list blobs hierarchically, by virtual directory. + A enumeration describing which items to include in the listing. + A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the + per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A continuation token returned by a previous listing operation. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to return a result segment containing a collection of blob items + in the virtual directory. + + Specifies whether to list blobs in a flat listing, or whether to list blobs hierarchically, by virtual directory. + A enumeration describing which items to include in the listing. + A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the + per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A continuation token returned by a previous listing operation. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Stores the parent directory. + + + + + Initializes a new instance of the class given an address and a client. + + The blob directory's Uri. + The blob directory's prefix. + The container for the virtual directory. + + + + Gets a reference to a page blob in this virtual directory. + + The name of the blob. + A reference to a page blob. + + + + Returns a reference to a page blob in this virtual directory. + + The name of the page blob. + The snapshot timestamp, if the blob is a snapshot. + A reference to a page blob. + + + + Gets a reference to a block blob in this virtual directory. + + The name of the blob. + A reference to a block blob. + + + + Gets a reference to a block blob in this virtual directory. + + The name of the blob. + The snapshot timestamp, if the blob is a snapshot. + A reference to a block blob. + + + + Returns a virtual subdirectory within this virtual directory. + + The name of the virtual subdirectory. + A object representing the virtual subdirectory. + + + + Gets the service client for the virtual directory. + + A client object that specifies the endpoint for the Windows Azure Blob service. + + + + Gets the URI that identifies the virtual directory for the primary location. + + The URI to the virtual directory, at the primary location. + + + + Gets the blob directory's URIs for all locations. + + An object of type containing the blob directory's URIs for all locations. + + + + Gets the container for the virtual directory. + + The container for the virtual directory. + + + + Gets the parent directory for the virtual directory. + + The virtual directory's parent directory. + + + + Gets the prefix. + + The prefix. + + + + Called when the asynchronous operation to commit the blob started by UploadFromStream finishes. + + The result of the asynchronous operation. + + + + Implements getting the stream without specifying a range. + + The blob. + The attributes. + The destination stream. + The offset. + The length. + An object that represents the access conditions for the blob. If null, no condition is used. + An object that specifies additional options for the request. + + A that gets the stream. + + + + + Implements the FetchAttributes method. The attributes are updated immediately. + + The blob. + The attributes. + An object that represents the access conditions for the blob. If null, no condition is used. + An object that specifies additional options for the request. + + A that fetches the attributes. + + + + + Implementation for the Exists method. + + The blob. + The attributes. + An object that specifies additional options for the request. + If true, the command will be executed against the primary location. + + A that checks existence. + + + + + Implementation for the SetMetadata method. + + The blob. + The attributes. + An object that represents the access conditions for the blob. If null, no condition is used. + An object that specifies additional options for the request. + + A that sets the metadata. + + + + + Implementation for the SetProperties method. + + The blob. + The attributes. + An object that represents the access conditions for the blob. If null, no condition is used. + An object that specifies additional options for the request. + + A that sets the properties. + + + + + Implements the DeleteBlob method. + + The blob. + The attributes. + Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots. + An object that represents the access conditions for the blob. If null, no condition is used. + An object that specifies additional options for the request. + + A that deletes the blob. + + + + + Generates a for acquiring a lease. + + The blob. + The attributes. + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. If null, an infinite lease will be acquired. If not null, this must be + greater than zero. + A string representing the proposed lease ID for the new lease, or null if no lease ID is proposed. + An object that represents the access conditions for the blob. If null, no condition is used. + An object that specifies additional options for the request. + + A implementing the acquire lease operation. + + + + + Generates a for renewing a lease. + + The blob. + The attributes. + An object that represents the access conditions for the blob. If null, no condition is used. + An object that specifies additional options for the request. + + A implementing the renew lease operation. + + accessCondition + + + + Generates a for changing a lease ID. + + The blob. + The attributes. + The proposed new lease ID. + An object that represents the access conditions for the blob. If null, no condition is used. + An object that specifies additional options for the request. + + A implementing the change lease ID operation. + + accessCondition + + + + Generates a for releasing a lease. + + The blob. + The attributes. + An object that represents the access conditions for the blob. If null, no condition is used. + An object that specifies additional options for the request. + + A implementing the release lease operation. + + accessCondition + + + + Generates a for breaking a lease. + + The blob. + The attributes. + The amount of time to allow the lease to remain, rounded down to seconds. + If null, the break period is the remainder of the current lease, or zero for infinite leases. + An object that represents the access conditions for the blob. If null, no condition is used. + An object that specifies additional options for the request. + + A implementing the break lease operation. + + + + + Implementation of the StartCopyFromBlob method. Result is a BlobAttributes object derived from the response headers. + + The blob. + The attributes. + The URI of the source blob. + An object that represents the access conditions for the source blob. If null, no condition is used. + An object that represents the access conditions for the destination blob. If null, no condition is used. + An object that specifies additional options for the request. + + A that starts to copy the blob. + + sourceAccessCondition + + + + Implementation of the AbortCopy method. No result is produced. + + The blob. + The attributes. + The copy ID of the copy operation to abort. + An object that represents the access conditions for the operation. If null, no condition is used. + An object that specifies additional options for the request. + + A that aborts the copy. + + + + + Updates this blob with the given attributes at the end of a fetch attributes operation. + + The new attributes. + The response. + if set to true, blob's MD5 will not be updated. + + + + + Retrieve ETag, LMT, and Sequence-Number from response. + + The attributes. + The response to parse. + + + + Converts the source blob of a copy operation to an appropriate access URI, taking Shared Access Signature credentials into account. + + The source blob. + A URI addressing the source blob, using SAS if appropriate. + + + + Represents a blob that is uploaded as a set of blocks. + + + Represents a blob that is uploaded as a set of blocks. + + + + + An interface required for Windows Azure blob types. The and classes implement the interface. + + + An interface required for Windows Azure blob types. The and classes implement the interface. + + + + + Opens a stream for reading from the blob. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A stream to be used for reading from the blob. + On the object returned by this method, the method must be called exactly once for every call. Failing to end a read process before beginning another read can cause unknown behavior. + + + + Begins an asynchronous operation to open a stream for reading from the blob. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to open a stream for reading from the blob. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to open a stream for reading from the blob. + + An that references the pending asynchronous operation. + A stream to be used for reading from the blob. + + + + Returns a task that performs an asynchronous operation to open a stream for reading from the blob. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to open a stream for reading from the blob. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to open a stream for reading from the blob. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to open a stream for reading from the blob. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Uploads a stream to the Windows Azure Blob Service. + + The stream providing the blob content. Use a seek-able stream for optimal performance. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Uploads a stream to the Windows Azure Blob Service. + + The stream providing the blob content. + The number of bytes to write from the source stream at its current position. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to upload a stream to a blob. + + The stream providing the blob content. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to upload a stream to a blob. + + The stream providing the blob content. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to upload a stream to a block blob. + + The stream providing the blob content. + The number of bytes to write from the source stream at its current position. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to upload a stream to a blob. + + The stream providing the blob content. + The number of bytes to write from the source stream at its current position. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to upload a stream to a blob. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to upload a stream to a blob. + + The stream providing the blob content. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a stream to a blob. + + The stream providing the blob content. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a stream to a blob. + + The stream providing the blob content. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a stream to a blob. + + The stream providing the blob content. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a stream to a block blob. + + The stream providing the blob content. + The number of bytes to write from the source stream at its current position. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a stream to a block blob. + + The stream providing the blob content. + The number of bytes to write from the source stream at its current position. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a stream to a blob. + + The stream providing the blob content. + The number of bytes to write from the source stream at its current position. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a stream to a blob. + + The stream providing the blob content. + The number of bytes to write from the source stream at its current position. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Uploads a file to the Windows Azure Blob Service. + + The file providing the blob content. + A constant that determines how to open the file. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to upload a file to a blob. + + The file providing the blob content. + A constant that determines how to open the file. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to upload a file to a blob. + + The file providing the blob content. + A constant that determines how to open the file. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to upload a file to a blob. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to upload a file to a blob. + + The file providing the blob content. + A constant that determines how to open the file. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a file to a blob. + + The file providing the blob content. + A constant that determines how to open the file. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a file to a blob. + + The file providing the blob content. + A constant that determines how to open the file. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a file to a blob. + + The file providing the blob content. + A constant that determines how to open the file. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Uploads the contents of a byte array to a blob. + + An array of bytes. + The zero-based byte offset in buffer at which to begin uploading bytes to the blob. + The number of bytes to be written to the blob. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to upload the contents of a byte array to a blob. + + An array of bytes. + The zero-based byte offset in buffer at which to begin uploading bytes to the blob. + The number of bytes to be written to the blob. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to upload the contents of a byte array to a blob. + + An array of bytes. + The zero-based byte offset in buffer at which to begin uploading bytes to the blob. + The number of bytes to be written to the blob. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to upload the contents of a byte array to a blob. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to upload the contents of a byte array to a blob. + + An array of bytes. + The zero-based byte offset in buffer at which to begin uploading bytes to the blob. + The number of bytes to be written to the blob. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload the contents of a byte array to a blob. + + An array of bytes. + The zero-based byte offset in buffer at which to begin uploading bytes to the blob. + The number of bytes to be written to the blob. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload the contents of a byte array to a blob. + + An array of bytes. + The zero-based byte offset in buffer at which to begin uploading bytes to the blob. + The number of bytes to be written to the blob. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload the contents of a byte array to a blob. + + An array of bytes. + The zero-based byte offset in buffer at which to begin uploading bytes to the blob. + The number of bytes to be written to the blob. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Downloads the contents of a blob to a stream. + + The target stream. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to download the contents of a blob to a stream. + + The target stream. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to download the contents of a blob to a stream. + + The target stream. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to download the contents of a blob to a stream. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a stream. + + The target stream. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a stream. + + The target stream. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a stream. + + The target stream. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a stream. + + The target stream. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Downloads the contents of a blob to a file. + + The target file. + A constant that determines how to open or create the file. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to download the contents of a blob to a file. + + The target file. + A constant that determines how to open or create the file. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to download the contents of a blob to a file. + + The target file. + A constant that determines how to open or create the file. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to download the contents of a blob to a file. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a file. + + The target file. + A constant that determines how to open or create the file. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a file. + + The target file. + A constant that determines how to open or create the file. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a file. + + The target file. + A constant that determines how to open or create the file. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a file. + + The target file. + A constant that determines how to open or create the file. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Downloads the contents of a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The total number of bytes read into the buffer. + + + + Begins an asynchronous operation to download the contents of a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to download the contents of a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to download the contents of a blob to a byte array. + + An that references the pending asynchronous operation. + The total number of bytes read into the buffer. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Downloads a range of bytes from a blob to a stream. + + The target stream. + The starting offset of the data range, in bytes. + The length of the data range, in bytes. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to download a range of bytes from a blob to a stream. + + The target stream. + The starting offset of the data range, in bytes. + The length of the data range, in bytes. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to download a range of bytes from a blob to a stream. + + The target stream. + The starting offset of the data range, in bytes. + The length of the data range, in bytes. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to download a range of bytes from a blob to a stream. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to download a range of bytes from a blob to a stream. + + The target stream. + The starting offset of the data range, in bytes. + The length of the data range, in bytes. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download a range of bytes from a blob to a stream. + + The target stream. + The starting offset of the data range, in bytes. + The length of the data range, in bytes. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download a range of bytes from a blob to a stream. + + The target stream. + The starting offset of the data range, in bytes. + The length of the data range, in bytes. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download a range of bytes from a blob to a stream. + + The target stream. + The starting offset of the data range, in bytes. + The length of the data range, in bytes. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Downloads a range of bytes from a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + The starting offset of the data range, in bytes. + The length of the data range, in bytes. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The total number of bytes read into the buffer. + + + + Begins an asynchronous operation to download a range of bytes from a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + The starting offset of the data range, in bytes. + The length of the data range, in bytes. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to download a range of bytes from a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + The starting offset of the data range, in bytes. + The length of the data range, in bytes. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to download a range of bytes from a blob to a byte array. + + An that references the pending asynchronous operation. + The total number of bytes read into the buffer. + + + + Returns a task that performs an asynchronous operation to download a range of bytes from a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + The starting offset of the data range, in bytes. + The length of the data range, in bytes. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download a range of bytes from a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + The starting offset of the data range, in bytes. + The length of the data range, in bytes. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download a range of bytes from a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + The starting offset of the data range, in bytes. + The length of the data range, in bytes. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download a range of bytes from a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + The starting offset of the data range, in bytes. + The length of the data range, in bytes. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Checks existence of the blob. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + true if the blob exists. + + + + Begins an asynchronous request to check existence of the blob. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous request to check existence of the blob. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Returns the asynchronous result of the request to check existence of the blob. + + An that references the pending asynchronous operation. + true if the blob exists. + + + + Returns a task that performs an asynchronous request to check existence of the blob. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to check existence of the blob. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to check existence of the blob. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to check existence of the blob. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Populates a blob's properties and metadata. + + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to populate the blob's properties and metadata. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to populate the blob's properties and metadata. + + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to populate the blob's properties and metadata. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to populate the blob's properties and metadata. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to populate the blob's properties and metadata. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to populate the blob's properties and metadata. + + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to populate the blob's properties and metadata. + + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Updates the blob's metadata. + + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to update the blob's metadata. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to update the blob's metadata. + + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to update the blob's metadata. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to update the blob's metadata. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to update the blob's metadata. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to update the blob's metadata. + + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to update the blob's metadata. + + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Updates the blob's properties. + + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to update the blob's properties. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to update the blob's properties. + + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to update the blob's properties. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to update the blob's properties. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to update the blob's properties. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to update the blob's properties. + + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to update the blob's properties. + + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Deletes the blob. + + Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to delete the blob. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to delete the blob. + + Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to delete the blob. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to delete the blob. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to delete the blob. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to delete the blob. + + Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to delete the blob. + + Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Deletes the blob if it already exists. + + Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots. + An object that represents the access conditions for the container. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + true if the blob did not already exist and was created; otherwise false. + + + + Begins an asynchronous request to delete the blob if it already exists. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous request to delete the blob if it already exists. + + Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots. + An object that represents the access conditions for the container. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Returns the result of an asynchronous request to delete the blob if it already exists. + + An that references the pending asynchronous operation. + true if the blob did not already exist and was created; otherwise, false. + + + + Returns a task that performs an asynchronous request to delete the blob if it already exists. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to delete the blob if it already exists. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to delete the blob if it already exists. + + Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots. + An object that represents the access conditions for the container. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to delete the blob if it already exists. + + Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots. + An object that represents the access conditions for the container. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Acquires a lease on this blob. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. + A string representing the proposed lease ID for the new lease. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The ID of the acquired lease. + + + + Begins an asynchronous operation to acquire a lease on this blob. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. + A string representing the proposed lease ID for the new lease. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to acquire a lease on this blob. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. + A string representing the proposed lease ID for the new lease. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to acquire a lease on this blob. + + An IAsyncResult that references the pending asynchronous operation. + The ID of the acquired lease. + + + + Returns a task that performs an asynchronous operation to acquire a lease on this blob. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. + A string representing the proposed lease ID for the new lease. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to acquire a lease on this blob. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. + A string representing the proposed lease ID for the new lease. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to acquire a lease on this blob. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. + A string representing the proposed lease ID for the new lease. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to acquire a lease on this blob. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. + A string representing the proposed lease ID for the new lease. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Renews a lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to renew a lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to renew a lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to renew a lease on this blob. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to renew a lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to renew a lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to renew a lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to renew a lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Changes the lease ID on this blob. + + A string representing the proposed lease ID for the new lease. + An object that represents the access conditions for the blob, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The new lease ID. + + + + Begins an asynchronous operation to change the lease on this blob. + + A string representing the proposed lease ID for the new lease. + An object that represents the access conditions for the blob, including a required lease ID. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to change the lease on this blob. + + A string representing the proposed lease ID for the new lease. + An object that represents the access conditions for the blob, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to change the lease on this blob. + + An that references the pending asynchronous operation. + The new lease ID. + + + + Returns a task that performs an asynchronous operation to change the lease on this blob. + + A string representing the proposed lease ID for the new lease. + An object that represents the access conditions for the blob, including a required lease ID. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to change the lease on this blob. + + A string representing the proposed lease ID for the new lease. + An object that represents the access conditions for the blob, including a required lease ID. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to change the lease on this blob. + + A string representing the proposed lease ID for the new lease. + An object that represents the access conditions for the blob, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to change the lease on this blob. + + A string representing the proposed lease ID for the new lease. + An object that represents the access conditions for the blob, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Releases the lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to release the lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to release the lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to release the lease on this blob. + + An IAsyncResult that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to release the lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to release the lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to release the lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to release the lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Breaks the current lease on this blob. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A representing the amount of time before the lease ends, to the second. + + + + Begins an asynchronous operation to break the current lease on this blob. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to break the current lease on this blob. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to break the current lease on this blob. + + An IAsyncResult that references the pending asynchronous operation. + A representing the amount of time before the lease ends, to the second. + + + + Returns a task that performs an asynchronous operation to break the current lease on this blob. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to break the current lease on this blob. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to break the current lease on this blob. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to break the current lease on this blob. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Requests that the service start to copy a blob's contents, properties, and metadata to a new blob. + + The URI of a source blob. + An object that represents the access conditions for the source blob. + An object that represents the access conditions for the destination blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The copy ID associated with the copy operation. + + + + Begins an asynchronous operation to request that the service start to copy a blob's contents, properties, and metadata to a new blob. + + The URI of a source blob. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to request that the service start to copy another blob's contents, properties, and metadata + to the blob referenced by this object. + + The URI of a source blob. + An object that represents the access conditions for the source blob. + An object that represents the access conditions for the destination blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to request that the service start to copy a blob's contents, properties, and metadata to a new blob. + + An that references the pending asynchronous operation. + The copy ID associated with the copy operation. + + + + Returns a task that performs an asynchronous operation to request that the service start to copy another blob's contents, properties, and metadata + to the blob referenced by this object. + + The URI of a source blob. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to request that the service start to copy another blob's contents, properties, and metadata + to the blob referenced by this object. + + The URI of a source blob. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to request that the service start to copy another blob's contents, properties, and metadata + to the blob referenced by this object. + + The URI of a source blob. + An object that represents the access conditions for the source blob. + An object that represents the access conditions for the destination blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to request that the service start to copy another blob's contents, properties, and metadata + to the blob referenced by this object. + + The URI of a source blob. + An object that represents the access conditions for the source blob. + An object that represents the access conditions for the destination blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Aborts an ongoing blob copy operation. + + A string identifying the copy operation. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to abort an ongoing blob copy operation. + + A string identifying the copy operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to abort an ongoing blob copy operation. + + A string identifying the copy operation. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to abort an ongoing blob copy operation. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to abort an ongoing blob copy operation. + + A string identifying the copy operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to abort an ongoing blob copy operation. + + A string identifying the copy operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to abort an ongoing blob copy operation. + + A string identifying the copy operation. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to abort an ongoing blob copy operation. + + A string identifying the copy operation. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a shared access signature for the blob. + + The access policy for the shared access signature. + A shared access signature, as a URI query string. + The query string returned includes the leading question mark. + + + + Returns a shared access signature for the blob. + + The access policy for the shared access signature. + A container-level access policy. + A shared access signature, as a URI query string. + The query string returned includes the leading question mark. + + + + Returns a shared access signature for the blob. + + The access policy for the shared access signature. + The optional header values to set for a blob accessed with this SAS. + A shared access signature. + + + + Returns a shared access signature for the blob. + + The access policy for the shared access signature. + The optional header values to set for a blob returned with this SAS. + A stored access policy. + A shared access signature. + + + + Gets the blob item's name. + + The blob item's name. + + + + Gets the object that represents the Blob service. + + A client object that specifies the Blob service endpoint. + + + + Gets or sets the number of bytes to buffer when writing to a page blob stream or + the block size for writing to a block blob. + + The number of bytes to buffer or the size of a block, in bytes. + + + + Gets or sets the minimum number of bytes to buffer when reading from a blob stream. + + The minimum number of bytes to buffer. + + + + Gets the blob's system properties. + + The blob's properties. + + + + Gets the user-defined metadata for the blob. + + The blob's metadata, as a collection of name-value pairs. + + + + Gets the date and time that the blob snapshot was taken, if this blob is a snapshot. + + The blob's snapshot time if the blob is a snapshot; otherwise, null. + + If the blob is not a snapshot, the value of this property is null. + + + + + Gets a value indicating whether this blob is a snapshot. + + true if this blob is a snapshot; otherwise, false. + + + + Gets the absolute URI to the blob, including query string information if the blob is a snapshot, at the primary location. + + The absolute URI to the blob, including snapshot query information if the blob is a snapshot, at the primary location. + + + + Gets the blob's URI for all locations, including query string information if the blob is a snapshot. + + An object of type containing the blob's URIs for all locations, + including snapshot query information if the blob is a snapshot. + + + + Gets the state of the most recent or pending copy operation. + + A object containing the copy state, or null if no copy blob state exists for this blob. + + + + Gets the type of the blob. + + The type of the blob. + + + + Opens a stream for reading from the blob. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A stream to be used for reading from the blob. + On the object returned by this method, the method must be called exactly once for every call. Failing to end a read process before beginning another read can cause unknown behavior. + + + + Begins an asynchronous operation to open a stream for reading from the blob. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to open a stream for reading from the blob. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to open a stream for reading from the blob. + + An that references the pending asynchronous operation. + A stream to be used for reading from the blob. + + + + Returns a task that performs an asynchronous operation to open a stream for reading from the blob. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to open a stream for reading from the blob. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to open a stream for reading from the blob. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to open a stream for reading from the blob. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Opens a stream for writing to the blob. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A stream to be used for writing to the blob. + + + + Begins an asynchronous operation to open a stream for writing to the blob. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to open a stream for writing to the blob. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to open a stream for writing to the blob. + + An that references the pending asynchronous operation. + A stream to be used for writing to the blob. + + + + Returns a task that performs an asynchronous operation to open a stream for writing to the blob. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to open a stream for writing to the blob. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to open a stream for writing to the blob. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to open a stream for writing to the blob. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Uploads a stream to a block blob. + + The stream providing the blob content. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Uploads a stream to a block blob. + + The stream providing the blob content. + The number of bytes to write from the source stream at its current position. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Uploads a stream to a block blob. + + The stream providing the blob content. + The number of bytes to write from the source stream at its current position. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to upload a stream to a block blob. + + The stream providing the blob content. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to upload a stream to a block blob. + + The stream providing the blob content. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to upload a stream to a block blob. + + The stream providing the blob content. + The number of bytes to write from the source stream at its current position. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to upload a stream to a block blob. + + The stream providing the blob content. + The number of bytes to write from the source stream at its current position. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to upload a stream to a block blob. + + The stream providing the blob content. + The number of bytes to write from the source stream at its current position. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to upload a stream to a block blob. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to upload a stream to a block blob. + + The stream providing the blob content. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a stream to a block blob. + + The stream providing the blob content. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a stream to a block blob. + + The stream providing the blob content. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a stream to a block blob. + + The stream providing the blob content. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a stream to a block blob. + + The stream providing the blob content. + The number of bytes to write from the source stream at its current position. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a stream to a block blob. + + The stream providing the blob content. + The number of bytes to write from the source stream at its current position. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a stream to a block blob. + + The stream providing the blob content. + The number of bytes to write from the source stream at its current position. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a stream to a block blob. + + The stream providing the blob content. + The number of bytes to write from the source stream at its current position. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Uploads a file to the Blob service. + + The file providing the blob content. + A constant that determines how to open the file. + An object that represents the access conditions for the blob. + An object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to upload a file to a blob. + + The file providing the blob content. + A constant that determines how to open the file. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to upload a file to a blob. + + The file providing the blob content. + A constant that determines how to open the file. + An object that represents the access conditions for the blob. + An object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Called when the asynchronous UploadFromStream operation completes. + + The result of the asynchronous operation. + + + + Ends an asynchronous operation to upload a file to a blob. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to upload a file to a blob. + + The file providing the blob content. + A constant that determines how to open the file. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a file to a blob. + + The file providing the blob content. + A constant that determines how to open the file. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a file to a blob. + + The file providing the blob content. + A constant that determines how to open the file. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a file to a blob. + + The file providing the blob content. + A constant that determines how to open the file. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Uploads the contents of a byte array to a blob. + + An array of bytes. + The zero-based byte offset in buffer at which to begin uploading bytes to the blob. + The number of bytes to be written to the blob. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to upload the contents of a byte array to a blob. + + An array of bytes. + The zero-based byte offset in buffer at which to begin uploading bytes to the blob. + The number of bytes to be written to the blob. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to upload the contents of a byte array to a blob. + + An array of bytes. + The zero-based byte offset in buffer at which to begin uploading bytes to the blob. + The number of bytes to be written to the blob. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to upload the contents of a byte array to a blob. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to upload the contents of a byte array to a blob. + + An array of bytes. + The zero-based byte offset in buffer at which to begin uploading bytes to the blob. + The number of bytes to be written to the blob. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload the contents of a byte array to a blob. + + An array of bytes. + The zero-based byte offset in buffer at which to begin uploading bytes to the blob. + The number of bytes to be written to the blob. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload the contents of a byte array to a blob. + + An array of bytes. + The zero-based byte offset in buffer at which to begin uploading bytes to the blob. + The number of bytes to be written to the blob. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload the contents of a byte array to a blob. + + An array of bytes. + The zero-based byte offset in buffer at which to begin uploading bytes to the blob. + The number of bytes to be written to the blob. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Uploads a string of text to a blob. + + The text to upload. + An object that indicates the text encoding to use. If null, UTF-8 will be used. + An object that represents the access conditions for the blob. + An object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to upload a string of text to a blob. + + The text to upload. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to upload a string of text to a blob. + + The text to upload. + An object that indicates the text encoding to use. If null, UTF-8 will be used. + An object that represents the access conditions for the blob. + An object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to upload a string of text to a blob. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to upload a string of text to a blob. + + The text to upload. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a string of text to a blob. + + The text to upload. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a string of text to a blob. + + The text to upload. + An object that indicates the text encoding to use. If null, UTF-8 will be used. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a string of text to a blob. + + The text to upload. + An object that indicates the text encoding to use. If null, UTF-8 will be used. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Downloads the contents of a blob to a stream. + + The target stream. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to download the contents of a blob to a stream. + + The target stream. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to download the contents of a blob to a stream. + + The target stream. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to download the contents of a blob to a stream. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a stream. + + The target stream. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a stream. + + The target stream. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a stream. + + The target stream. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a stream. + + The target stream. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Downloads the contents of a blob to a file. + + The target file. + A constant that determines how to open or create the file. + An object that represents the access conditions for the blob. + An object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to download the contents of a blob to a file. + + The target file. + A constant that determines how to open or create the file. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to download the contents of a blob to a file. + + The target file. + A constant that determines how to open or create the file. + An object that represents the access conditions for the blob. + An object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Called when the asynchronous DownloadToStream operation completes. + + The result of the asynchronous operation. + + + + Ends an asynchronous operation to download the contents of a blob to a file. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a file. + + The target file. + A constant that determines how to open or create the file. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a file. + + The target file. + A constant that determines how to open or create the file. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a file. + + The target file. + A constant that determines how to open or create the file. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a file. + + The target file. + A constant that determines how to open or create the file. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Downloads the contents of a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The total number of bytes read into the buffer. + + + + Begins an asynchronous operation to download the contents of a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to download the contents of a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to download the contents of a blob to a byte array. + + An that references the pending asynchronous operation. + The total number of bytes read into the buffer. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Downloads the blob's contents as a string. + + An object that indicates the text encoding to use. + An object that represents the access conditions for the blob. + An object that specifies additional options for the request. + An object that represents the context for the current operation. + The contents of the blob, as a string. + + + + Begins an asynchronous operation to download the blob's contents as a string. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to download the blob's contents as a string. + + An object that indicates the text encoding to use. + An object that represents the access conditions for the blob. + An object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Called when the asynchronous DownloadToStream operation completes. + + The result of the asynchronous operation. + + + + Ends an asynchronous operation to download the blob's contents as a string. + + An that references the pending asynchronous operation. + The contents of the blob, as a string. + + + + Returns a task that performs an asynchronous operation to download the blob's contents as a string. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the blob's contents as a string. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the blob's contents as a string. + + An object that indicates the text encoding to use. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the blob's contents as a string. + + An object that indicates the text encoding to use. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Downloads a range of bytes from a blob to a stream. + + The target stream. + The offset at which to begin downloading the blob, in bytes. + The length of the data to download from the blob, in bytes. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to download a range of bytes from a blob to a stream. + + The target stream. + The offset at which to begin downloading the blob, in bytes. + The length of the data to download from the blob, in bytes. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to download a range of bytes from a blob to a stream. + + The target stream. + The offset at which to begin downloading the blob, in bytes. + The length of the data to download from the blob, in bytes. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to download a range of bytes from a blob to a stream. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to download a range of bytes from a blob to a stream. + + The target stream. + The offset at which to begin downloading the blob, in bytes. + The length of the data to download from the blob, in bytes. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download a range of bytes from a blob to a stream. + + The target stream. + The offset at which to begin downloading the blob, in bytes. + The length of the data to download from the blob, in bytes. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download a range of bytes from a blob to a stream. + + The target stream. + The offset at which to begin downloading the blob, in bytes. + The length of the data to download from the blob, in bytes. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download a range of bytes from a blob to a stream. + + The target stream. + The offset at which to begin downloading the blob, in bytes. + The length of the data to download from the blob, in bytes. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Downloads a range of bytes from a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + The starting offset of the data range, in bytes. + The length of the data to download from the blob, in bytes. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The total number of bytes read into the buffer. + + + + Begins an asynchronous operation to download a range of bytes from a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + The starting offset of the data range, in bytes. + The length of the data to download from the blob, in bytes. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to download a range of bytes from a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + The starting offset of the data range, in bytes. + The length of the data to download from the blob, in bytes. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Called when the asynchronous DownloadRangeToStream operation completes. + + The result of the asynchronous operation. + + + + Ends an asynchronous operation to download a range of bytes from a blob to a byte array. + + An that references the pending asynchronous operation. + The total number of bytes read into the buffer. + + + + Returns a task that performs an asynchronous operation to download a range of bytes from a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + The starting offset of the data range, in bytes. + The length of the data to download from the blob, in bytes. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download a range of bytes from a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + The starting offset of the data range, in bytes. + The length of the data to download from the blob, in bytes. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download a range of bytes from a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + The starting offset of the data range, in bytes. + The length of the data to download from the blob, in bytes. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download a range of bytes from a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + The starting offset of the data range, in bytes. + The length of the data to download from the blob, in bytes. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Checks existence of the blob. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + true if the blob exists. + + + + Checks existence of the blob. + + If true, the command will be executed against the primary location. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + true if the blob exists. + + + + Begins an asynchronous request to check existence of the blob. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous request to check existence of the blob. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous request to check existence of the blob. + + If true, the command will be executed against the primary location. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Returns the asynchronous result of the request to check existence of the blob. + + An that references the pending asynchronous operation. + true if the blob exists. + + + + Returns a task that performs an asynchronous request to check existence of the blob. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to check existence of the blob. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to check existence of the blob. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to check existence of the blob. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Populates a blob's properties and metadata. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to populate the blob's properties and metadata. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to populate the blob's properties and metadata. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to populate the blob's properties and metadata. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to populate the blob's properties and metadata. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to populate the blob's properties and metadata. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to populate the blob's properties and metadata. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to populate the blob's properties and metadata. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Updates the blob's metadata. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to update the blob's metadata. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to update the blob's metadata. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to update the blob's metadata. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to update the blob's metadata. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to update the blob's metadata. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to update the blob's metadata. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to update the blob's metadata. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Updates the blob's properties. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to update the blob's properties. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to update the blob's properties. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to update the blob's properties. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to update the blob's properties. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to update the blob's properties. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to update the blob's properties. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to update the blob's properties. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Deletes the blob. + + Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to delete the blob. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to delete the blob. + + Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to delete the blob. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to delete the blob. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to delete the blob. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to delete the blob. + + Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to delete the blob. + + Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Deletes the blob if it already exists. + + Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots. + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + true if the blob did already exist and was deleted; otherwise false. + + + + Begins an asynchronous request to delete the blob if it already exists. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous request to delete the blob if it already exists. + + Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots. + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Returns the result of an asynchronous request to delete the blob if it already exists. + + An that references the pending asynchronous operation. + true if the blob did already exist and was deleted; otherwise, false. + + + + Returns a task that performs an asynchronous request to delete the blob if it already exists. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to delete the blob if it already exists. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to delete the blob if it already exists. + + Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots. + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to delete the blob if it already exists. + + Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots. + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Creates a snapshot of the blob. + + A collection of name-value pairs defining the metadata of the snapshot. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request, or null. + An object that represents the context for the current operation. + A blob snapshot. + + + + Begins an asynchronous operation to create a snapshot of the blob. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to create a snapshot of the blob. + + A collection of name-value pairs defining the metadata of the snapshot. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request, or null. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to create a snapshot of the blob. + + An that references the pending asynchronous operation. + A blob snapshot. + + + + Returns a task that performs an asynchronous operation to create a snapshot of the blob. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to create a snapshot of the blob. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to create a snapshot of the blob. + + A collection of name-value pairs defining the metadata of the snapshot. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to create a snapshot of the blob. + + A collection of name-value pairs defining the metadata of the snapshot. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Acquires a lease on this blob. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. If null, an infinite lease will be acquired. If not null, this must be + greater than zero. + A string representing the proposed lease ID for the new lease, or null if no lease ID is proposed. + An object that represents the access conditions for the blob. If null, no condition is used. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + The ID of the acquired lease. + + + + Begins an asynchronous operation to acquire a lease on this blob. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. If null, an infinite lease will be acquired. If not null, this must be + greater than zero. + A string representing the proposed lease ID for the new lease, or null if no lease ID is proposed. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to acquire a lease on this blob. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. If null, an infinite lease will be acquired. If not null, this must be + greater than zero. + A string representing the proposed lease ID for the new lease, or null if no lease ID is proposed. + An object that represents the access conditions for the blob. If null, no condition is used. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to acquire a lease on this blob. + + An IAsyncResult that references the pending asynchronous operation. + The ID of the acquired lease. + + + + Returns a task that performs an asynchronous operation to acquire a lease on this blob. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. If null, an infinite lease will be acquired. If not null, this must be + greater than zero. + A string representing the proposed lease ID for the new lease, or null if no lease ID is proposed. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to acquire a lease on this blob. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. If null, an infinite lease will be acquired. If not null, this must be + greater than zero. + A string representing the proposed lease ID for the new lease, or null if no lease ID is proposed. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to acquire a lease on this blob. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. If null, an infinite lease will be acquired. If not null, this must be + greater than zero. + A string representing the proposed lease ID for the new lease, or null if no lease ID is proposed. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to acquire a lease on this blob. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. If null, an infinite lease will be acquired. If not null, this must be + greater than zero. + A string representing the proposed lease ID for the new lease, or null if no lease ID is proposed. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Renews a lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to renew a lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to renew a lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to renew a lease on this blob. + + An IAsyncResult that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to renew a lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to renew a lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to renew a lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to renew a lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Changes the lease ID on this blob. + + A string representing the proposed lease ID for the new lease. This cannot be null. + An object that represents the access conditions for the blob, including a required lease ID. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + The new lease ID. + + + + Begins an asynchronous operation to change the lease on this blob. + + A string representing the proposed lease ID for the new lease. This cannot be null. + An object that represents the access conditions for the blob, including a required lease ID. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to change the lease on this blob. + + A string representing the proposed lease ID for the new lease. This cannot be null. + An object that represents the access conditions for the blob, including a required lease ID. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to change the lease on this blob. + + An IAsyncResult that references the pending asynchronous operation. + The new lease ID. + + + + Returns a task that performs an asynchronous operation to change the lease on this blob. + + A string representing the proposed lease ID for the new lease. This cannot be null. + An object that represents the access conditions for the blob, including a required lease ID. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to change the lease on this blob. + + A string representing the proposed lease ID for the new lease. This cannot be null. + An object that represents the access conditions for the blob, including a required lease ID. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to change the lease on this blob. + + A string representing the proposed lease ID for the new lease. This cannot be null. + An object that represents the access conditions for the blob, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to change the lease on this blob. + + A string representing the proposed lease ID for the new lease. This cannot be null. + An object that represents the access conditions for the blob, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Releases the lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to release the lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to release the lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to release the lease on this blob. + + An IAsyncResult that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to release the lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to release the lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to release the lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to release the lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Breaks the current lease on this blob. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. If null, the break period is the remainder of the current lease, + or zero for infinite leases. + An object that represents the access conditions for the blob. If null, no condition is used. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + A representing the amount of time before the lease ends, to the second. + + + + Begins an asynchronous operation to break the current lease on this blob. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. If null, the break period is the remainder of the current lease, + or zero for infinite leases. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to break the current lease on this blob. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. If null, the break period is the remainder of the current lease, + or zero for infinite leases. + An object that represents the access conditions for the blob. If null, no condition is used. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to break the current lease on this blob. + + An IAsyncResult that references the pending asynchronous operation. + A representing the amount of time before the lease ends, to the second. + + + + Returns a task that performs an asynchronous operation to break the current lease on this blob. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. If null, the break period is the remainder of the current lease, + or zero for infinite leases. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to break the current lease on this blob. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. If null, the break period is the remainder of the current lease, + or zero for infinite leases. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to break the current lease on this blob. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. If null, the break period is the remainder of the current lease, + or zero for infinite leases. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to break the current lease on this blob. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. If null, the break period is the remainder of the current lease, + or zero for infinite leases. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Uploads a single block. + + A base64-encoded block ID that identifies the block. + A stream that provides the data for the block. + An optional hash value that will be used to set the property + on the blob. May be null or an empty string. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to upload a single block. + + A base64-encoded block ID that identifies the block. + A stream that provides the data for the block. + An optional hash value that will be used to set the property + on the blob. May be null or an empty string. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to upload a single block. + + A base64-encoded block ID that identifies the block. + A stream that provides the data for the block. + An optional hash value that will be used to set the property + on the blob. May be null or an empty string. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to upload a single block. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to upload a single block. + + A base64-encoded block ID that identifies the block. + A stream that provides the data for the block. + An optional hash value that will be used to set the property + on the blob. May be null or an empty string. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a single block. + + A base64-encoded block ID that identifies the block. + A stream that provides the data for the block. + An optional hash value that will be used to set the property + on the blob. May be null or an empty string. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a single block. + + A base64-encoded block ID that identifies the block. + A stream that provides the data for the block. + An optional hash value that will be used to set the property + on the blob. May be null or an empty string. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a single block. + + A base64-encoded block ID that identifies the block. + A stream that provides the data for the block. + An optional hash value that will be used to set the property + on the blob. May be null or an empty string. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Uploads a list of blocks to a new or existing blob. + + An enumerable collection of block IDs, as base64-encoded strings. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to upload a list of blocks to a new or existing blob. + + An enumerable collection of block IDs, as base64-encoded strings. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to upload a list of blocks to a new or existing blob. + + An enumerable collection of block IDs, as base64-encoded strings. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to upload a list of blocks to a new or existing blob. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to upload a list of blocks to a new or existing blob. + + An enumerable collection of block IDs, as base64-encoded strings. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a list of blocks to a new or existing blob. + + An enumerable collection of block IDs, as base64-encoded strings. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a list of blocks to a new or existing blob. + + An enumerable collection of block IDs, as base64-encoded strings. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a list of blocks to a new or existing blob. + + An enumerable collection of block IDs, as base64-encoded strings. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns an enumerable collection of the blob's blocks, using the specified block list filter. + + One of the enumeration values that indicates whether to return + committed blocks, uncommitted blocks, or both. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + An enumerable collection of objects implementing . + + + + Begins an asynchronous operation to return an enumerable collection of the blob's blocks, + using the specified block list filter. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to return an enumerable collection of the blob's blocks, + using the specified block list filter. + + One of the enumeration values that indicates whether to return + committed blocks, uncommitted blocks, or both. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to return an enumerable collection of the blob's blocks, + using the specified block list filter. + + An that references the pending asynchronous operation. + An enumerable collection of objects implementing . + + + + Returns a task that performs an asynchronous operation to return an enumerable collection of the blob's blocks, + using the specified block list filter. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to return an enumerable collection of the blob's blocks, + using the specified block list filter. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to return an enumerable collection of the blob's blocks, + using the specified block list filter. + + One of the enumeration values that indicates whether to return + committed blocks, uncommitted blocks, or both. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to return an enumerable collection of the blob's blocks, + using the specified block list filter. + + One of the enumeration values that indicates whether to return + committed blocks, uncommitted blocks, or both. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Requests that the service start to copy a blob's contents, properties, and metadata to a new blob. + + The URI of a source blob. + An object that represents the access conditions for the source blob. If null, no condition is used. + An object that represents the access conditions for the destination blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The copy ID associated with the copy operation. + + This method fetches the blob's ETag, last modified time, and part of the copy state. + The copy ID and copy status fields are fetched, and the rest of the copy state is cleared. + + + + + Requests that the service start to copy a blob's contents, properties, and metadata to a new blob. + + The URI of a source blob. + An object that represents the access conditions for the source blob. If null, no condition is used. + An object that represents the access conditions for the destination blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The copy ID associated with the copy operation. + + This method fetches the blob's ETag, last modified time, and part of the copy state. + The copy ID and copy status fields are fetched, and the rest of the copy state is cleared. + + + + + Begins an asynchronous operation to request that the service start to copy a blob's contents, properties, and metadata to a new blob. + + The URI of a source blob. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to request that the service start to copy a blob's contents, properties, and metadata to a new blob. + + The source blob. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to request that the service start to copy another blob's contents, properties, and metadata + to the blob referenced by this object. + + The URI of a source blob. + An object that represents the access conditions for the source blob. If null, no condition is used. + An object that represents the access conditions for the destination blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to request that the service start to copy another blob's contents, properties, and metadata + to the blob referenced by this object. + + The source blob. + An object that represents the access conditions for the source blob. If null, no condition is used. + An object that represents the access conditions for the destination blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to request that the service start to copy a blob's contents, properties, and metadata to a new blob. + + An that references the pending asynchronous operation. + The copy ID associated with the copy operation. + + This method fetches the blob's ETag, last modified time, and part of the copy state. + The copy ID and copy status fields are fetched, and the rest of the copy state is cleared. + + + + + Returns a task that performs an asynchronous operation to request that the service start to copy another blob's contents, properties, and metadata + to the blob referenced by this object. + + The URI of a source blob. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to request that the service start to copy another blob's contents, properties, and metadata + to the blob referenced by this object. + + The URI of a source blob. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to request that the service start to copy another blob's contents, properties, and metadata + to the blob referenced by this object. + + The source blob. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to request that the service start to copy another blob's contents, properties, and metadata + to the blob referenced by this object. + + The source blob. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to request that the service start to copy another blob's contents, properties, and metadata + to the blob referenced by this object. + + The URI of a source blob. + An object that represents the access conditions for the source blob. If null, no condition is used. + An object that represents the access conditions for the destination blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to request that the service start to copy another blob's contents, properties, and metadata + to the blob referenced by this object. + + The URI of a source blob. + An object that represents the access conditions for the source blob. If null, no condition is used. + An object that represents the access conditions for the destination blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to request that the service start to copy another blob's contents, properties, and metadata + to the blob referenced by this object. + + The source blob. + An object that represents the access conditions for the source blob. If null, no condition is used. + An object that represents the access conditions for the destination blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to request that the service start to copy another blob's contents, properties, and metadata + to the blob referenced by this object. + + The source blob. + An object that represents the access conditions for the source blob. If null, no condition is used. + An object that represents the access conditions for the destination blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Aborts an ongoing blob copy operation. + + A string identifying the copy operation. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to abort an ongoing blob copy operation. + + A string identifying the copy operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to abort an ongoing blob copy operation. + + A string identifying the copy operation. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to abort an ongoing blob copy operation. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to abort an ongoing blob copy operation. + + A string identifying the copy operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to abort an ongoing blob copy operation. + + A string identifying the copy operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to abort an ongoing blob copy operation. + + A string identifying the copy operation. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to abort an ongoing blob copy operation. + + A string identifying the copy operation. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Implementation for the CreateSnapshot method. + + A collection of name-value pairs defining the metadata of the snapshot, or null. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + A that creates the snapshot. + If the metadata parameter is null then no metadata is associated with the request. + + + + Uploads the full blob from a seekable stream. + + The content stream. Must be seekable. + Number of bytes to upload from the content stream starting at its current position. + The content MD5. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + A that gets the stream. + + + + Uploads the block. + + The source stream. + The block ID. + The content MD5. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + A that uploads the block. + + + + Uploads the block list. + + The blocks to upload. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + A that uploads the block list. + + + + Gets the download block list. + + The types of blocks. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + A that gets the download block list. + + + + Default is 4 MB. + + + + + Default is 4 MB. + + + + + Initializes a new instance of the class using an absolute URI to the blob. + + The absolute URI to the blob. + + + + Initializes a new instance of the class using an absolute URI to the blob. + + The absolute URI to the blob. + The account credentials. + + + + Initializes a new instance of the class using an absolute URI to the blob. + + The absolute URI to the blob. + The snapshot timestamp, if the blob is a snapshot. + The account credentials. + + + + Initializes a new instance of the class using an absolute URI to the blob. + + The absolute URI to the blob. + The snapshot timestamp, if the blob is a snapshot. + The account credentials. + + + + Initializes a new instance of the class using the specified blob name and + the parent container reference. + If snapshotTime is not null, the blob instance represents a Snapshot. + + Name of the blob. + Snapshot time in case the blob is a snapshot. + The reference to the parent container. + + + + Initializes a new instance of the class. + + The attributes. + The service client. + + + + Stores the that contains this blob. + + + + + Stores the blob's parent . + + + + + Stores the blob's attributes. + + + + + Returns a shared access signature for the blob. + + The access policy for the shared access signature. + A shared access signature, as a URI query string. + The query string returned includes the leading question mark. + + + + Returns a shared access signature for the blob. + + The access policy for the shared access signature. + A stored access policy. + A shared access signature, as a URI query string. + The query string returned includes the leading question mark. + + + + Returns a shared access signature for the blob. + + The access policy for the shared access signature. + The optional header values to set for a blob accessed with this SAS. + A shared access signature. + + + + Returns a shared access signature for the blob. + + The access policy for the shared access signature. + The optional header values to set for a blob returned with this SAS. + A stored access policy. + A shared access signature. + + + + Gets the canonical name of the blob, formatted as /<account-name>/<container-name>/<blob-name>. + If ignoreSnapshotTime is false and this blob is a snapshot, the canonical name is augmented with a + query of the form ?snapshot=<snapshot-time>. + This is used by both Shared Access and Copy blob operations. + + Indicates if the snapshot time is ignored. + The canonical name of the blob. + + + + Parse URI for SAS (Shared Access Signature) and snapshot information. + + The complete Uri. + The credentials to use. + + + + Gets the object that represents the Blob service. + + A client object that specifies the Blob service endpoint. + + + + Gets or sets the block size for writing to a block blob. + + The size of a block, in bytes, ranging from between 16 KB and 4 MB inclusive. + + + + Gets or sets the minimum number of bytes to buffer when reading from a blob stream. + + The minimum number of bytes to buffer, being at least 16KB. + + + + Gets the blob's system properties. + + The blob's properties. + + + + Gets the user-defined metadata for the blob. + + The blob's metadata, as a collection of name-value pairs. + + + + Gets the blob's URI for the primary location. + + The absolute URI to the blob, at the primary location. + + + + Gets the block blob's URIs for all locations. + + An object of type containing the block blob's URIs for all locations. + + + + Gets the date and time that the blob snapshot was taken, if this blob is a snapshot. + + The blob's snapshot time, if the blob is a snapshot. If the blob is not a snapshot, the value of this property is null. + + + + Gets a value indicating whether this blob is a snapshot. + + true if this blob is a snapshot; otherwise, false. + + + + Gets the absolute URI to the blob, including query string information if the blob is a snapshot. + + The absolute URI to the blob, including snapshot query information if the blob is a snapshot. + + + + Gets the block blob's URI for all locations, including query string information if the blob is a snapshot. + + An object of type containing the block blob's URIs for all locations, + including snapshot query information if the blob is a snapshot. + + + + Gets the state of the most recent or pending copy operation. + + A object containing the copy state, or null if no copy blob state exists for this blob. + + + + Gets the type of the blob. + + The type of the blob. + + + + Gets the blob's name. + + The blob's name. + + + + Gets a object representing the blob's container. + + The blob's container. + + + + Gets the object representing the + virtual parent directory for the blob. + + The blob's virtual parent directory. + + + + Represents a Windows Azure page blob. + + + Represents a Windows Azure page blob. + + + + + Opens a stream for reading from the blob. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A stream to be used for reading from the blob. + On the object returned by this method, the method must be called exactly once for every call. Failing to end a read process before beginning another read can cause unknown behavior. + + + + Begins an asynchronous operation to open a stream for reading from the blob. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to open a stream for reading from the blob. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to open a stream for reading from the blob. + + An that references the pending asynchronous operation. + A stream to be used for reading from the blob. + + + + Returns a task that performs an asynchronous operation to open a stream for reading from the blob. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to open a stream for reading from the blob. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to open a stream for reading from the blob. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to open a stream for reading from the blob. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Opens a stream for writing to the blob. + + The size of the page blob, in bytes. The size must be a multiple of 512. If null, the page blob must already exist. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A stream to be used for writing to the blob. + + + + Begins an asynchronous operation to open a stream for writing to the blob. + + The size of the page blob, in bytes. The size must be a multiple of 512. If null, the page blob must already exist. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to open a stream for writing to the blob. + + The size of the page blob, in bytes. The size must be a multiple of 512. If null, the page blob must already exist. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to open a stream for writing to the blob. + + An that references the pending asynchronous operation. + A stream to be used for writing to the blob. + + + + Returns a task that performs an asynchronous operation to open a stream for writing to the blob. + + The size of the page blob, in bytes. The size must be a multiple of 512. If null, the page blob must already exist. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to open a stream for writing to the blob. + + The size of the page blob, in bytes. The size must be a multiple of 512. If null, the page blob must already exist. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to open a stream for writing to the blob. + + The size of the page blob, in bytes. The size must be a multiple of 512. If null, the page blob must already exist. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to open a stream for writing to the blob. + + The size of the page blob, in bytes. The size must be a multiple of 512. If null, the page blob must already exist. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Downloads the contents of a blob to a stream. + + The target stream. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to download the contents of a blob to a stream. + + The target stream. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to download the contents of a blob to a stream. + + The target stream. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to download the contents of a blob to a stream. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a stream. + + The target stream. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a stream. + + The target stream. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a stream. + + The target stream. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a stream. + + The target stream. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Downloads the contents of a blob to a file. + + The target file. + A constant that determines how to open or create the file. + An object that represents the access conditions for the blob. + An object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to download the contents of a blob to a file. + + The target file. + A constant that determines how to open or create the file. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to download the contents of a blob to a file. + + The target file. + A constant that determines how to open or create the file. + An object that represents the access conditions for the blob. + An object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Called when the asynchronous DownloadToStream operation completes. + + The result of the asynchronous operation. + + + + Ends an asynchronous operation to download the contents of a blob to a file. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a file. + + The target file. + A constant that determines how to open or create the file. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a file. + + The target file. + A constant that determines how to open or create the file. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a file. + + The target file. + A constant that determines how to open or create the file. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a file. + + The target file. + A constant that determines how to open or create the file. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Downloads the contents of a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The total number of bytes read into the buffer. + + + + Begins an asynchronous operation to download the contents of a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to download the contents of a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to download the contents of a blob to a byte array. + + An that references the pending asynchronous operation. + The total number of bytes read into the buffer. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download the contents of a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Downloads a range of bytes from a blob to a stream. + + The target stream. + The offset at which to begin downloading the blob, in bytes. + The length of the data to download from the blob, in bytes. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to download a range of bytes from a blob to a stream. + + The target stream. + The offset at which to begin downloading the blob, in bytes. + The length of the data to download from the blob, in bytes. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to download a range of bytes from a blob to a stream. + + The target stream. + The offset at which to begin downloading the blob, in bytes. + The length of the data to download from the blob, in bytes. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to download a range of bytes from a blob to a stream. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to download a range of bytes from a blob to a stream. + + The target stream. + The offset at which to begin downloading the blob, in bytes. + The length of the data to download from the blob, in bytes. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download a range of bytes from a blob to a stream. + + The target stream. + The offset at which to begin downloading the blob, in bytes. + The length of the data to download from the blob, in bytes. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download a range of bytes from a blob to a stream. + + The target stream. + The offset at which to begin downloading the blob, in bytes. + The length of the data to download from the blob, in bytes. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download a range of bytes from a blob to a stream. + + The target stream. + The offset at which to begin downloading the blob, in bytes. + The length of the data to download from the blob, in bytes. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Downloads a range of bytes from a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + The starting offset of the data range, in bytes. + The length of the data to download from the blob, in bytes. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The total number of bytes read into the buffer. + + + + Begins an asynchronous operation to download a range of bytes from a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + The starting offset of the data range, in bytes. + The length of the data to download from the blob, in bytes. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to download a range of bytes from a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + The starting offset of the data range, in bytes. + The length of the data to download from the blob, in bytes. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Called when the asynchronous DownloadRangeToStream operation completes. + + The result of the asynchronous operation. + + + + Ends an asynchronous operation to download a range of bytes from a blob to a byte array. + + An that references the pending asynchronous operation. + The total number of bytes read into the buffer. + + + + Returns a task that performs an asynchronous operation to download a range of bytes from a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + The starting offset of the data range, in bytes. + The length of the data to download from the blob, in bytes. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download a range of bytes from a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + The starting offset of the data range, in bytes. + The length of the data to download from the blob, in bytes. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download a range of bytes from a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + The starting offset of the data range, in bytes. + The length of the data to download from the blob, in bytes. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to download a range of bytes from a blob to a byte array. + + The target byte array. + The starting offset in the byte array. + The starting offset of the data range, in bytes. + The length of the data to download from the blob, in bytes. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Uploads a stream to a page blob. + + The stream providing the blob content. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Uploads a stream to a page blob. + + The stream providing the blob content. + The number of bytes to write from the source stream at its current position. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Uploads a stream to a page blob. + + The stream providing the blob content. + The number of bytes to write from the source stream at its current position. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to upload a stream to a page blob. + + The stream providing the blob content. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to upload a stream to a page blob. + + The stream providing the blob content. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to upload a stream to a page blob. + + The stream providing the blob content. + Specifies the number of bytes from the Stream source to upload from the start position. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to upload a stream to a page blob. + + The stream providing the blob content. + Specifies the number of bytes from the Stream source to upload from the start position. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to upload a stream to a page blob. + + The stream providing the blob content. + Specifies the number of bytes from the Stream source to upload from the start position. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to upload a stream to a page blob. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to upload a stream to a page blob. + + The stream providing the blob content. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a stream to a page blob. + + The stream providing the blob content. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a stream to a page blob. + + The stream providing the blob content. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a stream to a page blob. + + The stream providing the blob content. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a stream to a page blob. + + The stream providing the blob content. + The number of bytes to write from the source stream at its current position. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a stream to a page blob. + + The stream providing the blob content. + The number of bytes to write from the source stream at its current position. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a stream to a page blob. + + The stream providing the blob content. + The number of bytes to write from the source stream at its current position. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a stream to a page blob. + + The stream providing the blob content. + The number of bytes to write from the source stream at its current position. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Uploads a file to the Windows Azure Blob Service. + + The file providing the blob content. + A constant that determines how to open the file. + An object that represents the access conditions for the blob. + An object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to upload a file to a blob. + + The file providing the blob content. + A constant that determines how to open the file. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to upload a file to a blob. + + The file providing the blob content. + A constant that determines how to open the file. + An object that represents the access conditions for the blob. + An object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Called when the asynchronous UploadFromStream operation completes. + + The result of the asynchronous operation. + + + + Ends an asynchronous operation to upload a file to a blob. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to upload a file to a blob. + + The file providing the blob content. + A constant that determines how to open the file. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a file to a blob. + + The file providing the blob content. + A constant that determines how to open the file. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a file to a blob. + + The file providing the blob content. + A constant that determines how to open the file. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload a file to a blob. + + The file providing the blob content. + A constant that determines how to open the file. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Uploads the contents of a byte array to a blob. + + An array of bytes. + The zero-based byte offset in buffer at which to begin uploading bytes to the blob. + The number of bytes to be written to the blob. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to upload the contents of a byte array to a blob. + + An array of bytes. + The zero-based byte offset in buffer at which to begin uploading bytes to the blob. + The number of bytes to be written to the blob. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to upload the contents of a byte array to a blob. + + An array of bytes. + The zero-based byte offset in buffer at which to begin uploading bytes to the blob. + The number of bytes to be written to the blob. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to upload the contents of a byte array to a blob. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to upload the contents of a byte array to a blob. + + An array of bytes. + The zero-based byte offset in buffer at which to begin uploading bytes to the blob. + The number of bytes to be written to the blob. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload the contents of a byte array to a blob. + + An array of bytes. + The zero-based byte offset in buffer at which to begin uploading bytes to the blob. + The number of bytes to be written to the blob. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload the contents of a byte array to a blob. + + An array of bytes. + The zero-based byte offset in buffer at which to begin uploading bytes to the blob. + The number of bytes to be written to the blob. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to upload the contents of a byte array to a blob. + + An array of bytes. + The zero-based byte offset in buffer at which to begin uploading bytes to the blob. + The number of bytes to be written to the blob. + An object that represents the access conditions for the blob. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Creates a page blob. + + The maximum size of the page blob, in bytes. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to create a page blob. + + The maximum size of the page blob, in bytes. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to create a page blob. + + The maximum size of the blob, in bytes. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to create a page blob. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to create a page blob. + + The maximum size of the blob, in bytes. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to create a page blob. + + The maximum size of the blob, in bytes. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to create a page blob. + + The maximum size of the blob, in bytes. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to create a page blob. + + The maximum size of the blob, in bytes. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Resizes the page blob to the specified size. + + The size of the page blob, in bytes. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to resize the page blob to the specified size. + + The size of the page blob, in bytes. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to resize the page blob to the specified size. + + The size of the blob, in bytes. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to resize the page blob. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to resize the page blob to the specified size. + + The size of the blob, in bytes. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to resize the page blob to the specified size. + + The size of the blob, in bytes. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to resize the page blob to the specified size. + + The size of the blob, in bytes. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to resize the page blob to the specified size. + + The size of the blob, in bytes. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Sets the page blob's sequence number. + + A value of type , indicating the operation to perform on the sequence number. + The sequence number. Set this parameter to null if is equal to . + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to set the page blob's sequence number. + + A value of type , indicating the operation to perform on the sequence number. + The sequence number. Set this parameter to null if is equal to . + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to set the page blob's sequence number. + + A value of type , indicating the operation to perform on the sequence number. + The sequence number. Set this parameter to null if is equal to . + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to set the page blob's sequence number. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to set the page blob's sequence number. + + A value of type , indicating the operation to perform on the sequence number. + The sequence number. Set this parameter to null if is equal to . + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to set the page blob's sequence number. + + A value of type , indicating the operation to perform on the sequence number. + The sequence number. Set this parameter to null if is equal to . + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to set the page blob's sequence number. + + A value of type , indicating the operation to perform on the sequence number. + The sequence number. Set this parameter to null if is equal to . + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to set the page blob's sequence number. + + A value of type , indicating the operation to perform on the sequence number. + The sequence number. Set this parameter to null if is equal to . + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Checks existence of the blob. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + true if the blob exists. + + + + Checks existence of the blob. + + If true, the command will be executed against the primary location. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + true if the blob exists. + + + + Begins an asynchronous request to check existence of the blob. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous request to check existence of the blob. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous request to check existence of the blob. + + If true, the command will be executed against the primary location. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Returns the asynchronous result of the request to check existence of the blob. + + An that references the pending asynchronous operation. + true if the blob exists. + + + + Returns a task that performs an asynchronous request to check existence of the blob. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to check existence of the blob. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to check existence of the blob. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to check existence of the blob. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Populates a blob's properties and metadata. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to populate the blob's properties and metadata. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to populate the blob's properties and metadata. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to populate the blob's properties and metadata. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to populate the blob's properties and metadata. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to populate the blob's properties and metadata. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to populate the blob's properties and metadata. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to populate the blob's properties and metadata. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Gets a collection of valid page ranges and their starting and ending bytes. + + The starting offset of the data range over which to list page ranges, in bytes. Must be a multiple of 512. + The length of the data range over which to list page ranges, in bytes. Must be a multiple of 512. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + An enumerable collection of page ranges. + + + + Begins an asynchronous operation to return a collection of valid page ranges and their starting and ending bytes. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to return a collection of valid page ranges and their starting and ending bytes. + + The starting offset of the data range over which to list page ranges, in bytes. Must be a multiple of 512. + The length of the data range over which to list page ranges, in bytes. Must be a multiple of 512. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to return a collection of valid page ranges and their starting and ending bytes. + + An that references the pending asynchronous operation. + An enumerable collection of page ranges. + + + + Returns a task that performs an asynchronous operation to return a collection of page ranges and their starting and ending bytes. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to return a collection of page ranges and their starting and ending bytes. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to return a collection of page ranges and their starting and ending bytes. + + The starting offset of the data range, in bytes. Must be a multiple of 512. + The length of the data range, in bytes. Must be a multiple of 512. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to return a collection of page ranges and their starting and ending bytes. + + The starting offset of the data range, in bytes. Must be a multiple of 512. + The length of the data range, in bytes. Must be a multiple of 512. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Updates the blob's metadata. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to update the blob's metadata. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to update the blob's metadata. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to update the blob's metadata. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to update the blob's metadata. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to update the blob's metadata. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to update the blob's metadata. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to update the blob's metadata. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Updates the blob's properties. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to update the blob's properties. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to update the blob's properties. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to update the blob's properties. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to update the blob's properties. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to update the blob's properties. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to update the blob's properties. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to update the blob's properties. + + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Deletes the blob. + + Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to delete the blob. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to delete the blob. + + Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to delete the blob. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to delete the blob. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to delete the blob. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to delete the blob. + + Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to delete the blob. + + Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Deletes the blob if it already exists. + + Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots. + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + true if the blob did already exist and was deleted; otherwise false. + + + + Begins an asynchronous request to delete the blob if it already exists. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous request to delete the blob if it already exists. + + Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots. + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Returns the result of an asynchronous request to delete the blob if it already exists. + + An that references the pending asynchronous operation. + true if the blob did already exist and was deleted; otherwise, false. + + + + Returns a task that performs an asynchronous request to delete the blob if it already exists. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to delete the blob if it already exists. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to delete the blob if it already exists. + + Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots. + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to delete the blob if it already exists. + + Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots. + An object that represents the access conditions for the container. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Creates a snapshot of the blob. + + A collection of name-value pairs defining the metadata of the snapshot. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request, or null. + An object that represents the context for the current operation. + A blob snapshot. + + + + Begins an asynchronous operation to create a snapshot of the blob. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to create a snapshot of the blob. + + A collection of name-value pairs defining the metadata of the snapshot. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request, or null. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to create a snapshot of the blob. + + An that references the pending asynchronous operation. + A blob snapshot. + + + + Returns a task that performs an asynchronous operation to create a snapshot of the blob. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to create a snapshot of the blob. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to create a snapshot of the blob. + + A collection of name-value pairs defining the metadata of the snapshot. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to create a snapshot of the blob. + + A collection of name-value pairs defining the metadata of the snapshot. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Acquires a lease on this blob. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. If null, an infinite lease will be acquired. If not null, this must be + greater than zero. + A string representing the proposed lease ID for the new lease, or null if no lease ID is proposed. + An object that represents the access conditions for the blob. If null, no condition is used. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + The ID of the acquired lease. + + + + Begins an asynchronous operation to acquire a lease on this blob. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. If null, an infinite lease will be acquired. If not null, this must be + greater than zero. + A string representing the proposed lease ID for the new lease, or null if no lease ID is proposed. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to acquire a lease on this blob. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. If null, an infinite lease will be acquired. If not null, this must be + greater than zero. + A string representing the proposed lease ID for the new lease, or null if no lease ID is proposed. + An object that represents the access conditions for the blob. If null, no condition is used. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to acquire a lease on this blob. + + An IAsyncResult that references the pending asynchronous operation. + The ID of the acquired lease. + + + + Returns a task that performs an asynchronous operation to acquire a lease on this blob. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. If null, an infinite lease will be acquired. If not null, this must be + greater than zero. + A string representing the proposed lease ID for the new lease, or null if no lease ID is proposed. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to acquire a lease on this blob. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. If null, an infinite lease will be acquired. If not null, this must be + greater than zero. + A string representing the proposed lease ID for the new lease, or null if no lease ID is proposed. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to acquire a lease on this blob. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. If null, an infinite lease will be acquired. If not null, this must be + greater than zero. + A string representing the proposed lease ID for the new lease, or null if no lease ID is proposed. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to acquire a lease on this blob. + + A representing the span of time for which to acquire the lease, + which will be rounded down to seconds. If null, an infinite lease will be acquired. If not null, this must be + greater than zero. + A string representing the proposed lease ID for the new lease, or null if no lease ID is proposed. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Renews a lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to renew a lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to renew a lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to renew a lease on this blob. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to renew a lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to renew a lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to renew a lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to renew a lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Changes the lease ID on this blob. + + A string representing the proposed lease ID for the new lease. This cannot be null. + An object that represents the access conditions for the blob, including a required lease ID. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + The new lease ID. + + + + Begins an asynchronous operation to change the lease on this blob. + + A string representing the proposed lease ID for the new lease. This cannot be null. + An object that represents the access conditions for the blob, including a required lease ID. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to change the lease on this blob. + + A string representing the proposed lease ID for the new lease. This cannot be null. + An object that represents the access conditions for the blob, including a required lease ID. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to change the lease on this blob. + + An that references the pending asynchronous operation. + The new lease ID. + + + + Returns a task that performs an asynchronous operation to change the lease on this blob. + + A string representing the proposed lease ID for the new lease. This cannot be null. + An object that represents the access conditions for the blob, including a required lease ID. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to change the lease on this blob. + + A string representing the proposed lease ID for the new lease. This cannot be null. + An object that represents the access conditions for the blob, including a required lease ID. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to change the lease on this blob. + + A string representing the proposed lease ID for the new lease. This cannot be null. + An object that represents the access conditions for the blob, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to change the lease on this blob. + + A string representing the proposed lease ID for the new lease. This cannot be null. + An object that represents the access conditions for the blob, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Releases the lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to release the lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to release the lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to release the lease on this blob. + + An IAsyncResult that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to release the lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to release the lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to release the lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to release the lease on this blob. + + An object that represents the access conditions for the blob, including a required lease ID. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Breaks the current lease on this blob. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. If null, the break period is the remainder of the current lease, + or zero for infinite leases. + An object that represents the access conditions for the blob. If null, no condition is used. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + A representing the amount of time before the lease ends, to the second. + + + + Begins an asynchronous operation to break the current lease on this blob. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. If null, the break period is the remainder of the current lease, + or zero for infinite leases. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to break the current lease on this blob. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. If null, the break period is the remainder of the current lease, + or zero for infinite leases. + An object that represents the access conditions for the blob. If null, no condition is used. + The options for this operation. If null, default options will be used. + An object that represents the context for the current operation. + An optional callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to break the current lease on this blob. + + An IAsyncResult that references the pending asynchronous operation. + A representing the amount of time before the lease ends, to the second. + + + + Returns a task that performs an asynchronous operation to break the current lease on this blob. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. If null, the break period is the remainder of the current lease, + or zero for infinite leases. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to break the current lease on this blob. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. If null, the break period is the remainder of the current lease, + or zero for infinite leases. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to break the current lease on this blob. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. If null, the break period is the remainder of the current lease, + or zero for infinite leases. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to break the current lease on this blob. + + A representing the amount of time to allow the lease to remain, + which will be rounded down to seconds. If null, the break period is the remainder of the current lease, + or zero for infinite leases. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Writes pages to a page blob. + + A stream providing the page data. + The offset at which to begin writing, in bytes. The offset must be a multiple of 512. + An optional hash value that will be used to set the property + on the blob. May be null or an empty string. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to write pages to a page blob. + + A stream providing the page data. + The offset at which to begin writing, in bytes. The offset must be a multiple of 512. + An optional hash value that will be used to set the property + on the blob. May be null or an empty string. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to write pages to a page blob. + + A stream providing the page data. + The offset at which to begin writing, in bytes. The offset must be a multiple of 512. + An optional hash value that will be used to set the property + on the blob. May be null or an empty string. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to write pages to a page blob. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to write pages to a page blob. + + A stream providing the page data. + The offset at which to begin writing, in bytes. The offset must be a multiple of 512. + An optional hash value that will be used to set the property + on the blob. May be null or an empty string. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to write pages to a page blob. + + A stream providing the page data. + The offset at which to begin writing, in bytes. The offset must be a multiple of 512. + An optional hash value that will be used to set the property + on the blob. May be null or an empty string. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to write pages to a page blob. + + A stream providing the page data. + The offset at which to begin writing, in bytes. The offset must be a multiple of 512. + An optional hash value that will be used to set the property + on the blob. May be null or an empty string. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to write pages to a page blob. + + A stream providing the page data. + The offset at which to begin writing, in bytes. The offset must be a multiple of 512. + An optional hash value that will be used to set the property + on the blob. May be null or an empty string. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Clears pages from a page blob. + + The offset at which to begin clearing pages, in bytes. The offset must be a multiple of 512. + The length of the data range to be cleared, in bytes. The length must be a multiple of 512. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to clear pages from a page blob. + + The offset at which to begin clearing pages, in bytes. The offset must be a multiple of 512. + The length of the data range to be cleared, in bytes. The length must be a multiple of 512. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to clear pages from a page blob. + + The offset at which to begin clearing pages, in bytes. The offset must be a multiple of 512. + The length of the data range to be cleared, in bytes. The length must be a multiple of 512. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to clear pages from a page blob. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to clear pages from a page blob. + + The offset at which to begin clearing pages, in bytes. The offset must be a multiple of 512. + The length of the data range to be cleared, in bytes. The length must be a multiple of 512. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to clear pages from a page blob. + + The offset at which to begin clearing pages, in bytes. The offset must be a multiple of 512. + The length of the data range to be cleared, in bytes. The length must be a multiple of 512. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to clear pages from a page blob. + + The offset at which to begin clearing pages, in bytes. The offset must be a multiple of 512. + The length of the data range to be cleared, in bytes. The length must be a multiple of 512. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to clear pages from a page blob. + + The offset at which to begin clearing pages, in bytes. The offset must be a multiple of 512. + The length of the data range to be cleared, in bytes. The length must be a multiple of 512. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Requests that the service start to copy a blob's contents, properties, and metadata to a new blob. + + The URI of a source blob. + An object that represents the access conditions for the source blob. If null, no condition is used. + An object that represents the access conditions for the destination blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The copy ID associated with the copy operation. + + This method fetches the blob's ETag, last modified time, and part of the copy state. + The copy ID and copy status fields are fetched, and the rest of the copy state is cleared. + + + + + Requests that the service start to copy a blob's contents, properties, and metadata to a new blob. + + The URI of a source blob. + An object that represents the access conditions for the source blob. If null, no condition is used. + An object that represents the access conditions for the destination blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The copy ID associated with the copy operation. + + This method fetches the blob's ETag, last modified time, and part of the copy state. + The copy ID and copy status fields are fetched, and the rest of the copy state is cleared. + + + + + Begins an asynchronous operation to request that the service start to copy a blob's contents, properties, and metadata to a new blob. + + The URI of a source blob. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to request that the service start to copy a blob's contents, properties, and metadata to a new blob. + + The source blob. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to request that the service start to copy another blob's contents, properties, and metadata + to the blob referenced by this object. + + The URI of a source blob. + An object that represents the access conditions for the source blob. If null, no condition is used. + An object that represents the access conditions for the destination blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to request that the service start to copy another blob's contents, properties, and metadata + to the blob referenced by this object. + + The source blob. + An object that represents the access conditions for the source blob. If null, no condition is used. + An object that represents the access conditions for the destination blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to request that the service start to copy a blob's contents, properties, and metadata to a new blob. + + An that references the pending asynchronous operation. + The copy ID associated with the copy operation. + + This method fetches the blob's ETag, last modified time, and part of the copy state. + The copy ID and copy status fields are fetched, and the rest of the copy state is cleared. + + + + + Returns a task that performs an asynchronous operation to request that the service start to copy another blob's contents, properties, and metadata + to the blob referenced by this object. + + The URI of a source blob. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to request that the service start to copy another blob's contents, properties, and metadata + to the blob referenced by this object. + + The URI of a source blob. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to request that the service start to copy another blob's contents, properties, and metadata + to the blob referenced by this object. + + The source blob. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to request that the service start to copy another blob's contents, properties, and metadata + to the blob referenced by this object. + + The source blob. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to request that the service start to copy another blob's contents, properties, and metadata + to the blob referenced by this object. + + The URI of a source blob. + An object that represents the access conditions for the source blob. If null, no condition is used. + An object that represents the access conditions for the destination blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to request that the service start to copy another blob's contents, properties, and metadata + to the blob referenced by this object. + + The URI of a source blob. + An object that represents the access conditions for the source blob. If null, no condition is used. + An object that represents the access conditions for the destination blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to request that the service start to copy another blob's contents, properties, and metadata + to the blob referenced by this object. + + The source blob. + An object that represents the access conditions for the source blob. If null, no condition is used. + An object that represents the access conditions for the destination blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to request that the service start to copy another blob's contents, properties, and metadata + to the blob referenced by this object. + + The source blob. + An object that represents the access conditions for the source blob. If null, no condition is used. + An object that represents the access conditions for the destination blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Aborts an ongoing blob copy operation. + + A string identifying the copy operation. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to abort an ongoing blob copy operation. + + A string identifying the copy operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to abort an ongoing blob copy operation. + + A string identifying the copy operation. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to abort an ongoing blob copy operation. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to abort an ongoing blob copy operation. + + A string identifying the copy operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to abort an ongoing blob copy operation. + + A string identifying the copy operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to abort an ongoing blob copy operation. + + A string identifying the copy operation. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to abort an ongoing blob copy operation. + + A string identifying the copy operation. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Implements the Create method. + + The size in bytes. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + A that creates the blob. + + + + Implementation for the Resize method. + + The size in bytes. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + A that sets the metadata. + + + + Implementation for the SetSequenceNumber method. + + A value of type , indicating the operation to perform on the sequence number. + The sequence number. Set this parameter to null if this operation is an increment action. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + A that sets the sequence number. + + + + Implementation for the CreateSnapshot method. + + A collection of name-value pairs defining the metadata of the snapshot, or null. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + A that creates the snapshot. + If the metadata parameter is null then no metadata is associated with the request. + + + + Gets the page ranges impl. + + The starting offset of the data range over which to list page ranges, in bytes. Must be a multiple of 512. + The length of the data range over which to list page ranges, in bytes. Must be a multiple of 512. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + A for getting the page ranges. + + + + Implementation method for the WritePage methods. + + The page data. + The start offset. + The content MD5. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + A that writes the pages. + + + + Implementation method for the ClearPage methods. + + The start offset. Must be multiples of 512. + Length of the data range to be cleared. Must be multiples of 512. + An object that represents the access conditions for the blob. If null, no condition is used. + A object that specifies additional options for the request. + A that writes the pages. + + + + Default is 4 MB. + + + + + Default is 4 MB. + + + + + Initializes a new instance of the class using an absolute URI to the blob. + + The absolute URI to the blob. + + + + Initializes a new instance of the class using an absolute URI to the blob. + + The absolute URI to the blob. + The account credentials. + + + + Initializes a new instance of the class using an absolute URI to the blob. + + The absolute URI to the blob. + The snapshot timestamp, if the blob is a snapshot. + The account credentials. + + + + Initializes a new instance of the class using an absolute URI to the blob. + + The absolute URI to the blob. The service assumes this is the URI for the blob in the primary location. + The snapshot timestamp, if the blob is a snapshot. + The account credentials. + + + + Initializes a new instance of the class using the specified blob name and + the parent container reference. + If snapshotTime is not null, the blob instance represents a Snapshot. + + Name of the blob. + Snapshot time in case the blob is a snapshot. + The reference to the parent container. + + + + Initializes a new instance of the class. + + The attributes. + The service client. + + + + Stores the that contains this blob. + + + + + Stores the blob's parent . + + + + + Stores the blob's attributes. + + + + + Returns a shared access signature for the blob. + + The access policy for the shared access signature. + A shared access signature, as a URI query string. + The query string returned includes the leading question mark. + + + + Returns a shared access signature for the blob. + + The access policy for the shared access signature. + A stored access policy. + A shared access signature, as a URI query string. + The query string returned includes the leading question mark. + + + + Returns a shared access signature for the blob. + + The access policy for the shared access signature. + The optional header values to set for a blob accessed with this SAS. + A shared access signature. + + + + Returns a shared access signature for the blob. + + The access policy for the shared access signature. + The optional header values to set for a blob returned with this SAS. + A stored access policy. + A shared access signature. + + + + Gets the canonical name of the blob, formatted as /<account-name>/<container-name>/<blob-name>. + If ignoreSnapshotTime is false and this blob is a snapshot, the canonical name is augmented with a + query of the form ?snapshot=<snapshot-time>. + This is used by both Shared Access and Copy blob operations. + + Indicates if the snapshot time is ignored. + The canonical name of the blob. + + + + Parse URI for SAS (Shared Access Signature) and snapshot information. + + The complete Uri. + The credentials to use. + + + + Gets the object that represents the Blob service. + + A client object that specifies the Blob service endpoint. + + + + Gets or sets the number of bytes to buffer when writing to a page blob stream. + + The number of bytes to buffer, ranging from between 512 bytes and 4 MB inclusive. + + + + Gets or sets the minimum number of bytes to buffer when reading from a blob stream. + + The minimum number of bytes to buffer, being at least 16KB. + + + + Gets the blob's system properties. + + The blob's properties. + + + + Gets the user-defined metadata for the blob. + + The blob's metadata, as a collection of name-value pairs. + + + + Gets the blob's URI for the primary location. + + The absolute URI to the blob, at the primary location. + + + + Gets the page blob's URIs for all locations. + + An object of type containing the page blob's URIs for all locations. + + + + Gets the date and time that the blob snapshot was taken, if this blob is a snapshot. + + The blob's snapshot time, if the blob is a snapshot. If the blob is not a snapshot, the value of this property is null. + + + + Gets a value indicating whether this blob is a snapshot. + + true if this blob is a snapshot; otherwise, false. + + + + Gets the absolute URI to the blob, including query string information if the blob is a snapshot. + + The absolute URI to the blob, including snapshot query information if the blob is a snapshot. + + + + Gets the page blob's URI for all locations, including query string information if the blob is a snapshot. + + An object of type containing the page blob's URIs for all locations, + including snapshot query information if the blob is a snapshot. + + + + Gets the state of the most recent or pending copy operation. + + A object containing the copy state, or null if no copy blob state exists for this blob. + + + + Gets the type of the blob. + + The type of the blob. + + + + Gets the blob's name. + + The blob's name. + + + + Gets a object representing the blob's container. + + The blob's container. + + + + Gets the object representing the + virtual parent directory for the blob. + + The blob's virtual parent directory. + + + + Provides a set of methods for parsing a response containing blob data from the Blob service. + + + + + Gets the request ID from the response. + + The web response. + A unique value associated with the request. + + + + Gets the blob's properties from the response. + + The web response. + The blob's properties. + + + + Extracts the lease status from a web response. + + The web response. + A enumeration from the web response. + If the appropriate header is not present, a status of is returned. + The header contains an unrecognized value. + + + + Extracts the lease state from a web response. + + The web response. + A enumeration from the web response. + If the appropriate header is not present, a status of is returned. + The header contains an unrecognized value. + + + + Extracts the lease duration from a web response. + + The web response. + A enumeration from the web response. + If the appropriate header is not present, a status of is returned. + The header contains an unrecognized value. + + + + Extracts the lease ID header from a web response. + + The web response. + The lease ID. + + + + Extracts the remaining lease time from a web response. + + The web response. + The remaining lease time, in seconds. + + + + Gets the user-defined metadata. + + The response from server. + A of the metadata. + + + + Extracts a object from the headers of a web response. + + The HTTP web response. + A object, or null if the web response does not contain a copy status. + + + + Gets the snapshot timestamp from the response. + + The web response. + The snapshot timestamp. + + + + Reads service properties from a stream. + + The stream from which to read the service properties. + The service properties stored in the stream. + + + + Reads service stats from a stream. + + The stream from which to read the service stats. + The service stats stored in the stream. + + + + Gets a from a string. + + The lease status string. + A enumeration. + If a null or empty string is supplied, a status of is returned. + The string contains an unrecognized value. + + + + Gets a from a string. + + The lease state string. + A enumeration. + If a null or empty string is supplied, a status of is returned. + The string contains an unrecognized value. + + + + Gets a from a string. + + The lease duration string. + A enumeration. + If a null or empty string is supplied, a status of is returned. + The string contains an unrecognized value. + + + + Builds a object from the given strings containing formatted copy information. + + The copy status, as a string. + The copy ID. + The source URI of the copy, as a string. + A string formatted as progressBytes/TotalBytes. + The copy completion time, as a string, or null. + The copy status description, if any. + A object populated from the given strings. + + + + A factory class for constructing a web request to manage blobs in the Blob service. + + + + + Creates a web request to get the properties of the Blob service. + + The absolute URI to the Blob service. + An object of type , containing additional parameters to add to the URI query string. + The server timeout interval, in seconds. + An object for tracking the current operation. + + A web request to get the Blob service properties. + + + + + Creates a web request to set the properties of the Blob service. + + The absolute URI to the Blob service. + An object of type , containing additional parameters to add to the URI query string. + The server timeout interval, in seconds. + An object for tracking the current operation. + + A web request to set the Blob service properties. + + + + + Creates a web request to get the stats of the Blob service. + + The absolute URI to the Blob service. + An object of type , containing additional parameters to add to the URI query string. + The server timeout interval, in seconds. + An object for tracking the current operation. + + A web request to get the Blob service stats. + + + + + Writes Blob service properties to a stream, formatted in XML. + + The service properties to format and write to the stream. + The stream to which the formatted properties are to be written. + + + + Constructs a web request to create a new block blob or page blob, or to update the content + of an existing block blob. + + The absolute URI to the blob. + The server timeout interval. + The properties to set for the blob. + The type of the blob. + For a page blob, the size of the blob. This parameter is ignored + for block blobs. + The access condition to apply to the request. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Adds the snapshot. + + An object of type that contains additional parameters to add to the URI query string. + The snapshot version, if the blob is a snapshot. + + + + Constructs a web request to return the list of valid page ranges for a page blob. + + The absolute URI to the blob. + The server timeout interval. + The snapshot timestamp, if the blob is a snapshot. + The starting offset of the data range over which to list page ranges, in bytes. Must be a multiple of 512. + The length of the data range over which to list page ranges, in bytes. Must be a multiple of 512. + The access condition to apply to the request. + An object for tracking the current operation. + + A web request to use to perform the operation. + + + + + Adds the Range Header for Blob Service Operations. + + Request + Starting byte of the range + Number of bytes in the range + + + + Constructs a web request to return the blob's system properties. + + The absolute URI to the blob. + The server timeout interval. + The snapshot timestamp, if the blob is a snapshot. + The access condition to apply to the request. + An object for tracking the current operation. + A web request for performing the operation. + + + + Constructs a web request to set system properties for a blob. + + The absolute URI to the blob. + The server timeout interval. + The blob's properties. + The access condition to apply to the request. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Constructs a web request to resize a page blob. + + The absolute URI to the blob. + The server timeout interval. + The new blob size, if the blob is a page blob. Set this parameter to null to keep the existing blob size. + The access condition to apply to the request. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Constructs a web request to set a page blob's sequence number. + + The absolute URI to the blob. + The server timeout interval. + A value of type , indicating the operation to perform on the sequence number. + The sequence number. Set this parameter to null if this operation is an increment action. + The access condition to apply to the request. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Constructs a web request to return the user-defined metadata for the blob. + + The absolute URI to the blob. + The server timeout interval. + The snapshot timestamp, if the blob is a snapshot. + The access condition to apply to the request. + An object for tracking the current operation. + A web request for performing the operation. + + + + Constructs a web request to set user-defined metadata for the blob. + + The absolute URI to the blob. + The server timeout interval. + The access condition to apply to the request. + An object for tracking the current operation. + A web request for performing the operation. + + + + Adds user-defined metadata to the request as one or more name-value pairs. + + The web request. + The user-defined metadata. + + + + Adds user-defined metadata to the request as a single name-value pair. + + The web request. + The metadata name. + The metadata value. + + + + Constructs a web request to delete a blob. + + The absolute URI to the blob. + The server timeout interval. + The snapshot timestamp, if the blob is a snapshot. + A set of options indicating whether to delete only blobs, only snapshots, or both. + The access condition to apply to the request. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Constructs a web request to create a snapshot of a blob. + + The absolute URI to the blob. + The server timeout interval. + The access condition to apply to the request. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Generates a web request to use to acquire, renew, change, release or break the lease for the blob. + + The absolute URI to the blob. + The server timeout interval, in seconds. + The lease action to perform. + A lease ID to propose for the result of an acquire or change operation, + or null if no ID is proposed for an acquire operation. This should be null for renew, release, and break operations. + The lease duration, in seconds, for acquire operations. + If this is -1 then an infinite duration is specified. This should be null for renew, change, release, and break operations. + The amount of time to wait, in seconds, after a break operation before the lease is broken. + If this is null then the default time is used. This should be null for acquire, renew, change, and release operations. + The access condition to apply to the request. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Adds a proposed lease id to a request. + + The request. + The proposed lease id. + + + + Adds a lease duration to a request. + + The request. + The lease duration. + + + + Adds a lease break period to a request. + + The request. + The lease break period. + + + + Adds a lease action to a request. + + The request. + The lease action. + + + + Constructs a web request to write a block to a block blob. + + The absolute URI to the blob. + The server timeout interval. + The block ID for this block. + The access condition to apply to the request. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Constructs a web request to create or update a blob by committing a block list. + + The absolute URI to the blob. + The server timeout interval. + The properties to set for the blob. + The access condition to apply to the request. + An object for tracking the current operation. + A web request for performing the operation. + + + + Constructs a web request to return the list of blocks for a block blob. + + The absolute URI to the blob. + The server timeout interval. + The snapshot timestamp, if the blob is a snapshot. + The types of blocks to include in the list: committed, uncommitted, or both. + The access condition to apply to the request. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Constructs a web request to write or clear a range of pages in a page blob. + + The absolute URI to the blob. + The server timeout interval. + The page range, defined by an object of type . + A value of type , indicating the operation to perform on the page blob. + The to apply to the request. + An object for tracking the current operation. + + A web request to use to perform the operation. + + + + + Generates a web request to copy a blob. + + The absolute URI to the destination blob. + The server timeout interval. + The absolute URI to the source blob, including any necessary authentication parameters. + The access condition to apply to the source blob. + The access condition to apply to the destination blob. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Generates a web request to abort a copy operation. + + The absolute URI to the blob. + The server timeout interval. + The ID string of the copy operation to be aborted. + The access condition to apply to the request. Only lease conditions are supported for this operation. + An object for tracking the current operation. + A web request for performing the operation. + + + + Constructs a web request to get the blob's content, properties, and metadata. + + The absolute URI to the blob. + The server timeout interval. + The snapshot version, if the blob is a snapshot. + The access condition to apply to the request. + An object for tracking the current operation. + A web request for performing the operation. + + + + Constructs a web request to return a specified range of the blob's content, together with its properties and metadata. + + The absolute URI to the blob. + The server timeout interval, in seconds. + The snapshot version, if the blob is a snapshot. + The byte offset at which to begin returning content. + The number of bytes to return, or null to return all bytes through the end of the blob. + If set to true, request an MD5 header for the specified range. + The access condition to apply to the request. + An object for tracking the current operation. + + A web request to use to perform the operation. + + + + + Provides a set of methods for parsing container responses from the Blob service. + + + + + Gets the request ID from the response. + + The web response. + A unique value associated with the request. + + + + Gets the container's properties from the response. + + The web response. + The container's attributes. + + + + Gets the user-defined metadata. + + The response from server. + A of the metadata. + + + + Gets the ACL for the container from the response. + + The web response. + A value indicating the public access level for the container. + + + + Reads the share access policies from a stream in XML. + + The stream of XML policies. + The permissions object to which the policies are to be written. + + + + Converts the ACL string to a object. + + The string to convert. + The resulting object. + + + + A factory class for constructing a web request to manage containers in the Blob service. + + + + + Constructs a web request to create a new container. + + The absolute URI to the container. + The server timeout interval. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Constructs a web request to create a new container. + + The absolute URI to the container. + The server timeout interval. + An object for tracking the current operation. + An object that specifies whether data in the container may be accessed publicly and the level of access. + A web request to use to perform the operation. + + + + Constructs a web request to delete the container and all of the blobs within it. + + The absolute URI to the container. + The server timeout interval. + The access condition to apply to the request. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Generates a web request to return the user-defined metadata for this container. + + The absolute URI to the container. + The server timeout interval. + The access condition to apply to the request. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Generates a web request to return the properties and user-defined metadata for this container. + + The absolute URI to the container. + The server timeout interval. + The access condition to apply to the request. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Generates a web request to set user-defined metadata for the container. + + The absolute URI to the container. + The server timeout interval. + The access condition to apply to the request. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Generates a web request to use to acquire, renew, change, release or break the lease for the container. + + The absolute URI to the container. + The server timeout interval, in seconds. + The lease action to perform. + A lease ID to propose for the result of an acquire or change operation, + or null if no ID is proposed for an acquire operation. This should be null for renew, release, and break operations. + The lease duration, in seconds, for acquire operations. + If this is -1 then an infinite duration is specified. This should be null for renew, change, release, and break operations. + The amount of time to wait, in seconds, after a break operation before the lease is broken. + If this is null then the default time is used. This should be null for acquire, renew, change, and release operations. + The access condition to apply to the request. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Adds user-defined metadata to the request as one or more name-value pairs. + + The web request. + The user-defined metadata. + + + + Adds user-defined metadata to the request as a single name-value pair. + + The web request. + The metadata name. + The metadata value. + + + + Constructs a web request to return a listing of all containers in this storage account. + + The absolute URI for the account. + The server timeout interval. + A set of parameters for the listing operation. + Additional details to return with the listing. + An object for tracking the current operation. + A web request for the specified operation. + + + + Constructs a web request to return the ACL for a container. + + The absolute URI to the container. + The server timeout interval. + The access condition to apply to the request. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Constructs a web request to set the ACL for a container. + + The absolute URI to the container. + The server timeout interval. + The type of public access to allow for the container. + The access condition to apply to the request. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Generates a web request to return a listing of all blobs in the container. + + The absolute URI to the container. + The server timeout interval. + A set of parameters for the listing operation. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Gets the container Uri query builder. + + A for the container. + + + + This class represents a queue in the Windows Azure Queue service. + + + This class represents a queue in the Windows Azure Queue service. + + + + + Creates the queue. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + + + + Begins an asynchronous operation to create a queue. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to create a queue. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to create a queue. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to create a queue. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to create a queue. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to create a queue. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to create a queue. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Creates the queue if it does not already exist. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + true if the queue did not already exist and was created; otherwise false. + + + + Begins an asynchronous request to create the queue if it does not already exist. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous request to create the queue if it does not already exist. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Returns the result of an asynchronous request to create the queue if it does not already exist. + + An that references the pending asynchronous operation. + true if the queue did not already exist and was created; otherwise, false. + + + + Returns a task that performs an asynchronous request to create the queue if it does not already exist. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to create the queue if it does not already exist. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to create the queue if it does not already exist. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to create the queue if it does not already exist. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Deletes the queue if it already exists. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + true if the queue did not already exist and was created; otherwise false. + + + + Begins an asynchronous request to delete the queue if it already exists. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous request to delete the queue if it already exists. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Returns the result of an asynchronous request to delete the queue if it already exists. + + An that references the pending asynchronous operation. + true if the queue did not already exist and was created; otherwise, false. + + + + Returns a task that performs an asynchronous request to delete the queue if it already exists. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to delete the queue if it already exists. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to delete the queue if it already exists. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to delete the queue if it already exists. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Deletes the queue. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + + + + Begins an asynchronous operation to delete a queue. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to delete a queue. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to delete a queue. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to delete a queue. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to delete a queue. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to delete a queue. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to delete a queue. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Sets permissions for the queue. + + The permissions to apply to the queue. + A object that specifies additional options for the request. + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + + + + Begins an asynchronous request to set permissions for the queue. + + The permissions to apply to the queue. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous request to set permissions for the queue. + + The permissions to apply to the queue. + A object that specifies additional options for the request. + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Returns the result of an asynchronous request to set permissions for the queue. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous request to set permissions for the queue. + + The permissions to apply to the queue. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to set permissions for the queue. + + The permissions to apply to the queue. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to set permissions for the queue. + + The permissions to apply to the queue. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to set permissions for the queue. + + The permissions to apply to the queue. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Gets the permissions settings for the queue. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + The queue's permissions. + + + + Begins an asynchronous request to get the permissions settings for the queue. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous request to get the permissions settings for the queue. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Returns the asynchronous result of the request to get the permissions settings for the queue. + + An that references the pending asynchronous operation. + The queue's permissions. + + + + Returns a task that performs an asynchronous request to get the permissions settings for the queue. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to get the permissions settings for the queue. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to get the permissions settings for the queue. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to get the permissions settings for the queue. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Checks existence of the queue. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + true if the queue exists. + + + + Checks existence of the queue. + + If true, the command will be executed against the primary location. + A object that specifies additional options for the request. + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + true if the queue exists. + + + + Begins an asynchronous request to check existence of the queue. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous request to check existence of the queue. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous request to check existence of the queue. + + If true, the command will be executed against the primary location. + A object that specifies additional options for the request. + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Returns the asynchronous result of the request to check existence of the queue. + + An that references the pending asynchronous operation. + true if the queue exists. + + + + Returns a task that performs an asynchronous request to check existence of the queue. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to check existence of the queue. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to check existence of the queue. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to check existence of the queue. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Sets the queue's user-defined metadata. + + A object that specifies additional options for the request. Specifying null will use the default request options from the associated service client (). + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + + + + Begins an asynchronous operation to set user-defined metadata on the queue. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to set user-defined metadata on the queue. + + A object that specifies additional options for the request. Specifying null will use the default request options from the associated service client (). + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous request operation to set user-defined metadata on the queue. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to set user-defined metadata on the queue. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to set user-defined metadata on the queue. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to set user-defined metadata on the queue. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to set user-defined metadata on the queue. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Fetches the queue's attributes. + + A object that specifies additional options for the request. Specifying null will use the default request options from the associated service client (). + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + + + + Begins an asynchronous operation to fetch the queue's attributes. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to fetch the queue's attributes. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to fetch a queue's attributes. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to fetch the queue's attributes. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to fetch the queue's attributes. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to fetch the queue's attributes. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to fetch the queue's attributes. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Adds a message to the queue. + + The message to add. + The maximum time to allow the message to be in the queue, or null. + The length of time from now during which the message will be invisible. + If null then the message will be visible immediately. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to add a message to the queue. + + The message to add. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to add a message to the queue. + + The message to add. + The maximum time to allow the message to be in the queue, or null. + The length of time from now during which the message will be invisible. + If null then the message will be visible immediately. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to add a message to the queue. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to add a message to the queue. + + The message to add. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to add a message to the queue. + + The message to add. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to add a message to the queue. + + The message to add. + The maximum time to allow the message to be in the queue, or null. + The length of time from now during which the message will be invisible. + If null then the message will be visible immediately. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to add a message to the queue. + + The message to add. + The maximum time to allow the message to be in the queue, or null. + The length of time from now during which the message will be invisible. + If null then the message will be visible immediately. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Updates the visibility timeout and optionally the content of a message. + + The message to update. + The visibility timeout interval. + Flags of values that specifies which parts of the message are to be updated. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + + + + Begins an asynchronous operation to update the visibility timeout and optionally the content of a message. + + The message to update. + The visibility timeout interval. + An EnumSet of values that specifies which parts of the message are to be updated. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to update the visibility timeout and optionally the content of a message. + + The message to update. + The visibility timeout interval. + An EnumSet of values that specifies which parts of the message are to be updated. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to add a message to the queue. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to update the visibility timeout and optionally the content of a message. + + The message to update. + The visibility timeout interval. + An EnumSet of values that specifies which parts of the message are to be updated. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to update the visibility timeout and optionally the content of a message. + + The message to update. + The visibility timeout interval. + An EnumSet of values that specifies which parts of the message are to be updated. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to update the visibility timeout and optionally the content of a message. + + The message to update. + The visibility timeout interval. + An EnumSet of values that specifies which parts of the message are to be updated. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to update the visibility timeout and optionally the content of a message. + + The message to update. + The visibility timeout interval. + An EnumSet of values that specifies which parts of the message are to be updated. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Deletes a message. + + A message. + A object that specifies additional options for the request. Specifying null will use the default request options from the associated service client (). + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + + + + Deletes the specified message from the queue. + + The message ID. + The pop receipt value. + A object that specifies additional options for the request. Specifying null will use the default request options from the associated service client (). + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + + + + Begins an asynchronous operation to delete a message. + + A message. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to delete a message. + + A message. + A object that specifies additional options for the request. Specifying null will use the default request options from the associated service client (). + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to delete a message. + + The message ID. + The pop receipt value. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to delete a message. + + The message ID. + The pop receipt value. + A object that specifies additional options for the request. Specifying null will use the default request options from the associated service client (). + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to delete a message. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to delete a message. + + A message. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to delete a message. + + A message. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to delete a message. + + A message. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to delete a message. + + A message. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to delete a message. + + The message ID. + The pop receipt value. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to delete a message. + + The message ID. + The pop receipt value. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to delete a message. + + The message ID. + The pop receipt value. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to delete a message. + + The message ID. + The pop receipt value. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Gets the specified number of messages from the queue using the specified request options and + operation context. This operation marks the retrieved messages as invisible in the queue for the default + visibility timeout period. + + The number of messages to retrieve. + The visibility timeout interval. + A object that specifies additional options for the request. Specifying null will use the default request options from the associated service client (). + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + An enumerable collection of messages. + + + + Begins an asynchronous operation to get messages from the queue. + + The number of messages to retrieve. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to get the specified number of messages from the queue using the + specified request options and operation context. This operation marks the retrieved messages as invisible in the + queue for the default visibility timeout period. + + The number of messages to retrieve. + The visibility timeout interval. + A object that specifies additional options for the request. Specifying null will use the default request options from the associated service client (). + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to get messages from the queue. + + An that references the pending asynchronous operation. + An enumerable collection of messages. + + + + Returns a task that performs an asynchronous operation to get messages from the queue. + + The number of messages to retrieve. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to get messages from the queue. + + The number of messages to retrieve. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to get the specified number of messages from the queue using the + specified request options and operation context. This operation marks the retrieved messages as invisible in the + queue for the default visibility timeout period. + + The number of messages to retrieve. + The visibility timeout interval. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to get the specified number of messages from the queue using the + specified request options and operation context. This operation marks the retrieved messages as invisible in the + queue for the default visibility timeout period. + + The number of messages to retrieve. + The visibility timeout interval. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Gets a message from the queue using the default request options. This operation marks the retrieved message as invisible in the queue for the default visibility timeout period. + + The visibility timeout interval. + A object that specifies additional options for the request. Specifying null will use the default request options from the associated service client (). + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + A message. + + + + Begins an asynchronous operation to get a single message from the queue. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to get a single message from the queue, and specifies how long the message should be + reserved before it becomes visible, and therefore available for deletion. + + The visibility timeout interval. + A object that specifies additional options for the request. Specifying null will use the default request options from the associated service client (). + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to get a single message from the queue. + + An that references the pending asynchronous operation. + A message. + + + + Returns a task that performs an asynchronous operation to get a single message from the queue. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to get a single message from the queue. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to get a single message from the queue, and specifies how long the message should be + reserved before it becomes visible, and therefore available for deletion. + + The visibility timeout interval. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to get a single message from the queue, and specifies how long the message should be + reserved before it becomes visible, and therefore available for deletion. + + The visibility timeout interval. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Peeks a message from the queue, using the specified request options and operation context. A peek request retrieves a message from the queue without changing its visibility. + + The number of messages to peek. + A object that specifies additional options for the request. Specifying null will use the default request options from the associated service client (). + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + An enumerable collection of messages. + + + + Begins an asynchronous operation to peek messages from the queue. + + The number of messages to peek. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to peek messages from the queue. + + The number of messages to peek. + A object that specifies additional options for the request. Specifying null will use the default request options from the associated service client (). + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to peek messages from the queue. + + An that references the pending asynchronous operation. + An enumerable collection of messages. + + + + Returns a task that performs an asynchronous operation to peek messages from the queue. + + The number of messages to peek. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to peek messages from the queue. + + The number of messages to peek. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to peek messages from the queue. + + The number of messages to peek. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to peek messages from the queue. + + The number of messages to peek. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Peeks a single message from the queue. A peek request retrieves a message from the queue without changing its visibility. + + A object that specifies additional options for the request. Specifying null will use the default request options from the associated service client (). + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + A message. + + + + Begins an asynchronous operation to get a single message from the queue. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to peek a single message from the queue. + + A object that specifies additional options for the request. Specifying null will use the default request options from the associated service client (). + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to peek a single message from the queue. + + An that references the pending asynchronous operation. + A message. + + + + Returns a task that performs an asynchronous operation to get a single message from the queue. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to get a single message from the queue. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to get a single message from the queue. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to get a single message from the queue. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Clears all messages from the queue. + + A object that specifies additional options for the request. Specifying null will use the default request options from the associated service client (). + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + + + + Begins an asynchronous operation to clear all messages from the queue. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to clear all messages from the queue. + + A object that specifies additional options for the request. Specifying null will use the default request options from the associated service client (). + An object that represents the context for the current operation. This object is used to track requests to the storage service, and to provide additional runtime information about the operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to clear all messages from the queue. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to clear all messages from the queue. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to clear all messages from the queue. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to clear all messages from the queue. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to clear all messages from the queue. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Ends an asynchronous operation to clear all messages from the queue. + + An that references the pending asynchronous operation. + + + + Implementation for the ClearMessages method. + + A object that specifies additional options for the request. + A that gets the permissions. + + + + Implementation for the Create method. + + A object that specifies additional options for the request. + A that creates the queue. + + + + Implementation for the Delete method. + + A object that specifies additional options for the request. + A that deletes the queue. + + + + Implementation for the FetchAttributes method. + + A object that specifies additional options for the request. + A that fetches the attributes. + + + + Implementation for the Exists method. + + A object that specifies additional options for the request. + If true, the command will be executed against the primary location. + A that checks existence. + + + + Implementation for the SetMetadata method. + + A object that specifies additional options for the request. + A that sets the metadata. + + + + Implementation for the SetPermissions method. + + The permissions to set. + A object that specifies additional options for the request. + A that sets the permissions. + + + + Implementation for the GetPermissions method. + + A object that specifies additional options for the request. + A that gets the permissions. + + + + Implementation for the AddMessageImpl method. + + A queue message. + A value indicating the message time-to-live. + The visibility delay for the message. + A object that specifies additional options for the request. + A that sets the permissions. + + + + Implementation for the UpdateMessage method. + + A queue message. + The visibility timeout for the message. + Indicates whether to update the visibility delay, message contents, or both. + A object that specifies additional options for the request. + A that sets the permissions. + + + + Implementation for the DeleteMessage method. + + The message ID. + The pop receipt value. + A object that specifies additional options for the request. + A that deletes the queue. + + + + Implementation for the GetPermissions method. + + The number of messages to retrieve. + The visibility timeout interval. + A object that specifies additional options for the request. + A that gets the permissions. + + + + Implementation for the PeekMessages method. + + The number of messages to retrieve. + A object that specifies additional options for the request. + A that gets the permissions. + + + + Gets the ApproximateMessageCount and metadata from response. + + The web response. + + + + Update the message pop receipt and next visible time. + + The Cloud Queue Message. + The web response. + + + + Initializes a new instance of the class. + + The absolute URI to the queue. + + + + Initializes a new instance of the class. + + The absolute URI to the queue. + The account credentials. + + + + Initializes a new instance of the class. + + The absolute URI to the queue. + The account credentials. + + + + Initializes a new instance of the class. + + The queue name. + A client object that specifies the endpoint for the queue service. + + + + Uri for the messages. + + + + + Gets the Uri for general message operations. + + + + + Gets the individual message address. + + The message id. + The URI of the message. + + + + Parse URI for SAS (Shared Access Signature) information. + + The complete Uri. + The credentials to use. + + + + Returns the canonical name for shared access. + + The canonical name. + + + + Selects the get message response. + + The protocol message. + The parsed message. + + + + Selects the peek message response. + + The protocol message. + The parsed message. + + + + Returns a shared access signature for the queue. + + The access policy for the shared access signature. + A queue-level access policy. + A shared access signature, as a URI query string. + The query string returned includes the leading question mark. + + + + Gets the service client for the queue. + + A client object that specifies the endpoint for the queue service. + + + + Gets the queue's URI for the primary location. + + The absolute URI to the queue, at the primary location. + + + + Gets the queue's URIs for all locations. + + An object of type containing the queue's URIs for all locations. + + + + Gets the name of the queue. + + The queue's name. + + + + Gets the approximate message count for the queue. + + The approximate message count. + + + + Gets or sets a value indicating whether to apply base64 encoding when adding or retrieving messages. + + True to encode messages; otherwise, false. The default value is true. + + + + Gets the queue's metadata. + + The queue's metadata. + + + + Provides a client-side logical representation of the Windows Azure Queue service. This client is used to configure and execute requests against the Queue service. + + The service client encapsulates the base URI for the Queue service. If the service client will be used for authenticated access, it also encapsulates the credentials for accessing the storage account. + + Provides a client-side logical representation of the Windows Azure Queue service. This client is used to configure and execute requests against the Queue service. + + The service client encapsulates the base URI for the Queue service. If the service client will be used for authenticated access, it also encapsulates the credentials for accessing the storage account. + + + + Returns an enumerable collection of the queues in the storage account whose names begin with the specified prefix and that are retrieved lazily. + + The queue name prefix. + An enumeration value that indicates which details to include in the listing. + An object that specifies additional options for the request. + An object that represents the context for the current operation. This object is used to track requests, and to provide additional runtime information about the operation. + An enumerable collection of objects that implement and are retrieved lazily. + + + + Returns a result segment containing a collection of queues in the storage account. + + A continuation token returned by a previous listing operation. + A result segment containing objects that implement . + + + + Returns a result segment containing a collection of queues in the storage account. + + The queue name prefix. + A continuation token returned by a previous listing operation. + A result segment containing objects that implement . + + + + Returns a result segment containing a collection of queues in the storage account. + + The queue name prefix. + A enumeration describing which items to include in the listing. + A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the + per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A returned by a previous listing operation. + An object that specifies additional options for the request. + An object that represents the context for the current operation. This object is used to track requests, and to provide additional runtime information about the operation. + A result segment containing objects that implement . + + + + Returns a result segment containing a collection of queues in the storage account. + + The queue name prefix. + A enumeration describing which items to include in the listing. + A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the + per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A returned by a previous listing operation. + An object that specifies additional options for the request. + An object that represents the context for the current operation. This object is used to track requests, and to provide additional runtime information about the operation. + A result segment. + + + + Begins an asynchronous operation to return a result segment containing a collection of queue items. + + A returned by a previous listing operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to return a result segment containing a collection of queue items. + + The queue name prefix. + A returned by a previous listing operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to return a result segment containing a collection of queue items. + + The queue name prefix. + A enumeration describing which items to include in the listing. + A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the + per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A returned by a previous listing operation. + An object that specifies additional options for the request. + An object that represents the context for the current operation. This object is used to track requests, and to provide additional runtime information about the operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to return a result segment containing a collection of queue items. + + An that references the pending asynchronous operation. + A queue result segment. + + + + Returns a task that performs an asynchronous operation to return a result segment containing a collection of queue items. + + A returned by a previous listing operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to return a result segment containing a collection of queue items. + + A returned by a previous listing operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to return a result segment containing a collection of queue items. + + The queue name prefix. + A returned by a previous listing operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to return a result segment containing a collection of queue items. + + The queue name prefix. + A returned by a previous listing operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to return a result segment containing a collection of queue items. + + The queue name prefix. + A enumeration describing which items to include in the listing. + A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the + per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A returned by a previous listing operation. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to return a result segment containing a collection of queue items. + + The queue name prefix. + A enumeration describing which items to include in the listing. + A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the + per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A returned by a previous listing operation. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Core implementation of the ListQueues method. + + The queue name prefix. + A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the + per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A enumeration describing which items to include in the listing. + An object that specifies additional options for the request. + The continuation token. + A that lists the queues. + + + + Begins an asynchronous operation to get the properties of the queue service. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user defined object to be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to get the properties of the queue service. + + A object that specifies additional options for the request. Specifying null will use the default request options from the associated service client (). + An object that represents the context for the current operation. This object is used to track requests, and to provide additional runtime information about the operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user defined object to be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to get the properties of the queue service. + + The result returned from a prior call to . + A object containing the queue service properties. + + + + Returns a task that performs an asynchronous operation to get the properties of the queue service. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to get the properties of the queue service. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to get the properties of the queue service. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to get the properties of the queue service. + + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Gets the properties of the queue service. + + A object that specifies additional options for the request. Specifying null will use the default request options from the associated service client (). + An object that represents the context for the current operation. This object is used to track requests, and to provide additional runtime information about the operation. + The queue service properties. + + + + Begins an asynchronous operation to set the properties of the queue service. + + The queue service properties. + The callback delegate that will receive notification when the asynchronous operation completes. + A user defined object to be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to set the properties of the queue service. + + The queue service properties. + A object that specifies additional options for the request. Specifying null will use the default request options from the associated service client (). + An object that represents the context for the current operation. This object is used to track requests, and to provide additional runtime information about the operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user defined object to be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to set the properties of the queue service. + + The result returned from a prior call to . + + + + Returns a task that performs an asynchronous operation to set the properties of the queue service. + + The queue service properties. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to set the properties of the queue service. + + The queue service properties. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to set the properties of the queue service. + + The queue service properties. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to set the properties of the queue service. + + The queue service properties. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Sets the properties of the queue service. + + The queue service properties. + A object that specifies additional options for the request. Specifying null will use the default request options from the associated service client (). + An object that represents the context for the current operation. This object is used to track requests, and to provide additional runtime information about the operation. + + + + Begins an asynchronous operation to get the stats of the queue service. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user defined object to be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to get the stats of the queue service. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user defined object to be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to get the stats of the queue service. + + An that references the pending asynchronous operation. + The queue service stats. + + + + Returns a task that performs an asynchronous operation to get the stats of the queue service. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to get the stats of the queue service. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to get the stats of the queue service. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to get the stats of the queue service. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Gets the stats of the queue service. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + The queue service stats. + + + + The default server and client timeout interval. + + + + + Max execution time across all potential retries. + + + + + Initializes a new instance of the class using the specified queue service endpoint + and anonymous credentials. + + The queue service endpoint to use to create the client. + + + + Initializes a new instance of the class using the specified queue service endpoint + and account credentials. + + The queue service endpoint to use to create the client. + The account credentials. + + + + Initializes a new instance of the class using the specified Queue service endpoint + and account credentials. + + The Queue service endpoint to use to create the client. + The account credentials. + + + + Returns a reference to a object with the specified name. + + The name of the queue, or an absolute URI to the queue. + A reference to a queue. + + + + Gets or sets the authentication scheme to use to sign HTTP requests. + + + + + Gets the authentication handler used to sign HTTP requests. + + The authentication handler. + + + + Gets or sets a buffer manager that implements the interface, + specifying a buffer pool for use with operations against the Queue service client. + + + + + Gets the account credentials used to create the queue service client. + + The account credentials. + + + + Gets the base URI for the Queue service client, at the primary location. + + The base URI used to construct the Queue service client, at the primary location. + + + + Gets the Queue service endpoints for all locations. + + An object of type containing Queue service URIs for all locations. + + + + Gets or sets the default retry policy for requests made via the Queue service client. + + The retry policy. + + + + Gets or sets the default location mode for requests made via the Queue service client. + + The location mode. + + + + Gets or sets the default server and client timeout for requests made via the Queue service client. + + The server and client timeout interval. + + + + Gets or sets the maximum execution time across all potential retries. + + The maximum execution time across all potential retries. + + + + Gets a value indicating whether the service client is used with Path style or Host style. + + Is true if use path style URIs; otherwise, false. + + + + Represents a message in the Windows Azure Queue service. + + + Represents a message in the Windows Azure Queue service. + + + + + The maximum message size in bytes. + + + + + The maximum number of messages that can be peeked at a time. + + + + + Initializes a new instance of the class with the given byte array. + + The content of the message as a byte array. + + + + Sets the content of this message. + + The new message content. + + + + The maximum amount of time a message is kept in the queue. + + + + + Custom UTF8Encoder to throw exception in case of invalid bytes. + + + + + Initializes a new instance of the class with the given byte array. + + + + + Initializes a new instance of the class with the given string. + + The content of the message as a string of text. + + + + Initializes a new instance of the class with the given message ID and pop receipt. + + The message ID. + The pop receipt token. + + + + Initializes a new instance of the class with the given Base64 encoded string. + This method is only used internally. + + The text string. + Whether the string is Base64 encoded. + + + + Gets the content of the message for transfer (internal use only). + + Indicates if the message should be encoded. + The message content as a string. + + + + Sets the content of this message. + + The new message content. + + + + Gets the maximum message size in bytes. + + The maximum message size in bytes. + + + + Gets the maximum amount of time a message is kept in the queue. + + The maximum amount of time a message is kept in the queue. + + + + Gets the maximum number of messages that can be peeked at a time. + + The maximum number of messages that can be peeked at a time. + + + + Gets the content of the message as a byte array. + + The content of the message as a byte array. + + + + Gets the message ID. + + The message ID. + + + + Gets the message's pop receipt. + + The pop receipt value. + + + + Gets the time that the message was added to the queue. + + The time that the message was added to the queue. + + + + Gets the time that the message expires. + + The time that the message expires. + + + + Gets the time that the message will next be visible. + + The time that the message will next be visible. + + + + Gets the content of the message, as a string. + + The message content. + + + + Gets the number of times this message has been dequeued. + + The number of times this message has been dequeued. + + + + Gets message type that indicates if the RawString is the original message string or Base64 encoding of the original binary data. + + + + + Gets or sets the original message string or Base64 encoding of the original binary data. + + The original message string. + + + + Provides a set of methods for parsing a response containing queue data from the Queue service. + + + + + Gets the request ID from the response. + + The web response. + A unique value associated with the request. + + + + Gets the approximate message count for the queue. + + The web response. + The approximate count for the queue. + + + + Gets the user-defined metadata. + + The response from server. + An object of type containing the metadata. + + + + Extracts the pop receipt from a web response header. + + The web response. + The pop receipt stored in the header of the response. + + + + Extracts the next visibility time from a web response header. + + The web response. + The time of next visibility stored in the header of the response. + + + + Reads service properties from a stream. + + The stream from which to read the service properties. + The service properties stored in the stream. + + + + Reads service stats from a stream. + + The stream from which to read the service stats. + The service stats stored in the stream. + + + + Reads the share access policies from a stream in XML. + + The stream of XML policies. + The permissions object to which the policies are to be written. + + + + A factory class for constructing a web request to manage queues in the Queue service. + + + + + Creates a web request to get the properties of the Queue service. + + The absolute URI to the Queue service. + An object of type , containing additional parameters to add to the URI query string. + The server timeout interval, in seconds. + An object for tracking the current operation. + + A web request to get the Queue service properties. + + + + + Creates a web request to set the properties of the Queue service. + + The absolute URI to the Queue service. + An object of type , containing additional parameters to add to the URI query string. + The server timeout interval, in seconds. + An object for tracking the current operation. + + A web request to set the Queue service properties. + + + + + Creates a web request to get the stats of the Queue service. + + The absolute URI to the Queue service. + An object of type , containing additional parameters to add to the URI query string. + The server timeout interval, in seconds. + An object for tracking the current operation. + + A web request to get the Queue service stats. + + + + + Writes Queue service properties to a stream, formatted in XML. + + The service properties to format and write to the stream. + The stream to which the formatted properties are to be written. + + + + Constructs a web request to create a new queue. + + The absolute URI to the queue. + The server timeout interval. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Constructs a web request to delete the queue and all of the messages within it. + + The absolute URI to the queue. + The server timeout interval. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Constructs a web request to clear all messages in the queue. + + The absolute URI to the queue. + The server timeout interval. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Generates a web request to return the user-defined metadata for this queue. + + The absolute URI to the queue. + The server timeout interval. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Generates a web request to set user-defined metadata for the queue. + + The absolute URI to the queue. + The server timeout interval. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Adds user-defined metadata to the request as one or more name-value pairs. + + The web request. + The user-defined metadata. + + + + Adds user-defined metadata to the request as a single name-value pair. + + The web request. + The metadata name. + The metadata value. + + + + Constructs a web request to return a listing of all queues in this storage account. + + The absolute URI for the account. + The server timeout interval. + A set of parameters for the listing operation. + Additional details to return with the listing. + An object for tracking the current operation. + A web request for the specified operation. + + + + Constructs a web request to return the ACL for a queue. + + The absolute URI to the queue. + The server timeout interval. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Constructs a web request to set the ACL for a queue. + + The absolute URI to the queue. + The server timeout interval. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Constructs a web request to add a message for a queue. + + The absolute URI to the queue. + The server timeout interval. + The message time-to-live, in seconds. + The visibility timeout, in seconds. + An object for tracking the current operation. + + A web request to use to perform the operation. + + + + + Constructs a web request to update a message. + + The absolute URI to the message to update. + The server timeout interval, in seconds. + The pop receipt of the message. + The length of time from now during which the message will be invisible, in seconds. + An object for tracking the current operation. + A web request for the update operation. + + + + Constructs a web request to update a message. + + The absolute URI to the message to update. + The server timeout interval, in seconds. + The pop receipt of the message. + An object for tracking the current operation. + A web request for the update operation. + + + + Constructs a web request to get messages for a queue. + + The absolute URI to the queue. + The server timeout interval. + The number of messages. + The visibility timeout. + An object for tracking the current operation. + + A web request to use to perform the operation. + + + + + Constructs a web request to peeks messages for a queue. + + The absolute URI to the queue. + The server timeout interval. + The number of messages. + An object for tracking the current operation. + + A web request to use to perform the operation. + + + + + Represents a Windows Azure table. + + + Represents a Windows Azure table. + + + + + Executes the operation on a table, using the specified and . + + A object that represents the operation to perform. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + A containing the result of executing the operation on the table. + + + + Begins an asynchronous table operation. + + A object that represents the operation to perform. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous table operation using the specified and . + + A object that represents the operation to perform. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous table operation. + + An that references the pending asynchronous operation. + A containing the result executing the operation on the table. + + + + Returns a task that performs an asynchronous table operation using the specified and . + + A object that represents the operation to perform. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous table operation using the specified and . + + A object that represents the operation to perform. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous table operation using the specified and . + + A object that represents the operation to perform. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous table operation using the specified and . + + A object that represents the operation to perform. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Executes a batch operation on a table as an atomic operation, using the specified and . + + The object representing the operations to execute on the table. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + An enumerable collection of objects that contains the results, in order, of each operation in the on the table. + + + + Begins an asynchronous operation to execute a batch of operations on a table. + + The object representing the operations to execute on the table. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to execute a batch of operations on a table, using the specified and . + + The object representing the operations to execute on the table. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous batch of operations on a table. + + An that references the pending asynchronous operation. + A enumerable collection of type that contains the results, in order, of each operation in the on the table. + + + + Returns a task that performs an asynchronous operation to execute a batch of operations on a table, using the specified and . + + The object representing the operations to execute on the table. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to execute a batch of operations on a table, using the specified and . + + The object representing the operations to execute on the table. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to execute a batch of operations on a table, using the specified and . + + The object representing the operations to execute on the table. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to execute a batch of operations on a table, using the specified and . + + The object representing the operations to execute on the table. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Executes a query on a table, using the specified and . + + A representing the query to execute. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + An enumerable collection of objects, representing table entities returned by the query. + + + + Executes a query in segmented mode with the specified continuation token, , and . + + A representing the query to execute. + A object representing a continuation token from the server when the operation returns a partial result. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + A object containing the results of executing the query. + + + + Begins an asynchronous segmented query operation using the specified continuation token. + + A representing the query to execute. + A object representing a continuation token from the server when the operation returns a partial result. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to query a table in segmented mode using the specified continuation token, , and . + + A representing the query to execute. + A object representing a continuation token from the server when the operation returns a partial result. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous segmented query operation. + + An that references the pending asynchronous operation. + A object containing the results of executing the query. + + + + Returns a task that performs an asynchronous operation to query a table in segmented mode using the specified continuation token, , and . + + A representing the query to execute. + A object representing a continuation token from the server when the operation returns a partial result. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to query a table in segmented mode using the specified continuation token, , and . + + A representing the query to execute. + A object representing a continuation token from the server when the operation returns a partial result. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to query a table in segmented mode using the specified continuation token, , and . + + A representing the query to execute. + A object representing a continuation token from the server when the operation returns a partial result. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to query a table in segmented mode using the specified continuation token, , and . + + A representing the query to execute. + A object representing a continuation token from the server when the operation returns a partial result. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Executes a query on a table, using the specified and , applying the to the result. + + A representing the query to execute. + An instance which creates a projection of the table query result entities into the specified type TResult. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + An enumerable collection, containing the projection into type TResult, of the results of executing the query. + + + + Executes a query in segmented mode with the specified continuation token, , and . + + A representing the query to execute. + An instance which creates a projection of the table query result entities into the specified type TResult. + A object representing a continuation token from the server when the operation returns a partial result. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + A object containing the results of executing the query. + + + + Begins an asynchronous segmented query operation using the specified continuation token. + + A representing the query to execute. + An instance which creates a projection of the table query result entities into the specified type TResult. + A object representing a continuation token from the server when the operation returns a partial result. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to execute a query in segmented mode with the specified continuation token, , and , applies the to the results. + + The type into which the will project the query results. + A instance specifying the table to query and the query parameters to use, specialized for a type TElement. + An instance which creates a projection of the table query result entities into the specified type TResult. + A object representing a continuation token from the server when the operation returns a partial result. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Returns a task that performs an asynchronous operation to execute a query in segmented mode with the specified continuation token, , and , applies the to the results. + + The type into which the will project the query results. + A instance specifying the table to query and the query parameters to use, specialized for a type TElement. + An instance which creates a projection of the table query result entities into the specified type TResult. + A object representing a continuation token from the server when the operation returns a partial result. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to execute a query in segmented mode with the specified continuation token, , and , applies the to the results. + + The type into which the will project the query results. + A instance specifying the table to query and the query parameters to use, specialized for a type TElement. + An instance which creates a projection of the table query result entities into the specified type TResult. + A object representing a continuation token from the server when the operation returns a partial result. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to execute a query in segmented mode with the specified continuation token, , and , applies the to the results. + + The type into which the will project the query results. + A instance specifying the table to query and the query parameters to use, specialized for a type TElement. + An instance which creates a projection of the table query result entities into the specified type TResult. + A object representing a continuation token from the server when the operation returns a partial result. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to execute a query in segmented mode with the specified continuation token, , and , applies the to the results. + + The type into which the will project the query results. + A instance specifying the table to query and the query parameters to use, specialized for a type TElement. + An instance which creates a projection of the table query result entities into the specified type TResult. + A object representing a continuation token from the server when the operation returns a partial result. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + A factory method that creates a query that can be modified using LINQ. The query may be subsequently executed using one of the execution methods available for , + such as , , or . + + The entity type of the query. + A object, specialized for type TElement, that may subsequently be executed. + + The namespace includes extension methods for the object, + including , , and . To use these methods, include a using + statement that references the namespace. + + + + + Executes a query on a table, using the specified and . + + The entity type of the query. + A TableQuery instance specifying the table to query and the query parameters to use, specialized for a type T implementing TableEntity. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + An enumerable collection, specialized for type TElement, of the results of executing the query. + + + + Queries a table in segmented mode using the specified continuation token, , and . + + The entity type of the query. + A instance specifying the table to query and the query parameters to use, specialized for a type TElement. + A object representing a continuation token from the server when the operation returns a partial result. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + A , specialized for type TElement, containing the results of executing the query. + + + + Begins an asynchronous operation to query a table in segmented mode, using the specified continuation token. + + The entity type of the query. + A instance specifying the table to query and the query parameters to use, specialized for a type TElement. + A object representing a continuation token from the server when the operation returns a partial result. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to query a table in segmented mode using the specified continuation token and . + + The entity type of the query. + A instance specifying the table to query and the query parameters to use, specialized for a type TElement. + A object representing a continuation token from the server when the operation returns a partial result. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous segmented table query operation. + + The type of the results to be returned. Can be the entity type specified in the Begin or the result type of the resolver + An that references the pending asynchronous operation. + A containing the results of executing the query. + + + + Returns a task that performs an asynchronous operation to query a table in segmented mode using the specified continuation token and . + + The entity type of the query. + A instance specifying the table to query and the query parameters to use, specialized for a type TElement. + A object representing a continuation token from the server when the operation returns a partial result. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to query a table in segmented mode using the specified continuation token and . + + The entity type of the query. + A instance specifying the table to query and the query parameters to use, specialized for a type TElement. + A object representing a continuation token from the server when the operation returns a partial result. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to query a table in segmented mode using the specified continuation token and . + + The entity type of the query. + A instance specifying the table to query and the query parameters to use, specialized for a type TElement. + A object representing a continuation token from the server when the operation returns a partial result. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to query a table in segmented mode using the specified continuation token and . + + The entity type of the query. + A instance specifying the table to query and the query parameters to use, specialized for a type TElement. + A object representing a continuation token from the server when the operation returns a partial result. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Executes a query, using the specified and , applying the to the result. + + The entity type of the query. + The type into which the will project the query results. + A instance specifying the table to query and the query parameters to use, specialized for a type TElement. + An instance which creates a projection of the table query result entities into the specified type TResult. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + An enumerable collection, containing the projection into type TResult, of the results of executing the query. + + + + Executes a query in segmented mode with the specified continuation token, using the specified and , applying the to the results. + + The entity type of the query. + The type into which the will project the query results. + A instance specifying the table to query and the query parameters to use, specialized for a type TElement. + An instance which creates a projection of the table query result entities into the specified type TResult. + A object representing a continuation token from the server when the operation returns a partial result. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + A containing the projection into type TResult of the results of executing the query. + + + + Begins an asynchronous operation to query a table in segmented mode, using the specified and continuation token. + + The entity type of the query. + The type into which the will project the query results. + A instance specifying the table to query and the query parameters to use, specialized for a type TElement. + An instance which creates a projection of the table query result entities into the specified type TResult. + A object representing a continuation token from the server when the operation returns a partial result. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to execute a query in segmented mode with the specified continuation token, , and , applies the to the results. + + The entity type of the query. + The type into which the will project the query results. + A instance specifying the table to query and the query parameters to use, specialized for a type TElement. + An instance which creates a projection of the table query result entities into the specified type TResult. + A object representing a continuation token from the server when the operation returns a partial result. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous segmented table query operation. + + The entity type of the query. + The type into which the will project the query results. + An that references the pending asynchronous operation. + A containing the projection into type TResult of the results of executing the query. + + + + Returns a task that performs an asynchronous operation to execute a query in segmented mode with the specified continuation token, , and , applies the to the results. + + The entity type of the query. + The type into which the will project the query results. + A instance specifying the table to query and the query parameters to use, specialized for a type TElement. + An instance which creates a projection of the table query result entities into the specified type TResult. + A object representing a continuation token from the server when the operation returns a partial result. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to execute a query in segmented mode with the specified continuation token, , and , applies the to the results. + + The entity type of the query. + The type into which the will project the query results. + A instance specifying the table to query and the query parameters to use, specialized for a type TElement. + An instance which creates a projection of the table query result entities into the specified type TResult. + A object representing a continuation token from the server when the operation returns a partial result. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to execute a query in segmented mode with the specified continuation token, , and , applies the to the results. + + The entity type of the query. + The type into which the will project the query results. + A instance specifying the table to query and the query parameters to use, specialized for a type TElement. + An instance which creates a projection of the table query result entities into the specified type TResult. + A object representing a continuation token from the server when the operation returns a partial result. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to execute a query in segmented mode with the specified continuation token, , and , applies the to the results. + + The entity type of the query. + The type into which the will project the query results. + A instance specifying the table to query and the query parameters to use, specialized for a type TElement. + An instance which creates a projection of the table query result entities into the specified type TResult. + A object representing a continuation token from the server when the operation returns a partial result. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Creates a table. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + + + + Begins an asynchronous operation to create a table. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to create a table. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to create a table. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to create a table. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to create a table. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to create a table. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to create a table. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Creates the table if it does not already exist. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + true if table was created; otherwise, false. + + + + Begins an asynchronous operation to create a table if it does not already exist. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to create a table if it does not already exist. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to determine whether a table exists. + + An that references the pending asynchronous operation. + true if table exists; otherwise, false. + + + + Returns a task that performs an asynchronous operation to create a table if it does not already exist. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to create a table if it does not already exist. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to create a table if it does not already exist. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to create a table if it does not already exist. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Deletes a table. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + + + + Begins an asynchronous operation to delete a table. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to delete a table. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to delete a table. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous operation to delete a table. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to delete a table. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to delete a table. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to delete a table. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Deletes the table if it exists. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + true if the table was deleted; otherwise, false. + + + + Begins an asynchronous operation to delete the table if it exists. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to delete the table if it exists. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to delete the table if it exists. + + An that references the pending asynchronous operation. + true if the table was deleted; otherwise, false. + + + + Returns a task that performs an asynchronous operation to delete the table if it exists. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to delete the table if it exists. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to delete the table if it exists. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to delete the table if it exists. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Checks whether the table exists. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + true if table exists; otherwise, false. + + + + Checks whether the table exists. + + If true, the command will be executed against the primary location. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + true if table exists; otherwise, false. + + + + Begins an asynchronous operation to determine whether a table exists. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to determine whether a table exists. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to determine whether a table exists. + + If true, the command will be executed against the primary location. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to determine whether a table exists. + + An that references the pending asynchronous operation. + true if table exists; otherwise, false. + + + + Returns a task that performs an asynchronous operation to determine whether a table exists. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to determine whether a table exists. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to determine whether a table exists. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to determine whether a table exists. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Gets the permissions settings for the table. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + The table's permissions. + + + + Begins an asynchronous request to get the permissions settings for the table. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous request to get the permissions settings for the table. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Returns the asynchronous result of the request to get the permissions settings for the table. + + An that references the pending asynchronous operation. + The table's permissions. + + + + Returns a task that performs an asynchronous request to get the permissions settings for the table. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to get the permissions settings for the table. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to get the permissions settings for the table. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to get the permissions settings for the table. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Sets the permissions settings for the table. + + A object that represents the permissions to set. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + + + + Begins an asynchronous request to set permissions for the table. + + The permissions to apply to the table. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous request to set permissions for the table. + + The permissions to apply to the table. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Returns the asynchronous result of the request to get the permissions settings for the table. + + An that references the pending asynchronous operation. + + + + Returns a task that performs an asynchronous request to set permissions for the table. + + The permissions to apply to the table. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to set permissions for the table. + + The permissions to apply to the table. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to set permissions for the table. + + The permissions to apply to the table. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous request to set permissions for the table. + + The permissions to apply to the table. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Initializes a new instance of the class. + + The absolute URI to the table. + + + + Initializes a new instance of the class. + + The absolute URI to the table. + The account credentials. + + + + Initializes a new instance of the class. + + The absolute URI to the table. + The account credentials. + + + + Initializes a new instance of the class. + + The table name. + The client. + + + + Returns a shared access signature for the table. + + The access policy for the shared access signature. + An access policy identifier. + The start partition key, or null. + The start row key, or null. + The end partition key, or null. + The end row key, or null. + A shared access signature, as a URI query string. + The query string returned includes the leading question mark. + Thrown if the current credentials don't support creating a shared access signature. + + + + Returns the name of the table. + + The name of the table. + + + + Parse URI for SAS (Shared Access Signature) information. + + The complete Uri. + The credentials to use. + + + + Gets the canonical name of the table, formatted as /<account-name>/<table-name>. + + The canonical name of the table. + + + + Gets the object that represents the Table service. + + A client object that specifies the Table service endpoint. + + + + Gets the table name. + + The table name. + + + + Gets the table's URI for the primary location. + + The absolute URI to the table, at the primary location. + + + + Gets the table's URIs for all locations. + + An object of type containing the table's URIs for all locations. + + + + Provides a client-side logical representation of the Windows Azure Table Service. This client is used to configure and execute requests against the Table Service. + + The service client encapsulates the base URI for the Table service. If the service client will be used for authenticated access, it also encapsulates the credentials for accessing the storage account. + + Provides a client-side logical representation of the Windows Azure Table service. This client is used to configure and execute requests against the Table service. + + The CloudTableClient object encapsulates the base URI for the Table service. If the service client will be used for authenticated access, + it also encapsulates the credentials for accessing the storage account. + + + + Returns an enumerable collection of tables, which are retrieved lazily, that begin with the specified prefix. + + The table name prefix. + A object that specifies additional options for the request. + An object that provides information on how the operation executed. + An enumerable collection of tables that are retrieved lazily. + + + + Returns an enumerable collection of tables in the storage account. + + A returned by a previous listing operation. + An enumerable collection of tables. + + + + Returns an enumerable collection of tables, which are retrieved lazily, that begin with the specified prefix. + + The table name prefix. + A returned by a previous listing operation. + An enumerable collection of tables that are retrieved lazily. + + + + Returns an enumerable collection of tables that begin with the specified prefix and that are retrieved lazily. + + The table name prefix. + A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the + per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A returned by a previous listing operation. + A object that specifies additional options for the request. + An object that provides information on how the operation executed. + An enumerable collection of tables that are retrieved lazily. + + + + Begins an asynchronous operation to return a result segment containing a collection of tables + in the storage account. + + A returned by a previous listing operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to return a result segment containing a collection + of tables beginning with the specified prefix. + + The table name prefix. + A returned by a previous listing operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to return a result segment containing a collection + of tables beginning with the specified prefix. + + The table name prefix. + A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the + per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A returned by a previous listing operation. + The server timeout, maximum execution time, and retry policies for the operation. + An object that provides information on how the operation executed. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to return a result segment containing a collection + of tables. + + An that references the pending asynchronous operation. + A result segment containing tables. + + + + Returns a task that performs an asynchronous operation to return a result segment containing a collection + of tables beginning with the specified prefix. + + A returned by a previous listing operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to return a result segment containing a collection + of tables beginning with the specified prefix. + + A returned by a previous listing operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to return a result segment containing a collection + of tables beginning with the specified prefix. + + The table name prefix. + A returned by a previous listing operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to return a result segment containing a collection + of tables beginning with the specified prefix. + + The table name prefix. + A returned by a previous listing operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to return a result segment containing a collection + of tables beginning with the specified prefix. + + The table name prefix. + A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the + per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A returned by a previous listing operation. + The server timeout, maximum execution time, and retry policies for the operation. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to return a result segment containing a collection + of tables beginning with the specified prefix. + + The table name prefix. + A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the + per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000. + A returned by a previous listing operation. + The server timeout, maximum execution time, and retry policies for the operation. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Gets the service properties for the Table service. + + A object that specifies additional options for the request. + An object that provides information on how the operation executed. + The table service properties as a object. + + + + Begins an asynchronous operation to get the service properties of the Table service. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user defined object to be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to get the service properties of the Table service. + + A object that specifies additional options for the request. + An object that provides information on how the operation executed. + The callback delegate that will receive notification when the asynchronous operation completes. + A user defined object to be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to get the service properties of the Table service. + + The result returned from a prior call to . + The table service properties. + + + + Returns a task that performs an asynchronous operation to get the service properties of the Table service. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to get the service properties of the Table service. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to get the service properties of the Table service. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to get the service properties of the Table service. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Sets the service properties of the Table service. + + The table service properties. + A object that specifies additional options for the request. + An object that provides information on how the operation executed. + + + + Begins an asynchronous operation to set the service properties of the Table service. + + The table service properties. + The callback delegate that will receive notification when the asynchronous operation completes. + A user defined object to be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to set the service properties of the Table service. + + The table service properties. + A object that specifies additional options for the request. + An object that provides information on how the operation executed. + The callback delegate that will receive notification when the asynchronous operation completes. + A user defined object to be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to set the service properties of the Table service. + + The result returned from a prior call to + + + + Returns a task that performs an asynchronous operation to set the service properties of the Table service. + + The table service properties. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to set the service properties of the Table service. + + The table service properties. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to set the service properties of the Table service. + + The table service properties. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to set the service properties of the Table service. + + The table service properties. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Begins an asynchronous operation to get the stats of the table service. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user defined object to be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to get the stats of the table service. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user defined object to be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to get the stats of the table service. + + An that references the pending asynchronous operation. + The table service stats. + + + + Returns a task that performs an asynchronous operation to get the stats of the table service. + + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to get the stats of the table service. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to get the stats of the table service. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to get the stats of the table service. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Gets the stats of the table service. + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + The table service stats. + + + + Creates a new object for performing operations against the Table service. + + A service context to use for performing operations against the Table service. + + + + The default server and client timeout interval. + + + + + Max execution time across all potential retries. + + + + + Initializes a new instance of the class using the specified Table service endpoint + and anonymous credentials. + + The Table service endpoint to use to create the client. + + + + Initializes a new instance of the class using the specified Table service endpoint + and storage account credentials. + + The Table service endpoint to use to create the client. + The storage account credentials. + + + + Initializes a new instance of the class using the specified Blob service endpoint + and account credentials. + + The Table service endpoint to use to create the client. + The storage account credentials. + + + + Gets a reference to the specified table. + + The name of the table. + A object. + + + + Gets or sets the authentication scheme to use to sign HTTP requests. + + Note that if you are using the legacy Table service API, which is based on WCF Data Services, the authentication scheme used by the TableServiceContext object will always be Shared Key Lite, regardless of the value of this property. + + + + Gets the authentication handler used to sign HTTP requests. + + The authentication handler. + + + + Gets or sets a buffer manager that implements the interface, + specifying a buffer pool for use with operations against the Table service client. + + + + + Gets the storage account credentials used to create the Table service client. + + The storage account credentials. + + + + Gets the base URI for the Table service client, at the primary location. + + The base URI used to construct the Table service client, at the primary location. + + + + Gets the Table service endpoints for all locations. + + An object of type containing Table service URIs for all locations. + + + + Gets or sets the default retry policy for requests made via the Table service client. + + The retry policy. + + + + Gets or sets the default location mode for requests made via the Table service client. + + The location mode. + + + + Gets or sets the default server and client timeout for requests. + + The server and client timeout interval. + + + + Gets or sets the maximum execution time across all potential retries. + + The maximum execution time across all potential retries. + + + + Gets and sets the that is used for any table accessed with this object. + + The TablePayloadFormat to use. + + + + Gets a value indicating whether the service client is used with Path style or Host style. + + Is true if use path style URIs; otherwise, false. + + + + Gets the associated account name for the client. + + The account name. + + + + Represents a custom attribute that can be used to ignore entity properties during serialization/de-serialization. + + + + + Represents a batch operation on a table. + + + Represents a batch operation on a table. + + A batch operation is a collection of table operations which are executed by the Storage Service REST API as a single atomic operation, by invoking an + Entity Group Transaction.A batch operation may contain up to 100 individual + table operations, with the requirement that each operation entity must have same partition key. A batch with a retrieve operation cannot contain any other operations. + Note that the total payload of a batch operation is limited to 4MB. + + + + Inserts a into the batch that retrieves an entity based on its row key and partition key. The entity will be deserialized into the specified class type which extends . + + The class of type for the entity to retrieve. + A string containing the partition key of the entity to retrieve. + A string containing the row key of the entity to retrieve. + + + + Adds a table operation to retrieve an entity of the specified class type with the specified partition key and row key to the batch operation. + + The return type which the specified will resolve the given entity to. + A string containing the partition key of the entity to retrieve. + A string containing the row key of the entity to retrieve. + The implementation to project the entity to retrieve as a particular type in the result. + + + + Initializes a new instance of the class. + + + + + Adds a to the that deletes the specified entity from a table. + + The entity to be deleted from the table. + + + + Adds a to the that inserts the specified entity into a table. + + The entity to be inserted into the table. + + + + Adds a object that inserts the specified entity into the table as part of the batch operation. + + The entity to be inserted into the table. + true if the message payload should be returned in the response to the insert operation;otherwise, false. + + + + Adds a to the that inserts the specified entity into a table if the entity does not exist; if the entity does exist then its contents are merged with the provided entity. + + The entity whose contents are being inserted or merged. + + + + Adds a to the that inserts the specified entity into a table if the entity does not exist; if the entity does exist then its contents are replaced with the provided entity. + + The entity whose contents are being inserted or replaced. + + + + Adds a to the that merges the contents of the specified entity with the existing entity in a table. + + The entity whose contents are being merged. + + + + Adds a to the that replaces the contents of the specified entity in a table. + + The entity whose contents are being replaced. + + + + Adds a to the that retrieves an entity with the specified partition key and row key. + + A string containing the partition key of the entity to retrieve. + A string containing the row key of the entity to retrieve. + + + + Returns the zero-based index of the first occurrence of the specified item, or -1 if the does not contain the item. + + The item to search for. + The zero-based index of the first occurrence of item within the , if found; otherwise, –1. + + + + Inserts a into the at the specified index. + + The index at which to insert the . + The item to insert. + + + + Removes the at the specified index from the . + + The index of the to remove from the . + + + + Adds the to the . + + The item to add to the . + + + + Clears all objects from the . + + + + + Returns true if this contains the specified element. + + The item to search for. + true if the item is contained in the ; false, otherwise. + + + + Copies all the elements of the to the specified one-dimensional array starting at the specified destination array index. + + The one-dimensional array that is the destination of the elements copied from the . + The index in the destination array at which copying begins. + + + + Removes the specified item from the . + + The item to remove. + true if the item was successfully removed; false, otherwise. + + + + Returns an for the . + + An enumerable collection of items. + + + + Returns an . + + An for the . + + + + Gets or sets the item at the specified index. + + The index at which to get or set the item. + The item at the specified index. + + + + Gets the number of operations in this . + + The number of operations in the . + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; false, otherwise. + + + + Represents a single table operation. + + + Represents a single table operation. + + + + + Creates a new table operation that retrieves the contents of + the given entity in a table. + + The class of type for the entity to retrieve. + A string containing the partition key of the entity to retrieve. + A string containing the row key of the entity to retrieve. + The object. + + + + Creates a new table operation that retrieves the contents of + the given entity in a table. + + The return type which the specified will resolve the given entity to. + A string containing the partition key of the entity to retrieve. + A string containing the row key of the entity to retrieve. + The implementation to project the entity to retrieve as a particular type in the result. + The object. + + + + Creates a new instance of the class given the + entity to operate on and the type of operation that is being + performed. + + The entity on which the operation is being performed. + The type of operation. + + + + Creates a new table operation that deletes the given entity + from a table. + + The entity to be deleted from the table. + The object. + + + + Creates a new table operation that inserts the given entity + into a table. + + The entity to be inserted into the table. + The object. + + + + Creates a new table operation that inserts the given entity + into a table. + + The entity to be inserted into the table. + true if the message payload should be returned in the response to the insert operation. false otherwise. + The table operation. + + + + Creates a new table operation that inserts the given entity + into a table if the entity does not exist; if the entity does + exist then its contents are merged with the provided entity. + + The entity whose contents are being inserted + or merged. + The object. + + + + Creates a new table operation that inserts the given entity + into a table if the entity does not exist; if the entity does + exist then its contents are replaced with the provided entity. + + The entity whose contents are being inserted + or replaced. + The object. + + + + Creates a new table operation that merges the contents of + the given entity with the existing entity in a table. + + The entity whose contents are being merged. + The object. + + + + Creates a new table operation that replaces the contents of + the given entity in a table. + + The entity whose contents are being replaced. + The object. + + + + Creates a new table operation that replaces the contents of + the given entity in a table. + + The partition key of the entity to be replaced. + The row key of the entity to be replaced. + The object. + + + + Gets the entity that is being operated upon. + + + + + Gets the type of operation. + + + + + Gets or sets the value that represents whether the message payload should be returned in the response. + + + + + Represents a query against a Windows Azure table. + + A class which implements . + + Represents a query against a specified table. + + + + + Initializes a new instance of the class. + + + + + Executes a query on a table, using the specified and . + + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + An enumerable collection, specialized for type TElement, of the results of executing the query. + + + + Begins an asynchronous operation to execute a query and return the results as a result segment. + + A continuation token returned by a previous listing operation, can be null. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to execute a query and return the results as a result segment. + + A continuation token returned by a previous listing operation, can be null. + An object for tracking the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to execute a query and return the results as a result segment. + + The reference to the pending asynchronous request to finish. + A result segment containing objects of type . + + + + Begins an asynchronous operation to execute a query and return the results as a result segment. + + A continuation token returned by a previous listing operation, can be null. + A of object that represents the current operation. + + + + Begins an asynchronous operation to execute a query and return the results as a result segment. + + A continuation token returned by a previous listing operation, can be null./// A to observe while waiting for a task to complete. + A of object that represents the current operation. + + + + Begins an asynchronous operation to execute a query and return the results as a result segment. + + A continuation token returned by a previous listing operation, can be null. + An object for tracking the current operation. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + A of object that represents the current operation. + + + + Begins an asynchronous operation to execute a query and return the results as a result segment. + + A continuation token returned by a previous listing operation, can be null. + An object for tracking the current operation. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + A to observe while waiting for a task to complete. + A of object that represents the current operation. + + + + Queries a table in segmented mode using the specified continuation token, , and . + + A object representing a continuation token from the server when the operation returns a partial result. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object for tracking the current operation. + A , specialized for type TElement, containing the results of executing the query. + + + + Returns an enumerator that iterates through the . + + An for the . + + + + Generates a property filter condition string for the string value. + + A string containing the name of the property to compare. + A string containing the comparison operator to use. + A string containing the value to compare with the property. + A string containing the formatted filter condition. + + + + Generates a property filter condition string for the boolean value. + + A string containing the name of the property to compare. + A string containing the comparison operator to use. + A bool containing the value to compare with the property. + A string containing the formatted filter condition. + + + + Generates a property filter condition string for the binary value. + + A string containing the name of the property to compare. + A string containing the comparison operator to use. + A byte array containing the value to compare with the property. + A string containing the formatted filter condition. + + + + Generates a property filter condition string for the value. + + A string containing the name of the property to compare. + A string containing the comparison operator to use. + A containing the value to compare with the property. + A string containing the formatted filter condition. + + + + Generates a property filter condition string for the value. + + A string containing the name of the property to compare. + A string containing the comparison operator to use. + A containing the value to compare with the property. + A string containing the formatted filter condition. + + + + Generates a property filter condition string for the value. + + A string containing the name of the property to compare. + A string containing the comparison operator to use. + A containing the value to compare with the property. + A string containing the formatted filter condition. + + + + Generates a property filter condition string for the value. + + A string containing the name of the property to compare. + A string containing the comparison operator to use. + A containing the value to compare with the property. + A string containing the formatted filter condition. + + + + Generates a property filter condition string for the value. + + A string containing the name of the property to compare. + A string containing the comparison operator to use. + A containing the value to compare with the property. + A string containing the formatted filter condition. + + + + Generates a property filter condition string for the value, formatted as the specified . + + A string containing the name of the property to compare. + A string containing the comparison operator to use. + A string containing the value to compare with the property. + The to format the value as. + A string containing the formatted filter condition. + + + + Creates a filter condition using the specified logical operator on two filter conditions. + + A string containing the first formatted filter condition. + A string containing Operators.AND or Operators.OR. + A string containing the second formatted filter condition. + A string containing the combined filter expression. + + + + Defines the property names of the table entity properties to return when the table query is executed. + + The select clause is optional on a table query, used to limit the table properties returned from the server. By default, a query will return all properties from the table entity. + A list of string objects containing the property names of the table entity properties to return when the query is executed. + A instance set with the table entity properties to return. + + + + Defines the upper bound for the number of entities the query returns. + + The maximum number of entities for the table query to return. + A instance set with the number of entities to return. + + + + Defines a filter expression for the table query. Only entities that satisfy the specified filter expression will be returned by the query. + + Setting a filter expression is optional; by default, all entities in the table are returned if no filter expression is specified in the table query. + A string containing the filter expression to apply to the table query. + A instance set with the filter on entities to return. + + + + Gets the type of the element(s) that are returned when the expression tree is executed. + + + + + Gets the expression tree. + + + + + Gets the query provider that is associated with this data source. + + + + + Gets or sets the number of entities the query returns specified in the table query. + + The maximum number of entities for the table query to return. + + + + Gets or sets the filter expression to use in the table query. + + A string containing the filter expression to use in the query. + + + + Gets or sets the property names of the table entity properties to return when the table query is executed. + + A list of strings containing the property names of the table entity properties to return when the query is executed. + + + + Represents a query against a specified table. + + The class aggregates and encodes the query parameters to pass with the request when the query is executed. + To execute the query, call the executeQuery or executeQuerySegmented method of the class. + + + + Represents a query against a specified table. + + A instance aggregates the query parameters to use when the query is executed. One of the executeQuery or executeQuerySegmented methods + of must be called to execute the query. The parameters are encoded and passed to the server when the table query is executed. + + + + Specifies the names of the entity properties to return when the query is executed against the table. + + The Project clause is optional on a query, used to limit the properties returned from the server. By default, a query will return all properties from the entity. + The entity type of the query. + The entity instance to project off of. + A list of string objects containing the names of the entity properties to return when the query is executed. + A instance set with the entity properties to return. + + + + Generates a property filter condition string for the string value. + + A string containing the name of the property to compare. + A string containing the comparison operator to use. + A string containing the value to compare with the property. + A string containing the formatted filter condition. + + + + Generates a property filter condition string for the boolean value. + + A string containing the name of the property to compare. + A string containing the comparison operator to use. + A bool containing the value to compare with the property. + A string containing the formatted filter condition. + + + + Generates a property filter condition string for the binary value. + + A string containing the name of the property to compare. + A string containing the comparison operator to use. + A byte array containing the value to compare with the property. + A string containing the formatted filter condition. + + + + Generates a property filter condition string for the value. + + A string containing the name of the property to compare. + A string containing the comparison operator to use. + A containing the value to compare with the property. + A string containing the formatted filter condition. + + + + Generates a property filter condition string for the value. + + A string containing the name of the property to compare. + A string containing the comparison operator to use. + A containing the value to compare with the property. + A string containing the formatted filter condition. + + + + Generates a property filter condition string for the value. + + A string containing the name of the property to compare. + A string containing the comparison operator to use. + A containing the value to compare with the property. + A string containing the formatted filter condition. + + + + Generates a property filter condition string for the value. + + A string containing the name of the property to compare. + A string containing the comparison operator to use. + A containing the value to compare with the property. + A string containing the formatted filter condition. + + + + Generates a property filter condition string for the value. + + A string containing the name of the property to compare. + A string containing the comparison operator to use. + A containing the value to compare with the property. + A string containing the formatted filter condition. + + + + Generates a property filter condition string for the value, formatted as the specified . + + A string containing the name of the property to compare. + A string containing the comparison operator to use. + A string containing the value to compare with the property. + The to format the value as. + A string containing the formatted filter condition. + + + + Creates a filter condition using the specified logical operator on two filter conditions. + + A string containing the first formatted filter condition. + A string containing Operators.AND or Operators.OR. + A string containing the second formatted filter condition. + A string containing the combined filter expression. + + + + Defines the property names of the table entity properties to return when the table query is executed. + + The select clause is optional on a table query, used to limit the table properties returned from the server. By default, a query will return all properties from the table entity. + A list of string objects containing the property names of the table entity properties to return when the query is executed. + A instance set with the table entity properties to return. + + + + Defines the upper bound for the number of entities the query returns. + + The maximum number of entities for the table query to return. + A instance set with the number of entities to return. + + + + Defines a filter expression for the table query. Only entities that satisfy the specified filter expression will be returned by the query. + + Setting a filter expression is optional; by default, all entities in the table are returned if no filter expression is specified in the table query. + A string containing the filter expression to apply to the table query. + A instance set with the filter on entities to return. + + + + Gets or sets the number of entities the table query will return. + + The maximum number of entities for the table query to return. + + + + Gets or sets the filter expression to use in the table query. + + A string containing the filter expression to use in the query. + + + + Gets or sets the property names of the table entity properties to return when the table query is executed. + + A list of strings containing the property names of the table entity properties to return when the query is executed. + + + + Represents the default EDM entity container for table storage. + + + + + Initializes a new instance of the EdmEntityContainer class and sets the model and entity set. The name and namespace should not matter since we look for default entity container. + + Sets the data model that will be used for table transactions. + + + + Searches for an entity set with the given name in this entity container and creates a new set if no such set exists. + + The name of the element being found. + The requested element, or the new element created if no such element exists. + + + + Represents a data model that will be used by OData for table transactions. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Searches for a type with the given name in this model and creates a new type if no such type exists. + + The qualified name of the type being found. + The requested type, or the new type created if no such type exists. + + + + Create a new type with the standard set of properties(PK, RK and TimeStamp). + + Namespace the entity belongs to. + Name of the entity. + The EdmEntityType created. + + + + Searches for a type with the given name in this model. Returns true if such a type is found, otherwise returns false. + + The qualified name of the type being found. + true if the type is found; otherwise, false. + + + + Represents a object for use with the Windows Azure Table service. + + The class does not support concurrent queries or requests. + + + + Initializes a new instance of the class. + + + + + Callback on DataContext object sending request. + + The sender. + The instance containing the event data. + + + + Saves changes, using the retry policy specified for the service context. + + A that represents the result of the operation. + + + + Saves changes, using the retry policy specified for the service context. + + Additional options for saving changes. + + + A that represents the result of the operation. + + + + Begins an asynchronous operation to save changes, using the retry policy specified for the service context. + + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to save changes, using the retry policy specified for the service context. + + Additional options for saving changes. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to save changes, using the retry policy specified for the service context. + + Additional options for saving changes. + An object for tracking the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + + An that references the asynchronous operation. + + + + Ends an asynchronous operation to save changes. + + An that references the pending asynchronous operation. + A that represents the result of the operation. + + + + Returns a object that performs an asynchronous operation to save changes, using the retry policy specified for the service context. + + A object that represents the current operation. + + + + Returns a object that performs an asynchronous operation to save changes, using the retry policy specified for the service context. + + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a object that performs an asynchronous operation to save changes, using the retry policy specified for the service context. + + Additional options for saving changes. + A object that represents the current operation. + + + + Returns a object that performs an asynchronous operation to save changes, using the retry policy specified for the service context. + + Additional options for saving changes. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a object that performs an asynchronous operation to save changes, using the retry policy specified for the service context. + + Additional options for saving changes. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a object that performs an asynchronous operation to save changes, using the retry policy specified for the service context. + + Additional options for saving changes. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Releases all resources used by the TableServiceContext. + + + + + Releases the unmanaged resources used by the TableServiceContext and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Gets the object that represents the Table service. + + A client object that specifies the Table service endpoint. + + + + Gets the authentication handler used to sign HTTP requests. + + The authentication handler. + + + + Represents an entity in the Windows Azure Table service. + + + + + Initializes a new instance of the class. + + The partition key. + The row key. + + + + Initializes a new instance of the class. + + + + + Gets or sets the timestamp for the entity. + + The entity's timestamp. + + + + Gets or sets the partition key of a table entity. + + The partition key. + + + + Gets or sets the row key of a table entity. + + The row key. + + + + Provides a set of extensions for the Table service. + + + + + Converts the query into a object that supports + additional operations like retries. + + The type of the element. + The query. + A object that represents the runtime context of the Table service. + The converted query. + + + + A class for constructing a query against the Table service. + + The type of the element. + + + + Initializes a new instance of the class. + + An object that implements . + A object. + + + + Expands the specified path. + + The path to expand. + A new query with the expanded path. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Executes the request with any specified options. + + An object of type . + An object for tracking the current operation. + An enumerable collection, specialized for type TElement, of the results of executing the query. + + + + Executes a segmented query against the Table service. + + The continuation token. + The request options. + An object for tracking the current operation. + A result segment containing objects of type . + + + + Begins an asynchronous operation to execute a query and return the results as a result segment. + + A continuation token returned by a previous listing operation, can be null. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Begins an asynchronous operation to execute a query and return the results as a result segment. + + A continuation token returned by a previous listing operation, can be null. + A object that specifies additional options for the request. + An object that represents the context for the current operation. + The callback delegate that will receive notification when the asynchronous operation completes. + A user-defined object that will be passed to the callback delegate. + An that references the asynchronous operation. + + + + Ends an asynchronous operation to execute a query and return the results as a result segment. + + The reference to the pending asynchronous request to finish. + A result segment containing objects of type . + + + + Returns a task that performs an asynchronous operation to execute a query and return the results as a result segment. + + A continuation token returned by a previous listing operation, can be null. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to execute a query and return the results as a result segment. + + A continuation token returned by a previous listing operation, can be null. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to execute a query and return the results as a result segment. + + A continuation token returned by a previous listing operation, can be null. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A object that represents the current operation. + + + + Returns a task that performs an asynchronous operation to execute a query and return the results as a result segment. + + A continuation token returned by a previous listing operation, can be null. + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + An object that represents the context for the current operation. + A to observe while waiting for a task to complete. + A object that represents the current operation. + + + + Gets the table service context. + + + An object of type . + + + + + Stores the wrapped . + + + + + Gets the type of the element(s) that are returned when the expression tree associated with this + instance of is executed. + + + A that represents the type of the element(s) that are returned when the expression tree associated with this object is executed. + + + + + Gets the expression tree that is associated with the instance of . + + + The that is associated with this instance of . + + + + + Gets the query provider that is associated with this data source. + + + The that is associated with this data source. + + + + + A factory class for constructing a web request to manage tables in the Table service. + + + + + Creates a web request to get the properties of the Table service. + + The absolute URI to the Table service. + An object of type , containing additional parameters to add to the URI query string. + The server timeout interval, in seconds. + An object for tracking the current operation. + + A web request to get the Table service properties. + + + + + Creates a web request to set the properties of the Table service. + + The absolute URI to the Table service. + An object of type , containing additional parameters to add to the URI query string. + The server timeout interval, in seconds. + An object for tracking the current operation. + + A web request to set the Table service properties. + + + + + Creates a web request to get the stats of the Table service. + + The absolute URI to the Table service. + An object of type , containing additional parameters to add to the URI query string. + The server timeout interval, in seconds. + An object for tracking the current operation. + + A web request to get the Table service stats. + + + + + Writes Table service properties to a stream, formatted in XML. + + The service properties to format and write to the stream. + The stream to which the formatted properties are to be written. + + + + Constructs a web request to return the ACL for a table. + + The absolute URI to the table. + An object of type , containing additional parameters to add to the URI query string. + The server timeout interval. + An object for tracking the current operation. + + A web request to use to perform the operation. + + + + + Constructs a web request to set the ACL for a table. + + The absolute URI to the table. + An object of type , containing additional parameters to add to the URI query string. + The server timeout interval. + An object for tracking the current operation. + + A web request to use to perform the operation. + + + + + Provides a set of methods for parsing a response stream from the Table service. + + + + + Gets the request ID from the response. + + The web response. + A unique value associated with the request. + + + + Reads service properties from a stream. + + The stream from which to read the service properties. + The service properties stored in the stream. + + + + Reads service stats from a stream. + + The stream from which to read the service stats. + The service stats stored in the stream. + + + + Reads the share access policies from a stream in XML. + + The stream of XML policies. + The permissions object to which the policies are to be written. + + + + Gets the table continuation from response. + + The response. + The continuation. + + + + Translates the data service exception. + + The exception. + The request result. + The delegate used to parse the error to get extended error information. + + The translated exception. + + + + + Look for an inner exception of type T. + + The exception. + The found exception or null. + + + + Applies the continuation to query. + + The continuation token. + The local query. + The modified query. + + + + Gets the query take count. + + The type of the element. + The query. + The default value. + + The take count of the query, if any. + + + + + Gets the table continuation from response. + + The response. + The continuation. + + + + Copies the headers and properties from a request into a different request. + + The request to copy into. + The request to copy from. + + + + Gets an ETag from a response. + + The web response. + A quoted ETag string. + + + + Gets the user-defined metadata. + + The response from server. + A of the metadata. + + + + Gets the metadata or properties. + + The response from server. + The prefix for all the headers. + A of the headers with the prefix. + + + + Converts a string to UTC time. + + The string to convert. + A UTC representation of the string. + + + + Reads service properties from a stream. + + The stream from which to read the service properties. + The service properties stored in the stream. + + + + Reads service stats from a stream. + + The stream from which to read the service stats. + The service stats stored in the stream. + + + + Reads a collection of shared access policies from the specified object. + + A collection of shared access policies to be filled. + A policy response object for reading the stream. + The type of policy to read. + + + + Creates the web request. + + The HTTP method. + The request URI. + The timeout. + An object of type , containing additional parameters to add to the URI query string. + An object for tracking the current operation. + + A web request for performing the operation. + + + + + Creates the specified URI. + + The URI to create. + The timeout. + The builder. + An object for tracking the current operation. + A web request for performing the operation. + + + + Constructs a web request to return the ACL for a cloud resource. + + The absolute URI to the resource. + The server timeout interval. + An optional query builder to use. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Constructs a web request to set the ACL for a cloud resource. + + The absolute URI to the resource. + The server timeout interval. + An optional query builder to use. + An object for tracking the current operation. + A web request to use to perform the operation. + + + + Gets the properties. + + The URI to query. + The timeout. + The builder. + An object for tracking the current operation. + A web request for performing the operation. + + + + Gets the metadata. + + The blob Uri. + The timeout. + The builder. + An object for tracking the current operation. + A web request for performing the operation. + + + + Sets the metadata. + + The blob Uri. + The timeout. + The builder. + An object for tracking the current operation. + A web request for performing the operation. + + + + Adds the metadata. + + The request. + The metadata. + + + + Adds the metadata. + + The request. + The metadata name. + The metadata value. + + + + Deletes the specified URI. + + The URI of the resource to delete. + The timeout. + The builder. + An object for tracking the current operation. + A web request for performing the operation. + + + + Creates a web request to get the properties of the service. + + The absolute URI to the service. + An object of type , containing additional parameters to add to the URI query string. + The server timeout interval. + An object for tracking the current operation. + + A web request to get the service properties. + + + + + Creates a web request to set the properties of the service. + + The absolute URI to the service. + The builder. + The server timeout interval. + An object for tracking the current operation. + + A web request to set the service properties. + + + + + Creates a web request to get the stats of the service. + + The absolute URI to the service. + An object of type , containing additional parameters to add to the URI query string. + The server timeout interval. + An object for tracking the current operation. + + A web request to get the service stats. + + + + + Generates a query builder for building service requests. + + A for building service requests. + + + + Adds the lease id. + + The request. + The lease id. + + + + Adds an optional header to a request. + + The web request. + The metadata name. + The metadata value. + + + + Adds an optional header to a request. + + The web request. + The header name. + The header value. + + + + Adds an optional header to a request. + + The web request. + The header name. + The header value. + + + + Applies the lease condition to the web request. + + The request to be modified. + Access condition to be added to the request. + + + + Applies the sequence number condition to the web request. + + The request to be modified. + Access condition to be added to the request. + + + + Applies the condition to the web request. + + The request to be modified. + Access condition to be added to the request. + + + + Applies the condition for a source blob to the web request. + + The request to be modified. + Access condition to be added to the request. + + + + Creates a well-formatted log entry so that logs can be easily parsed + + An object that represents the context for the current operation. + A composite format string. + An object array that contains zero or more objects to format. + Log entry that contains common log prefix and a copy of format in which the format items have been replaced by the string representation of the corresponding objects in args. + + + + Determines if the current operation context allows for a specific level of log entry. + + Level of the log entry. + An object that represents the context for the current operation. + true if the entry should be logged; otherwise false. + + + + Represents a canonicalizer that converts HTTP request data into a standard form appropriate for signing. + For detailed information on how to authenticate a request, + see Authentication for the Windows Azure Storage Services. + + + + + Converts the specified HTTP request data into a standard form appropriate for signing. + + The HTTP request that needs to be signed. + The name of the storage account that the HTTP request will access. + The canonicalized string containing the HTTP request data in a standard form appropriate for signing. + Authentication for the Windows Azure Storage Services + + + + Gets the authorization scheme used for canonicalization. + + The authorization scheme used for canonicalization. + Authentication for the Windows Azure Storage Services + + + + Represents a canonicalizer that converts HTTP request data into a standard form appropriate for signing via + the Shared Key authentication scheme for the Blob or Queue service. + + Authentication for the Windows Azure Storage Services + + + + Converts the specified HTTP request data into a standard form appropriate for signing. + + The HTTP request that needs to be signed. + The name of the storage account that the HTTP request will access. + The canonicalized string containing the HTTP request data in a standard form appropriate for signing. + Authentication for the Windows Azure Storage Services + + + + Gets a static instance of the object. + + The static instance of the class. + Authentication for the Windows Azure Storage Services + + + + Gets the authorization scheme used for canonicalization. + + The authorization scheme used for canonicalization. + Authentication for the Windows Azure Storage Services + + + + Represents a canonicalizer that converts HTTP request data into a standard form appropriate for signing via + the Shared Key Lite authentication scheme for the Blob or Queue service. + + Authentication for the Windows Azure Storage Services + + + + Converts the specified HTTP request data into a standard form appropriate for signing. + + The HTTP request that needs to be signed. + The name of the storage account that the HTTP request will access. + The canonicalized string containing the HTTP request data in a standard form appropriate for signing. + Authentication for the Windows Azure Storage Services + + + + Gets a static instance of the object. + + The static instance of the class. + Authentication for the Windows Azure Storage Services + + + + Gets the authorization scheme used for canonicalization. + + The authorization scheme used for canonicalization. + Authentication for the Windows Azure Storage Services + + + + Represents a canonicalizer that converts HTTP request data into a standard form appropriate for signing via + the Shared Key Lite authentication scheme for the Table service. + + Authentication for the Windows Azure Storage Services + + + + Converts the specified HTTP request data into a standard form appropriate for signing. + + The HTTP request that needs to be signed. + The name of the storage account that the HTTP request will access. + The canonicalized string containing the HTTP request data in a standard form appropriate for signing. + Authentication for the Windows Azure Storage Services + + + + Gets a static instance of the object. + + The static instance of the class. + Authentication for the Windows Azure Storage Services + + + + Gets the authorization scheme used for canonicalization. + + The authorization scheme used for canonicalization. + Authentication for the Windows Azure Storage Services + + + + Represents a canonicalizer that converts HTTP request data into a standard form appropriate for signing via + the Shared Key authentication scheme for the Table service. + + Authentication for the Windows Azure Storage Services + + + + Converts the specified HTTP request data into a standard form appropriate for signing. + + The HTTP request that needs to be signed. + The name of the storage account that the HTTP request will access. + The canonicalized string containing the HTTP request data in a standard form appropriate for signing. + Authentication for the Windows Azure Storage Services + + + + Gets a static instance of the object. + + The static instance of the class. + Authentication for the Windows Azure Storage Services + + + + Gets the authorization scheme used for canonicalization. + + The authorization scheme used for canonicalization. + Authentication for the Windows Azure Storage Services + + + + Helper class to allow an APM Method to be executed with a given timeout in milliseconds + + + + + Helper class to convert an APM method to a Task method. + + + + + This class provides asynchronous semaphore functionality (based on Stephen Toub's blog). + + + + + Creates and initializes a new asynchronous copy operation. + + The source stream. + The destination stream. + An ExecutionState used to coordinate copy operation. + Size of read and write buffers used to move data. + Boolean value indicating whether the MD-5 should be calculated. + An object that represents the state for the current operation. + + + + Begins a stream copy operation. + + Callback delegate + Number of bytes to copy from source stream to destination stream. Cannot be passed with a value for maxLength. + Maximum length of the source stream. Cannot be passed with a value for copyLength. + + + + Aborts an ongoing copy operation. + + + + + Cleans up references. To end a copy operation, use Abort(). + + + + + Synchronizes Read and Write operations, and handles exceptions. + + Read/Write operation or null if first run. + + + + Helper method for EndOpWithCatch(IAsyncResult). Begins/Ends Read and Write Stream operations. + Should only be called by EndOpWithCatch(IAsyncResult) since it assumes we are inside the lock. + + Read/Write operation or null if first run. + + + + Callback for timeout timer. Aborts the AsyncStreamCopier operation if a timeout occurs. + + AsyncStreamCopier operation. + True if the timer has timed out, false otherwise. + + + + Aborts the AsyncStreamCopier operation. + + AsyncStreamCopier operation. + True if aborted due to a time out, or false for a general cancellation. + + + + Terminates and cleans up the AsyncStreamCopier. + + + + + Helper method for this.SignalCompletion() + Should only be called by this.SignalCompletion() + + + + + Determines whether the next operation should begin or halt due to an exception or cancellation. + + True to continue, false to halt. + + + + Waits for a read operation to end and updates the AsyncStreamCopier state. + + + + + Waits for a write operation to end and updates the AsyncStreamCopier state. + + + + + If a read operation has completed with data, swaps the read/write buffers and resets their corresponding counts. + This must be called inside a lock as it could lead to undefined behavior if multiple unsynchronized callers simultaneously called in. + + Number of bytes to write, or negative if no read operation has completed. + + + + Determines the number of bytes that should be read from the source in the next BeginRead operation. + Should only be called when no outstanding read operations exist. + + Number of bytes to read. + + + + Determines whether no more data can be read from the source Stream. + + True if at the end, false otherwise. + + + + Determines whether the current read buffer contains data ready to be written. + + True if read buffer is full, false otherwise. + + + + Represents an operation that supports cancellation. Used by + ICancellableAsyncResult implementations throughout the library. + Also used by AsyncExtensions as a bridge between CancellationToken + and the ICancellableAsyncResult returned by an APM method call. + + + + + The class is provides the helper functions to do FISMA compliant MD5. + + + + + Cryptographic service provider. + + + + + Access to the private keys is not required and the user interface can be bypassed. + + + + + ALG_ID value that identifies the hash algorithm to use. + + + + + The hash value or message hash for the hash object specified by hashHandle. + + + + + The address to which the function copies a handle to the new hash object. Has to be released by calling the CryptDestroyHash function after we are finished using the hash object. + + + + + A handle to a CSP created by a call to CryptAcquireContext. + + + + + Whether this object has been torn down or not. + + + + + Initializes a new instance of NativeMD5. + + + + + Finalizes an instance of the NativeMD5 class, unhooking it from all events. + + + + + Initializes an implementation of the NativeMD5 class. + + + + + Routes data written to the object into the hash algorithm for computing the hash. + + The input to compute the hash code for. + The offset into the byte array from which to begin using data. + The number of bytes in the byte array to use as data. + + + + Finalizes the hash computation after the last data is processed by the cryptographic stream object. + + The computed hash code. + + + + Releases the unmanaged resources used by the NativeMD5. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Validates the status returned by all the crypto functions and throws exception per the return code. + + The boolean status returned by the crypto functions. + + + + Represents the async result returned by operations that do not directly + call into the Executor. + + Async operation's result type + + + + Represents the async result returned by a storage command. + + + + + The callback provided by the user. + + + + + The state for the callback. + + + + + Indicates whether a task is completed. + + + + + Indicates whether task completed synchronously. + + + + + The event for blocking on this task's completion. + + + + + Initializes a new instance of the StorageCommandAsyncResult class. + + The callback method to be used on completion. + The state for the callback. + + + + We implement the dispose only to allow the explicit closing of the event. + + + + + Releases unmanaged and - optionally - managed resources. + + Set to true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Provides the lazy initialization of the WaitHandle (based on Joe Duffy's blog). + + The WaitHandle to use for waiting on completion. + + + + Called on completion of the async operation to notify the user + (Based on Joe Duffy's lockless design). + + + + + Blocks the calling thread until the async operation is completed. + + + + + Updates the CompletedSynchronously flag with another asynchronous operation result. + + Set to true if the last operation was completed synchronously; false if it was completed asynchronously. + + + + Gets A user-defined object that contains information about the asynchronous operation. + + + + + Gets a System.Threading.WaitHandle that is used to wait for an asynchronous operation to complete. + + + + + Gets a value indicating whether the asynchronous operation completed synchronously. + + + + + Gets a value indicating whether the asynchronous operation has completed. + + + + + Initializes a new instance of the StorageAsyncResult class. + + The callback method to be used on completion. + The state for the callback. + + + + Called on completion of the async operation to notify the user + + Exception that was caught by the caller. + + + + Blocks the calling thread until the async operation is completed and throws + any stored exceptions. + + + + + Represents a set of access conditions to be used for operations against the storage services. + + + + + Time for IfModifiedSince. + + + + + Time for IfUnmodifiedSince. + + + + + Constructs an empty access condition. + + An empty access condition. + + + + Constructs an access condition such that an operation will be performed only if the resource's ETag value + matches the specified ETag value. + + The ETag value that must be matched. + An AccessCondition object that represents the If-Match condition. + + + + Constructs an access condition such that an operation will be performed only if the resource has been + modified since the specified time. + + The time since which the resource must have been modified in order for the operation to proceed. + An AccessCondition object that represents the If-Modified-Since condition. + + + + Constructs an access condition such that an operation will be performed only if the resource's ETag value + does not match the specified ETag value. + + The ETag value that must be matched, or "*". + An AccessCondition object that represents the If-None-Match condition. + + If "*" is specified as the parameter then this condition requires that the resource does not exist. + + + + + Constructs an access condition such that an operation will be performed only if the resource has not been + modified since the specified time. + + The time since which the resource must not have been modified in order for the operation to proceed. + An AccessCondition object that represents the If-Unmodified-Since condition. + + + + Constructs an access condition such that an operation will be performed only if resource's current sequence + number is less than or equal to the specified value. + + The value that the current sequence number of the resource must be less than or equal to. + An AccessCondition object that represents the If-Sequence-Number-LE condition. + + + + Constructs an access condition such that an operation will be performed only if resource's current sequence + number is less than the specified value. + + The value that the current sequence number of the resource must be less than. + An AccessCondition object that represents the If-Sequence-Number-LT condition. + + + + Constructs an access condition such that an operation will be performed only if resource's current sequence + number is equal to the specified value. + + The value that the current sequence number of the resource must be equal to. + An AccessCondition object that represents the If-Sequence-Number-EQ condition. + + + + Constructs an access condition such that an operation will be performed only if the lease ID on the + resource matches the specified lease ID. + + The lease ID that must match the lease ID of the resource. + An AccessCondition object that represents the lease condition. + + + + Constructs an access condition such that an operation will be performed only if the resource's ETag value + matches the specified ETag value and the lease ID on the resource matches the lease ID specified in + the given access condition. + + An AccessCondition object that represents the lease condition. + The ETag value that must be matched. + An AccessCondition object that represents the If-Match and the lease conditions. + + + + Gets or sets an ETag value that must match the ETag of the specified resource. + + A string containing an ETag value, or "*" to match any ETag. If null, no condition exists. + + + + Gets or sets an ETag value that must not match the ETag of the specified resource. + + A string containing an ETag value, or "*" to match any ETag. If null, no condition exists. + + + + Gets or sets a time that must be before the last modification of a resource. + + A DateTimeOffset in UTC, or null if no condition exists. + + + + Gets or sets a time that must not be before the last modification of a resource. + + A DateTimeOffset in UTC, or null if no condition exists. + + + + Gets or sets a sequence number that the current sequence number of a page blob must be less than or equal to in order for the operation to proceed. + + A sequence number, or null if no condition exists. + This condition only applies to page blobs. + + + + Gets or sets a sequence number that the current sequence number of a page blob must be less than in order for the operation to proceed. + + A sequence number, or null if no condition exists. + This condition only applies to page blobs. + + + + Gets or sets a sequence number that the current sequence number of a page blob must be equal to in order for the operation to proceed. + + A sequence number, or null if no condition exists. + This condition only applies to page blobs. + + + + Gets or sets a lease ID that must match the lease on a resource. + + A lease ID, or null if no condition exists. + + + + Determines whether the access condition is one of the four conditional headers. + + true if the access condition is a conditional header; otherwise, false. + + + + Specifies the authentication scheme used to sign HTTP requests. + + + + + Signs HTTP requests using the Shared Key Lite authentication scheme. + + + + + Signs HTTP requests using the Shared Key authentication scheme. + + + + + Represents a Windows Azure Storage account. + + + + + The setting name for using the development storage. + + + + + The setting name for specifying a development storage proxy Uri. + + + + + The setting name for using the default storage endpoints with the specified protocol. + + + + + The setting name for the account name. + + + + + The setting name for the account key name. + + + + + The setting name for the account key. + + + + + The setting name for a custom blob storage endpoint. + + + + + The setting name for a custom queue endpoint. + + + + + The setting name for a custom table storage endpoint. + + + + + The setting name for a custom storage endpoint suffix. + + + + + The setting name for a shared access key. + + + + + The default account name for the development storage. + + + + + The default account key for the development storage. + + + + + The credentials string used to test for the development storage credentials. + + + + + The suffix appended to account in order to access secondary location for read only access. + + + + + The default storage service hostname suffix. + + + + + The default blob storage DNS hostname prefix. + + + + + The root queue DNS name prefix. + + + + + The root table storage DNS name prefix. + + + + + The FISMA compliance default value. + + + + + Validator for the UseDevelopmentStorage setting. Must be "true". + + + + + Validator for the DevelopmentStorageProxyUri setting. Must be a valid Uri. + + + + + Validator for the DefaultEndpointsProtocol setting. Must be either "http" or "https". + + + + + Validator for the AccountName setting. No restrictions. + + + + + Validator for the AccountKey setting. No restrictions. + + + + + Validator for the AccountKey setting. Must be a valid base64 string. + + + + + Validator for the BlobEndpoint setting. Must be a valid Uri. + + + + + Validator for the QueueEndpoint setting. Must be a valid Uri. + + + + + Validator for the TableEndpoint setting. Must be a valid Uri. + + + + + Validator for the EndpointSuffix setting. Must be a valid Uri. + + + + + Validator for the SharedAccessSignature setting. No restrictions. + + + + + Singleton instance for the development storage account. + + + + + Initializes a new instance of the class using the specified + account credentials and service endpoints. + + The account credentials. + The Blob service endpoint. + The Queue service endpoint. + The Table service endpoint. + + + + Initializes a new instance of the class using the specified + account credentials and service endpoints. + + The account credentials. + The Blob service endpoint. + The Queue service endpoint. + The Table service endpoint. + + + + Initializes a new instance of the class using the specified + account credentials and the default service endpoints. + + An object of type that + specifies the account name and account key for the storage account. + True to use HTTPS to connect to storage service endpoints; otherwise, false. + + + + Initializes a new instance of the class using the specified + account credentials and the default service endpoints. + + An object of type that + specifies the account name and account key for the storage account. + The DNS endpoint suffix for all storage services, e.g. "core.windows.net". + True to use HTTPS to connect to storage service endpoints; otherwise, false. + + + + Parses a connection string and returns a created + from the connection string. + + A valid connection string. + Thrown if is null or empty. + Thrown if is not a valid connection string. + Thrown if cannot be parsed. + A object constructed from the values provided in the connection string. + + + + Indicates whether a connection string can be parsed to return a object. + + The connection string to parse. + A object to hold the instance returned if + the connection string can be parsed. + true if the connection string was successfully parsed; otherwise, false. + + + + Creates the Table service client. + + A client object that specifies the Table service endpoint. + + + + Creates the Queue service client. + + A client object that specifies the Queue service endpoint. + + + + Creates the Blob service client. + + A client object that specifies the Blob service endpoint. + + + + Returns a connection string for this storage account, without sensitive data. + + A connection string. + + + + Returns a connection string for the storage account, optionally with sensitive data. + + True to include sensitive data in the string; otherwise, false. + A connection string. + + + + Returns a with development storage credentials using the specified proxy Uri. + + The proxy endpoint to use. + The new . + + + + Internal implementation of Parse/TryParse. + + The string to parse. + The to return. + A callback for reporting errors. + If true, the parse was successful. Otherwise, false. + + + + Tokenizes input and stores name value pairs. + + The string to parse. + Error reporting delegate. + Tokenized collection. + + + + Encapsulates a validation rule for an enumeration based account setting. + + The name of the setting. + A list of valid values for the setting. + An representing the enumeration constraint. + + + + Encapsulates a validation rule using a func. + + The name of the setting. + A func that determines if the value is valid. + An representing the constraint. + + + + Determines whether the specified setting value is a valid base64 string. + + The setting value. + true if the specified setting value is a valid base64 string; otherwise, false. + + + + Validation function that validates Uris. + + Value to validate. + true if the specified setting value is a valid Uri; otherwise, false. + + + + Validation function that validates a domain name. + + Value to validate. + true if the specified setting value is a valid domain; otherwise, false. + + + + Settings filter that requires all specified settings be present and valid. + + A list of settings that must be present. + The remaining settings or null if the filter's requirement is not satisfied. + + + + Settings filter that removes optional values. + + A list of settings that are optional. + The remaining settings or null if the filter's requirement is not satisfied. + + + + Settings filter that ensures that at least one setting is present. + + A list of settings of which one must be present. + The remaining settings or null if the filter's requirement is not satisfied. + + + + Settings filter that ensures that a valid combination of credentials is present. + + The remaining settings or null if the filter's requirement is not satisfied. + + + + Tests to see if a given list of settings matches a set of filters exactly. + + The settings to check. + A list of filters to check. + + If any filter returns null, false. + If there are any settings left over after all filters are processed, false. + Otherwise true. + + + + + Gets a StorageCredentials object corresponding to whatever credentials are supplied in the given settings. + + The settings to check. + The StorageCredentials object specified in the settings. + + + + Gets the default blob endpoint using specified settings. + + The settings to use. + The default blob endpoint. + + + + Gets the default blob endpoint using the specified protocol and account name. + + The protocol to use. + The name of the storage account. + The Endpoint DNS suffix; use null for default. + The default blob endpoint. + + + + Gets the default queue endpoint using the specified settings. + + The settings. + The default queue endpoint. + + + + Gets the default queue endpoint using the specified protocol and account name. + + The protocol to use. + The name of the storage account. + The Endpoint DNS suffix; use null for default. + The default queue endpoint. + + + + Gets the default table endpoint using the specified settings. + + The settings. + The default table endpoint. + + + + Gets the default table endpoint using the specified protocol and account name. + + The protocol to use. + The name of the storage account. + The Endpoint DNS suffix; use null for default. + The default table endpoint. + + + + Gets or sets a value indicating whether the FISMA MD5 setting will be used. + + false to use the FISMA MD5 setting; true to use the .NET default implementation. + + + + Gets a object that references the development storage account. + + A reference to the development storage account. + + + + Indicates whether this account is a development storage account. + + + + + The storage service hostname suffix set by the user, if any. + + + + + The connection string parsed into settings. + + + + + True if the user used a constructor that auto-generates endpoints. + + + + + Gets the primary endpoint for the Blob service, as configured for the storage account. + + The primary Blob service endpoint. + + + + Gets the primary endpoint for the Queue service, as configured for the storage account. + + The primary Queue service endpoint. + + + + Gets the primary endpoint for the Table service, as configured for the storage account. + + The primary Table service endpoint. + + + + Gets the endpoints for the Blob service, as configured for the storage account. + + An object of type containing the endpoints for the Blob service. + + + + Gets the endpoints for the Queue service, as configured for the storage account. + + An object of type containing the endpoints for the Queue service. + + + + Gets the endpoints for the Table service, as configured for the storage account. + + An object of type containing the endpoints for the Table service. + + + + Gets the credentials used to create this object. + + The credentials used to create the object. + + + + Specifies that the method will make one or more requests to the storage service. + + + + + An interface that allows clients to provide a buffer manager to a given service client. This interface is patterned after + the System.ServiceModel.Channels.BufferManager class. + + + + + Returns a buffer to the pool. + + A reference to the buffer being returned. + Buffer reference cannot be null. + Length of buffer does not match the pool's buffer length property. + + + + Gets a buffer of at least the specified size from the pool. + + The size, in bytes, of the requested buffer. + The value specified for cannot be less than zero. + A byte array that is the requested size of the buffer. + + + + Gets the size, in bytes, of the buffers managed by the given pool. Note that the buffer manager must return buffers of the exact size requested by the client. + + The size, in bytes, of the buffers managed by the given pool. + + + + An interface required for continuation token types. + + The , , + and classes implement the interface. + + + + Gets the location that the token applies to. + + The location that the token applies to. + + + + An interface required for request option types. + + The , , and classes implement the interface. + + + + Gets or sets the retry policy for the request. + + The retry policy delegate. + + + + Gets or sets the location mode of the request. + + The location mode of the request. + + + + Gets or sets the server timeout for the request. + + The client and server timeout interval for the request. + + + + Gets or sets the maximum execution time across all potential retries. + + The maximum execution time across all potential retries. + + + + Specifies what messages to output to the log. + + + + + Output no tracing and debugging messages. + + + + + Output error-handling messages. + + + + + Output warnings and error-handling messages. + + + + + Output informational messages, warnings, and error-handling messages. + + + + + Output all debugging and tracing messages. + + + + + Represents the context for a request operation against the storage service, and provides additional runtime information about its execution. + + + + + Initializes a new instance of the class. + + + + + Gets or sets additional headers on the request, for example, for proxy or logging information. + + A object containing additional header information. + + + + Gets or sets the client request ID. + + The client request ID. + + + + Gets or sets the default logging level to be used for subsequently created instances of the class. + + A value of type that specifies which events are logged by default by instances of the . + + + + Gets or sets the logging level to be used for an instance of the class. + + A value of type that specifies which events are logged by the . + + + + Occurs immediately before a request is signed. + + + + + Occurs when a response is received from the server. + + + + + Gets or sets the start time of the operation. + + The start time of the operation. + + + + Gets or sets the end time of the operation. + + The end time of the operation. + + + + Gets or sets the set of request results that the current operation has created. + + An object that contains objects that represent the request results created by the current operation. + + + + Gets the last request result encountered for the operation. + + A object that represents the last request result. + + + + Provides information and event data that is associated with a request event. + + + + + Initializes a new instance of the class by using the specified parameter. + + The object. + + + + Gets the request information associated with this event. + + The request information associated with this event. + + + + Gets the HTTP request associated with this event. + + The HTTP request associated with this event. + + + + Gets the HTTP response associated with this event. + + The HTTP response associated with this event. + + + + Represents the result of a physical request. + + + + + Translates the specified message into a object. + + The message to translate. + The translated . + + + + Generates a serializable RequestResult from its XML representation. + + The stream from which the RequestResult is deserialized. + + + + Converts a serializable RequestResult into its XML representation. + + The stream to which the RequestResult is serialized. + + + + Gets or sets the HTTP status code for the request. + + The HTTP status code for the request. + + + + Gets the HTTP status message for the request. + + The HTTP status message for the request. + + + + Gets the service request ID for this request. + + The service request ID for this request. + + + + Gets the content-MD5 value for the request. + + The content-MD5 value for the request. + + + + Gets the ETag value of the request. + + The ETag value of the request. + + + + Gets the request date. + + The request date. + + + + Gets the location that the request was sent to. + + The location that the request was sent to. + + + + Gets the extended error information. + + The extended error information. + + + + Gets or sets the exception. + + The exception. + + + + Gets the start time of the operation. + + The start time of the operation. + + + + Gets the end time of the operation. + + The end time of the operation. + + + + Represents a result segment that was retrieved from the total set of possible results. + + The type of the element. + + + + Stores the continuation token used to retrieve the next segment of results. + + + + + Initializes a new instance of the ResultSegment class. + + The result. + + + + Gets an enumerable collection of results. + + An enumerable collection of results. + + + + Gets a continuation token to use to retrieve the next set of results with a subsequent call to the operation. + + The continuation token. + + + + Represents an exception thrown by the Windows Azure storage service. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class using the specified error message. + + The message that describes the error. + + + + Initializes a new instance of the class with a specified error message and a reference to the inner exception that generated this exception. + + The exception error message. + The inner exception. + + + + Initializes a new instance of the class with serialized data. + + The that contains contextual information about the source or destination. + The object that holds serialized object data for the exception being thrown. + This constructor is called during de-serialization to reconstitute the exception object transmitted over a stream. + + + + Populates a object with the data needed to serialize the target object. + + The destination context for this serialization. + The object to populate with data. + + + + Initializes a new instance of the class by using the specified parameters. + + The request result. + The exception message. + The inner exception. + + + + Translates the specified exception into a . + + The exception to translate. + The request result. + The storage exception. + An exception of type . + + + + Translates the specified exception into a storage exception. + + The exception to translate. + The request result. + The delegate used to parse the error to get extended error information. + The storage exception. + + + + Translates the specified exception into a storage exception. + + The exception to translate. + The request result. + The delegate used to parse the error to get extended error information. + The error stream that contains the error information. + The storage exception. + + + + Tries to translate the specified exception into a storage exception. + + The exception to translate. + The request result. + The delegate used to parse the error to get extended error information. + The storage exception or null. + + + + Translates the specified exception into a storage exception. + + The exception to translate. + The request result. + The delegate used to parse the error to get extended error information. + The storage exception. + + + + Populate the RequestResult. + + The request result. + The web response. + + + + Represents an exception thrown by the Windows Azure storage client library. + + A string that represents the exception. + + + + Gets the object for this object. + + The object for this object. + + + + Represents extended error information returned by the Windows Azure storage services. + + + + + Initializes a new instance of the class. + + + + + Gets the error details from stream. + + The input stream. + The error details. + + + + Gets the error details from the stream using OData library. + + The input stream. + The web response. + The response Content-Type. + The error details. + + + + Gets the error details from the stream using OData library. + + The input stream. + The web response headers. + The response Content-Type. + The error details. + + + + Parses the error details from the stream using OData library. + + The IODataResponseMessage to parse. + The error details. + + + + Generates a serializable object from its XML representation. + + The stream from which the object is deserialized. + + + + Converts a serializable object into its XML representation. + + The stream to which the object is serialized. + + + + Gets the storage service error code. + + The storage service error code. + + + + Gets the storage service error message. + + The storage service error message. + + + + Gets additional error details. + + The additional error details. + + + + Represents a storage service location. + + + + + Primary storage service location. + + + + + Secondary storage service location. + + + + + Contains the URIs for both the primary and secondary locations of a Windows Azure Storage resource. + + + + + Initializes a new instance of the class using the primary endpoint for the storage account. + + The URI for the primary endpoint. + + + + Initializes a new instance of the class using the primary and secondary endpoints for the storage account. + + The URI for the primary endpoint. + The URI for the secondary endpoint. + + + + Returns the URI for the storage account endpoint at the specified location. + + The primary or secondary location for the storage account. + The of the specified location. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + 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. + + + + + 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. + + + + Indicates whether the current object is equal to another object of the same type. + + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + + The endpoint for the primary location for the storage account. + + + The URI for the primary endpoint. + + + + + The endpoint for the secondary location for the storage account. + + + The URI for the secondary endpoint. + + + + + Represents a set of credentials used to authenticate access to a Windows Azure storage account. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified account name and key value. + + A string that represents the name of the storage account. + A string that represents the Base64-encoded account access key. + + + + Initializes a new instance of the class with the specified account name and key value. + + A string that represents the name of the storage account. + An array of bytes that represent the account access key. + + + + Initializes a new instance of the class with the specified account name, key value, and key name. + + A string that represents the name of the storage account. + A string that represents the Base64-encoded account access key. + A string that represents the name of the key. + + + + Initializes a new instance of the class with the specified account name, key value, and key name. + + A string that represents the name of the storage account. + An array of bytes that represent the account access key. + A string that represents the name of the key. + + + + Initializes a new instance of the class with the specified shared access signature token. + + A string representing the shared access signature token. + + + + Updates the key value for the credentials. + + The key value, as a Base64-encoded string, to update. + + + + Updates the key value for the credentials. + + The key value, as an array of bytes, to update. + + + + Updates the key value and key name for the credentials. + + The key value, as a Base64-encoded string, to update. + The key name to update. + + + + Updates the key value and key name for the credentials. + + The key value, as an array of bytes, to update. + The key name to update. + + + + Updates the shared access signature (SAS) token value for storage credentials created with a shared access signature. + + A string that specifies the SAS token value to update. + + + + Returns the account key for the credentials. + + An array of bytes that contains the key. + + + + Transforms a resource URI into a shared access signature URI, by appending a shared access token. + + A object that represents the resource URI to be transformed. + A object that represents the signature, including the resource URI and the shared access token. + + + + Transforms a resource URI into a shared access signature URI, by appending a shared access token. + + A object that represents the resource URI to be transformed. + A object that represents the signature, including the resource URI and the shared access token. + + + + Exports the value of the account access key to a Base64-encoded string. + + The account access key. + + + + Determines whether an other object is equal to this one by comparing their SAS tokens, account names, key names, and key values. + + The object to compare to this one. + true if the two objects are equal; otherwise, false. + + + + Gets the associated shared access signature token for the credentials. + + The shared access signature token. + + + + Gets the associated account name for the credentials. + + The account name. + + + + Gets the associated key name for the credentials. + + The key name. + + + + Gets a value indicating whether the credentials are for anonymous access. + + true if the credentials are for anonymous access; otherwise, false. + + + + Gets a value indicating whether the credentials are a shared access signature token. + + true if the credentials are a shared access signature token; otherwise, false. + + + + Gets a value indicating whether the credentials are a shared key. + + true if the credentials are a shared key; otherwise, false. + + + + Represents a canonicalized string used in authenticating a request against the azure service. + + + + + Stores the internal that holds the canonicalized string. + + + + + Initializes a new instance of the class. + + The first canonicalized element to start the string with. + + + + Initializes a new instance of the class. + + The first canonicalized element to start the string with. + The starting size of the string. + + + + Append additional canonicalized element to the string. + + An additional canonicalized element to append to the string. + + + + Converts the value of this instance to a string. + + A string whose value is the same as this instance. + + + + This class provides MemoryStream-like behavior but uses a list of buffers rather than a single buffer. + + + + + The default small buffer size. + + + + + The size of each buffer. + + + + + The underlying buffer blocks for the stream. + + + + + The currently used length. + + + + + The total capacity of the stream. + + + + + The current position. + + + + + A reference to the IBufferManager for the stream to use to acquire and return buffers. + + + + + Initializes a new instance of the MultiBufferMemoryStream class with provided IBufferManager. + + A reference to the IBufferManager for the stream to use to acquire and return buffers. May be null. + The Buffer size to use for each block, default is 64 KB. Note this parameter is disregarded when a IBufferManager is specified. + + + + Reads a block of bytes from the current stream and writes the data to a buffer. + + When this method returns, the buffer contains the specified byte array with the values between offset and (offset + count - 1) replaced by the bytes read from the current source. + The zero-based byte offset in buffer at which to begin storing the data read from the current stream. + The maximum number of bytes to be read. + The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero if the end of the stream has been reached. + + + + Begins an asynchronous read operation. + + When this method returns, the buffer contains the specified byte array with the values between offset and (offset + count - 1) replaced by the bytes read from the current source. + The zero-based byte offset in buffer at which to begin storing the data read from the current stream. + The maximum number of bytes to be read. + An optional asynchronous callback, to be called when the read is complete. + A user-provided object that distinguishes this particular asynchronous read request from other requests. + An IAsyncResult that represents the asynchronous read, which could still be pending. + + + + Waits for the pending asynchronous read to complete. + + The reference to the pending asynchronous request to finish. + The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero if the end of the stream has been reached. + + + + Sets the position within the current stream. + + A byte offset relative to the origin parameter. + A value of type System.IO.SeekOrigin indicating the reference point used to obtain the new position. + The new position within the current stream. + Thrown if is invalid for SeekOrigin. + + + + Sets the length of the current stream to the specified value. (pre-allocating the bufferBlocks). + + The desired length of the current stream in bytes. + If the is negative. + + + + Writes a block of bytes to the current stream using data read from a buffer. + + The buffer to write data from. + The zero-based byte offset in buffer at which to begin copying bytes to the current stream. + The number of bytes to write. + + + + Begins an asynchronous write operation. + + The buffer to write data from. + The zero-based byte offset in buffer at which to begin copying bytes to the current stream. + The number of bytes to write. + An optional asynchronous callback, to be called when the write is complete. + A user-provided object that distinguishes this particular asynchronous write request from other requests. + An IAsyncResult that represents the asynchronous write, which could still be pending. + + + + Ends an asynchronous write operation. + + The reference to the pending asynchronous request to finish. + + + + Does not perform any operation as it's an in-memory stream. + + + + + Reads the bytes from the current stream and writes them to another stream. However, this method eliminates copying the data into a temporary buffer by directly writing to the destination stream. + + The stream to which the contents of the current stream will be copied. + DateTime indicating the expiry time. + + + + Begins an asynchronous fast-copy operation. + + The stream to which the contents of the current stream will be copied. + DateTime indicating the expiry time. + An optional asynchronous callback, to be called when the copy is complete. + A user-provided object that distinguishes this particular asynchronous copy request from other requests. + An IAsyncResult that represents the asynchronous copy, which could still be pending. + + + + Initiates a write operation for the next buffer in line. + + Internal StorageAsyncResult that represents the asynchronous copy. + + + + Callback method to be called when the corresponding write operation completes. + + The result of the asynchronous operation. + + + + Ends an asynchronous copy operation. + + The reference to the pending asynchronous request to finish. + + + + Computes the hash value for this stream. + + String representation of the computed hash value. + + + + Ensures that the amount of bufferBlocks is greater than or equal to the required size. + Does not trim the size. + + The required size. + If the is negative. + + + + Adds another block to the underlying bufferBlocks. + + + + + Copies the specified amount of data from internal buffers to the buffer and advances the position. + + An array of bytes. When this method returns, the buffer contains the specified byte array with the values + between offset and (offset + count - 1) replaced by the bytes read from the current source. + The zero-based byte offset in buffer at which to begin storing the data read from the current stream. + The maximum number of bytes to be read from the current stream. + The total number of bytes read into the buffer. This can be less than the number of bytes requested + if that many bytes are not currently available, or zero (0) if the end of the stream has been reached. + + + + + Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + (Requires the stream to be of sufficient size for writing). + + An array of bytes. This method copies count bytes from buffer to the current stream. + The zero-based byte offset in buffer at which to begin copying bytes to the current stream. + The number of bytes to be written to the current stream. + + + + Advances the current position of the stream and adjust the offset and remainder based on the amount completed. + + The current offset in the external buffer. + The amount of data left to process. + The amount of data processed. + + + + Advances the current position of the stream and adjust the remainder based on the amount completed. + + The amount of data left to process. + The amount of data processed. + + + + Calculate the block for the current position. + + + + + Gets a value indicating whether the current stream supports reading. + + Is true if the stream supports reading; otherwise, false. + + + + Gets a value indicating whether the current stream supports seeking. + + Is true if the stream supports seeking; otherwise, false. + + + + Gets a value indicating whether the current stream supports writing. + + Is true if the stream supports writing; otherwise, false. + + + + Gets the currently written length. + + + + + Represents the current position in the stream. + + Thrown if position is outside the stream size + + + + A NullTaskReturn type. + + + + + Represents a no-return from a task. + + + + + Prevents a default instance of the class from being created. + + + + + Provides a standard set of errors that could be thrown from the client library. + + + + + This class provides APM Read/Write overrides for memory stream to improve performance. + + + + + Initializes a new instance of the SyncMemoryStream class with an expandable capacity initialized to zero. + + + + + Initializes a new non-resizable instance of the SyncMemoryStream class based on the specified byte array. + + The array of unsigned bytes from which to create the current stream. + + + + Initializes a new non-resizable instance of the SyncMemoryStream class based on the specified region (index) of a byte array. + + The array of unsigned bytes from which to create the current stream. + The index into buffer at which the stream begins. + + + + Initializes a new non-resizable instance of the SyncMemoryStream class based on the specified region (index) of a byte array. + + The array of unsigned bytes from which to create the current stream. + The index into buffer at which the stream begins. + The length of the stream in bytes. + + + + Begins an asynchronous read operation. + + When this method returns, the buffer contains the specified byte array with the values between offset and (offset + count - 1) replaced by the bytes read from the current source. + The zero-based byte offset in buffer at which to begin storing the data read from the current stream. + The maximum number of bytes to be read. + An optional asynchronous callback, to be called when the read is complete. + A user-provided object that distinguishes this particular asynchronous read request from other requests. + An IAsyncResult that represents the asynchronous read, which could still be pending. + + + + Waits for the pending asynchronous read to complete. + + The reference to the pending asynchronous request to finish. + The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero if the end of the stream has been reached. + + + + Begins an asynchronous write operation. + + The buffer to write data from. + The zero-based byte offset in buffer at which to begin copying bytes to the current stream. + The number of bytes to write. + An optional asynchronous callback, to be called when the write is complete. + A user-provided object that distinguishes this particular asynchronous write request from other requests. + An IAsyncResult that represents the asynchronous write, which could still be pending. + + + + Ends an asynchronous write operation. + + The reference to the pending asynchronous request to finish. + + + + A convenience class for constructing URI query strings. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class that contains elements copied from the specified . + + The whose elements are copied to the new . + + + + Stores the query parameters. + + + + + Add the value with URI escaping. + + The query name. + The query value. + + + + Returns a containing the URI. + + + A containing the URI. + + + + + Adds a query parameter to a URI. + + The original URI, including any existing query parameters. + The URI with the new query parameter appended. + + + + Adds a query parameter to a URI. + + The original URI, including any existing query parameters. + The URI with the new query parameter appended. + + + + Contains helper methods for implementing shared access signatures. + + + + + Get the complete query builder for creating the Shared Access Signature query. + + The shared access policy to hash. + The optional header values to set for a blob returned with this SAS. + An optional identifier for the policy. + Either "b" for blobs or "c" for containers. + The signature to use. + The name of the key used to create the signature, or null if the key is implicit. + The finished query builder. + + + + Get the complete query builder for creating the Shared Access Signature query. + + The shared access policy to hash. + An optional identifier for the policy. + The signature to use. + The name of the key used to create the signature, or null if the key is implicit. + The finished query builder. + + + + Get the complete query builder for creating the Shared Access Signature query. + + The shared access policy to hash. + The name of the table associated with this shared access signature. + An optional identifier for the policy. + The start partition key, or null. + The start row key, or null. + The end partition key, or null. + The end row key, or null. + The signature to use. + The name of the key used to create the signature, or null if the key is implicit. + The finished query builder. + + + + Converts the specified value to either a string representation or . + + The value to convert. + A string representing the specified value. + + + + Converts the specified value to either a string representation or null. + + The value to convert. + A string representing the specified value. + + + + Escapes and adds the specified name/value pair to the query builder if it is not null. + + The builder to add the value to. + The name of the pair. + The value to be escaped. + + + + Parses the query. + + The query parameters. + A boolean that represents whether SignedResource is part of Sas or not. True for blobs, False for Queues and Tables. + + + + Get the signature hash embedded inside the Shared Access Signature. + + The shared access policy to hash. + An optional identifier for the policy. + The canonical resource string, unescaped. + The key value retrieved as an atomic operation used for signing. + The signed hash. + + + + Get the signature hash embedded inside the Shared Access Signature. + + The shared access policy to hash. + An optional identifier for the policy. + The start partition key, or null. + The start row key, or null. + The end partition key, or null. + The end row key, or null. + The canonical resource string, unescaped. + The key value retrieved as an atomic operation used for signing. + The signed hash. + + + + Get the signature hash embedded inside the Shared Access Signature. + + The shared access policy to hash. + The optional header values to set for a blob returned with this SAS. + An optional identifier for the policy. + The canonical resource string, unescaped. + The key value retrieved as an atomic operation used for signing. + The signed hash. + + + + Gets the value of the x-ms-date or Date header. + + The request where the value is read from. + The value of the x-ms-date or Date header. + + + + Appends the value of the Content-Length header to the specified canonicalized string. + + The canonicalized string where the value is appended. + The request where the value is read from. + + + + Appends the value of the Date header (or, optionally, the x-ms-date header) to the specified canonicalized string. + + The canonicalized string where the value is appended. + The request where the value is read from. + true if the value of the x-ms-date header can be used and is preferred; otherwise, false. + + + + Appends the values of the x-ms-* headers to the specified canonicalized string. + + The canonicalized string where the values are appended. + The request where the values are read from. + + + + Gets the canonicalized header value to use for the specified date/time or null if it does not have a value. + + The date/time. + The canonicalized header value to use for the specified date/time or null if it does not have a value. + + + + In case of path style, this method will strip off -secondary from absolute path and replace it with account name. + + The resource URI. + The name of the storage account. + Absolute path with no -secondary suffix. + + + + Gets the canonicalized resource string for the specified URI. + + The resource URI. + The name of the storage account. + true when using the Shared Key Lite authentication scheme or the table service; otherwise, false. + The canonicalized resource string. + + + + Determines which location can the listing command target by looking at the + continuation token. + + Continuation token + Location mode + + + + Create an ExecutionState object that can be used for pre-request operations + such as buffering user's data. + + Request options + Temporary ExecutionState object + + + + Returns the larger of two time spans. + + The first of two time spans to compare. + The second of two time spans to compare. + Parameter or , whichever is larger. + + + + Gets the first header value or null if no header values exist. + + The type of header objects contained in the enumerable. + An enumerable that contains header values. + The first header value or null if no header values exist. + + + + Throws an exception if the string is empty or null. + + The name of the parameter. + The value of the parameter. + Thrown if value is empty. + Thrown if value is null. + + + + Throw an exception if the value is null. + + The name of the parameter. + The value of the parameter. + Thrown if value is null. + + + + Throw an exception indicating argument is out of range. + + The name of the parameter. + The value of the parameter. + + + + Throw an exception if the argument is out of bounds. + + The type of the value. + The name of the parameter. + The value of the parameter. + The minimum value for the parameter. + The maximum value for the parameter. + + + + Throw an exception if the argument is out of bounds. + + The type of the value. + The name of the parameter. + The value of the parameter. + The minimum value for the parameter. + + + + Checks that the given timeout in within allowed bounds. + + The timeout to check. + The timeout is not within allowed bounds. + + + + Combines AssertNotNullOrEmpty and AssertInBounds for convenience. + + The name of the parameter. + Turns on or off null/empty checking. + The value of the parameter. + The maximum size of value. + + + + Rounds up to seconds. + + The time span. + The time rounded to seconds. + + + + List of ports used for path style addressing. + + + + + Determines if a URI requires path style addressing. + + The URI to check. + Returns true if the Uri uses path style addressing; otherwise, false. + + + + Read the value of an element in the XML. + + The name of the element whose value is retrieved. + A reader that provides access to XML data. + A string representation of the element's value. + + + + Returns an enumerable collection of results that is retrieved lazily. + + The type of ResultSegment like Blob, Container, Queue and Table. + The segment generator. + >A non-negative integer value that indicates the maximum number of results to be returned + in the result segment, up to the per-operation limit of 5000. + + + + + Applies the request optimizations such as disabling buffering and 100 continue. + + The request to be modified. + The length of the content, -1 if the content length is not settable. + + + + Increments the counter by one and thus sets the state of the event to non-signaled, causing threads to block. + + + + + Decrements the counter by one. If the counter reaches zero, sets the state of the event to signaled, allowing one or more waiting threads to proceed. + + + + + Blocks the current thread until the CounterEvent is set. + + + + + Blocks the current thread until the CounterEvent is set, using a 32-bit signed integer to measure the timeout. + + The number of milliseconds to wait, or Infinite(-1) to wait indefinitely. + true if the CounterEvent was set; otherwise, false. + + + + Releases all resources used by the current instance of the CounterEvent class. + + + + + Gets a WaitHandle that is used to wait for the event to be set. + + A WaitHandle that is used to wait for the event to be set. + + + + Provides helper functions for http request/response processing. + + + + + Parse the http query string. + + Http query string. + + + + + Converts the DateTimeOffset object to an Http string of form: Sun, 28 Jan 2008 12:11:37 GMT. + + The DateTimeOffset object to convert to an Http string. + String of form: Sun, 28 Jan 2008 12:11:37 GMT. + + + + Try to get the value of the specified header name. + + The Http web response from which to get the header value. + The name of the header whose value is to be retrieved. + The default value for the header that is returned if we can't get the actual header value. + A string representing the header value. + + + + Wrapper class for MD5. + + + + + Calculates an on-going hash using the input byte array. + + The input array used for calculating the hash. + The offset in the input buffer to calculate from. + The number of bytes to use from input. + + + + Retrieves the string representation of the hash. (Completes the creation of the hash). + + String representation of the computed hash value. + + + + Contains methods for dealing with navigation. + + + + + The name of the root container. + + + + + Used in address parsing. + + + + + Used in address parsing. + + + + + Used in address parsing. + + + + + Used to split string on slash. + + + + + Used to split hostname. + + + + + Retrieves the container part of a storage Uri, or "$root" if the container is implicit. + + The blob address. + If set to true use path style Uris. + Name of the container. + + The trailing slash is always removed. + + GetContainerName(new Uri("http://test.blob.core.windows.net/mycontainer/myfolder/myblob")) will return "mycontainer" + GetContainerName(new Uri("http://test.blob.core.windows.net/mycontainer/")) will return "mycontainer" + GetContainerName(new Uri("http://test.blob.core.windows.net/myblob")) will return "$root" + GetContainerName(new Uri("http://test.blob.core.windows.net/")) will throw ArgumentException + + + + + + Retrieves the blob part of a storage Uri. + + The blob address. + If set to true use path style Uris. + The name of the blob. + + + + Retrieves the complete container address from a storage Uri + Example GetContainerAddress(new Uri("http://test.blob.core.windows.net/mycontainer/myfolder/myblob")) + will return http://test.blob.core.windows.net/mycontainer. + + The blob address. + True to use path style Uris. + Uri of the container. + + + + Retrieves the parent name from a storage Uri. + + The blob address. + The delimiter. + If set to true use path style Uris. + The name of the parent. + + Adds the trailing delimiter as the prefix returned by the storage REST api always contains the delimiter. + + + GetParentName(new Uri("http://test.blob.core.windows.net/mycontainer/myfolder/myblob", "/")) will return "/mycontainer/myfolder/" + GetParentName(new Uri("http://test.blob.core.windows.net/mycontainer/myfolder|myblob", "|") will return "/mycontainer/myfolder|" + GetParentName(new Uri("http://test.blob.core.windows.net/mycontainer/myblob", "/") will return "/mycontainer/" + GetParentName(new Uri("http://test.blob.core.windows.net/mycontainer/", "/") will return "/mycontainer/" + + + + + Gets the service client base address. + + The address Uri. + The use path style Uris. + The base address of the client. + + GetServiceClientBaseAddress("http://testaccount.blob.core.windows.net/testcontainer/blob1") + returns "http://testaccount.blob.core.windows.net" + + + + + Gets the service client base address. + + The address Uri. + The use path style Uris. + The base address of the client. + + GetServiceClientBaseAddress("http://testaccount.blob.core.windows.net/testcontainer/blob1") + returns "http://testaccount.blob.core.windows.net" + + + + + Appends a path to a list of URIs correctly using "/" as separator. + + The base URI. + The relative or absolute URI. + The list of appended URIs. + + + + Appends a path to a list of URIs correctly using "/" as separator. + + The base URI. + The relative or absolute URI. + The separator. + The list of appended URIs. + + + + Append a relative path to a URI, handling trailing slashes appropriately. + + The base URI. + The relative or absolute URI. + The appended Uri. + + + + Append a relative path to a URI, handling trailing slashes appropriately. + + The base URI. + The relative or absolute URI. + The separator. + The appended Uri. + + + + Get container name from address for styles of paths + Example: http://test.blob.core.windows.net/container/blob => container + http://127.0.0.1:10000/test/container/blob => container. + + The container Uri. + If set to true use path style Uris. + The container name. + + + + Similar to getting container name from Uri. + + The queue Uri. + If set to true use path style Uris. + The queue name. + + + + Extracts a table name from the table's Uri. + + The queue Uri. + If set to true use path style Uris. + The queue name. + + + + Retrieve the container address and address. + + The blob address. + True to use path style Uris. + Name of the container. + The container URI. + true when the container is an explicit container. false, otherwise. + + + + Retrieve the container name and the blob name from a blob address. + + The blob address. + If set to true use path style Uris. + The resulting container name. + The resulting blob name. + A bool representing whether the blob is in an explicit container or not. + + + + Parses the snapshot time. + + The snapshot time. + The parsed snapshot time. + + + + Parse Uri for SAS (Shared access signature) information. + + The complete Uri. + The credentials to use. + The parsed snapshot. + The blob URI without credentials or snapshot info + address + + Validate that no other query parameters are passed in. + Any SAS information will be recorded as corresponding credentials instance. + If credentials is passed in and it does not match the SAS information found, an + exception will be thrown. + Otherwise a new client is created based on SAS information or as anonymous credentials. + + + + + Parse Uri for SAS (Shared access signature) information. + + The complete Uri. + The credentials to use. + The parsed snapshot. + The blob URI without credentials or snapshot info + address + + Validate that no other query parameters are passed in. + Any SAS information will be recorded as corresponding credentials instance. + If credentials is passed in and it does not match the SAS information found, an + exception will be thrown. + Otherwise a new client is created based on SAS information or as anonymous credentials. + + + + + Parse Uri for SAS (Shared access signature) information. + + The complete Uri. + The credentials to use. + + Validate that no other query parameters are passed in. + Any SAS information will be recorded as corresponding credentials instance. + If credentials is passed in and it does not match the SAS information found, an + exception will be thrown. + Otherwise a new client is created based on SAS information or as anonymous credentials. + + + + + Parse Uri for SAS (Shared access signature) information. + + The complete Uri. + The credentials to use. + + Validate that no other query parameters are passed in. + Any SAS information will be recorded as corresponding credentials instance. + If credentials is passed in and it does not match the SAS information found, an + exception will be thrown. + Otherwise a new client is created based on SAS information or as anonymous credentials. + + + + + Represents a canonicalized string used in authenticating a request against the azure service. + + + + + Provides properties to keep track of Md5 hash / Length of a stream as it is being copied. + + + + + Provides stream helper methods that allow us to copy streams and measure the stream size. + + + + + Reads synchronously the specified content of the stream and writes it to the given output stream. + + The origin stream. + The destination stream. + Number of bytes to copy from source stream to destination stream. Cannot be passed with a value for maxLength. + Maximum length of the stream to write. + true to calculate the MD5 hash. + A boolean indicating whether the write happens synchronously. + An object that stores state of the operation. + State of the stream copy. + stream + + + + Asynchronously reads the entire content of the stream and writes it to the given output stream. + + The result type of the ExecutionState + The origin stream. + The destination stream. + Number of bytes to copy from source stream to destination stream. Cannot be passed with a value for maxLength. + Maximum length of the source stream. Cannot be passed with a value for copyLength. + Bool value indicating whether the Md5 should be calculated. + An object that stores state of the operation. + State of the stream copy. + The action taken when the execution is completed. + + + + Represents a retry policy that performs a specified number of retries, using a randomized exponential back off scheme to determine the interval between retries. + + + + + Represents a retry policy. + + + + + Represents a retry policy. + + + + + Generates a new retry policy for the current request attempt. + + An object that represents the retry policy for the current request attempt. + + + + Determines whether the operation should be retried and the interval until the next retry. + + The number of retries for the given operation. A value of zero signifies this is the first error encountered. + The status code for the last operation. + An object that represents the last exception encountered. + The interval to wait until the next retry. + An object for tracking the current operation. + true if the operation should be retried; otherwise, false. + + + + Determines whether the operation should be retried and the interval until the next retry. + + A object that indicates the number of retries, the results of the last request, and whether the next retry should happen in the primary or secondary location, and specifies the location mode. + An object for tracking the current operation. + A object that indicates the location mode, and whether the next retry should happen in the primary or secondary location. If null, the operation will not be retried. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class using the specified delta and maximum number of retries. + + The back off interval between retries. + The maximum number of retry attempts. + + + + Determines whether the operation should be retried and the interval until the next retry. + + The number of retries for the given operation. A value of zero signifies this is the first error encountered. + The status code for the last operation. + An object that represents the last exception encountered. + The interval to wait until the next retry. + An object for tracking the current operation. + true if the operation should be retried; otherwise, false. + + + + Determines whether the operation should be retried and the interval until the next retry. + + A object that indicates the number of retries, the results of the last request, and whether the next retry should happen in the primary or secondary location, and specifies the location mode. + An object for tracking the current operation. + A object that indicates the location mode, and whether the next retry should happen in the primary or secondary location. If null, the operation will not be retried. + + + + Generates a new retry policy for the current request attempt. + + An object that represents the retry policy for the current request attempt. + + + + Represents a retry policy that performs a specified number of retries, using a specified fixed time interval between retries. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class using the specified delta and maximum number of retries. + + The back off interval between retries. + The maximum number of retry attempts. + + + + Determines whether the operation should be retried and the interval until the next retry. + + The number of retries for the given operation. A value of zero signifies this is the first error encountered. + The status code for the last operation. + An object that represents the last exception encountered. + The interval to wait until the next retry. + An object for tracking the current operation. + true if the operation should be retried; otherwise, false. + + + + Determines whether the operation should be retried and the interval until the next retry. + + A object that indicates the number of retries, the results of the last request, and whether the next retry should happen in the primary or secondary location, and specifies the location mode. + An object for tracking the current operation. + A object that indicates the location mode, and whether the next retry should happen in the primary or secondary location. If null, the operation will not be retried. + + + + Generates a new retry policy for the current request attempt. + + An object that represents the retry policy for the current request attempt. + + + + Specifies the location mode used to decide which location the request should be sent to. + + + + + Requests should always be sent to the primary location. + + + + + Requests should always be sent to the primary location first. If the request fails, it should be sent to the secondary location. + + + + + Requests should always be sent to the secondary location. + + + + + Requests should always be sent to the secondary location first. If the request fails, it should be sent to the primary location. + + + + + Represents a retry policy that performs no retries. + + + + + Initializes a new instance of the class. + + + + + Determines if the operation should be retried and how long to wait until the next retry. + + The number of retries for the given operation. A value of zero signifies this is the first error encountered. + The status code for the last operation. + An object that represents the last exception encountered. + The interval to wait until the next retry. + An object for tracking the current operation. + true if the operation should be retried; otherwise, false. + + + + Generates a new retry policy for the current request attempt. + + An object that represents the retry policy for the current request attempt. + + + + Represents the context for one or more retries of a request made against the Windows Azure storage services, + including the number of retries made for the request, the results of the last request, and the storage location and location mode for subsequent retries. + + + + + Returns a string that represents the current instance. + + A string that represents the current instance. + + + + Gets the target location for the next retry. + + The target location for the next retry. + + + + Gets the location mode for subsequent retries. + + The location mode for subsequent retries. + + + + Gets the number of retries for the given operation. + + The number of retries for the given operation. + + + + Gets the results of the last request. + + A object that represents the results of the last request. + + + + Specifies parameters for the next retry of a request to be made against the Windows Azure storage services, + including the target location and location mode for the next retry and the interval until the next retry. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The object that was passed in to the retry policy. + + + + Returns a string that represents the current instance. + + A string that represents the current instance. + + + + Gets or sets the target location for the next retry. + + The target location for the next retry. + + + + Gets or sets the location mode for subsequent retries. + + The location mode for subsequent retries. + + + + Gets the interval until the next retry. + + The interval until the next retry. + + + + Verifies that the blob is not a snapshot. + + + + + Gets the blob's system properties. + + The blob's properties. + + + + Gets the user-defined metadata for the blob. + + The blob's metadata, as a collection of name-value pairs. + + + + Gets the blob's URI for the primary location. + + The absolute URI to the blob, at the primary location. + + + + Gets the list of URIs for all locations. + + The list of URIs for all locations. + + + + Gets the date and time that the blob snapshot was taken, if this blob is a snapshot. + + The blob's snapshot time if the blob is a snapshot; otherwise, null. + + If the blob is not a snapshot, the value of this property is null. + + + + + Gets the state of the most recent or pending copy operation. + + A object containing the copy state, or null if no copy blob state exists for this blob. + + + + Represents the permissions for a container. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the public access setting for the container. + + The public access setting for the container. + + + + Gets the set of shared access policies for the container. + + The set of shared access policies for the container. + + + + Represents the system properties for a container. + + + + + Gets the ETag value for the container. + + The container's quoted ETag value. + + + + Gets the container's last-modified time. + + The container's last-modified time. + + + + Gets the container's lease status. + + A object that indicates the container's lease status. + + + + Gets the container's lease state. + + A object that indicates the container's lease state. + + + + Gets the container's lease duration. + + A object that indicates the container's lease duration. + + + + Specifies the level of public access that is allowed on the container. + + + + + No public access. Only the account owner can read resources in this container. + + + + + Container-level public access. Anonymous clients can read container and blob data. + + + + + Blob-level public access. Anonymous clients can read blob data within this container, but not container data. + + + + + Represents a continuation token for listing operations. + + continuation tokens are used in methods that return a object, such as . + + + + Gets an XML representation of an object. + + + An that describes the XML representation of the object that is produced by the method and consumed by the method. + + + + + Generates a serializable continuation token from its XML representation. + + The stream from which the continuation token is deserialized. + + + + Converts a serializable continuation token into its XML representation. + + The stream to which the continuation token is serialized. + + + + Gets or sets the version for continuing results for enumeration operations. + + The version. + + + + Gets or sets the type element (blob, queue, table) for continuing results for enumeration operations. + + The type element. + + + + Gets or sets the next marker for continuing results for enumeration operations. + + The next marker. + + + + Gets or sets the storage location that the continuation token applies to. + + The storage location that the continuation token applies to. + + + + Specifies which items to include when listing a set of blobs. + + + + + List only committed blobs, and do not return blob metadata. + + + + + List committed blobs and blob snapshots. + + + + + Retrieve blob metadata for each blob returned in the listing. + + + + + List committed and uncommitted blobs. + + + + + Include copy properties in the listing. + + + + + List all available committed blobs, uncommitted blobs, and snapshots, and return all metadata and copy status for those blobs. + + + + + Represents the system properties for a blob. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class based on an existing instance. + + The set of properties to clone. + Lease-related properties will not be cloned, because a lease associated with the base blob is not copied to the snapshot. + + + + Gets or sets the cache-control value stored for the blob. + + The blob's cache-control value. + + + + Gets or sets the content-disposition value stored for the blob. + + The blob's content-disposition value. + + If this property has not been set for the blob, it returns null. + + + + + Gets or sets the content-encoding value stored for the blob. + + The blob's content-encoding value. + + If this property has not been set for the blob, it returns null. + + + + + Gets or sets the content-language value stored for the blob. + + The blob's content-language value. + + If this property has not been set for the blob, it returns null. + + + + + Gets the size of the blob, in bytes. + + The blob's size in bytes. + + + + Gets or sets the content-MD5 value stored for the blob. + + The blob's content-MD5 hash. + + + + Gets or sets the content-type value stored for the blob. + + The blob's content-type value. + + If this property has not been set for the blob, it returns null. + + + + + Gets the blob's ETag value. + + The blob's ETag value. + + + + Gets the the last-modified time for the blob, expressed as a UTC value. + + The blob's last-modified time, in UTC format. + + + + Gets the type of the blob. + + A object that indicates the type of the blob. + + + + Gets the blob's lease status. + + A object that indicates the blob's lease status. + + + + Gets the blob's lease state. + + A object that indicates the blob's lease state. + + + + Gets the blob's lease duration. + + A object that indicates the blob's lease duration. + + + + If the blob is a page blob, gets the blob's current sequence number. + + The blob's current sequence number. + + + + Represents a set of timeout and retry policy options that may be specified for a request against the Blob service. + + + + + Stores the parallelism factor. + + + + + Default is 32 MB. + + + + + Initializes a new instance of the class. + + + + + Clones an instance of BlobRequestOptions so that we can apply defaults. + + BlobRequestOptions instance to be cloned. + + + + Gets or sets the absolute expiry time across all potential retries for the request. + + + + + Gets or sets the retry policy. + + The retry policy. + + + + Gets or sets the location mode of the request. + + The location mode of the request. + + + + Gets or sets the server timeout interval for the request. + + The server timeout interval for the request. + + + + Gets or sets the maximum execution time across all potential retries for the request. + + A representing the maximum execution time for retries for the request. + + + + Gets or sets the number of blocks that may be simultaneously uploaded when uploading a blob that is greater than + the value specified by the property in size. + + The number of parallel operations that may proceed. + + + + Gets or sets the maximum size of a blob in bytes that may be uploaded as a single blob. + + The maximum size of a blob, in bytes, that may be uploaded as a single blob, + ranging from between 1 and 64 MB inclusive. + + + + Gets or sets a value to calculate and send/validate content MD5 for transactions. + + Use true to calculate and send/validate content MD5 for transactions; otherwise, false. + + + + Gets or sets a value to indicate that an MD5 hash will be calculated and stored when uploading a blob. + + Use true to calculate and store an MD5 hash when uploading a blob; otherwise, false. + + + + Gets or sets a value to indicate that MD5 validation will be disabled when downloading blobs. + + Use true to disable MD5 validation; false to enable MD5 validation. + + + + Represents a segment of results, with continuation information for pagination scenarios. + + + + + Gets an enumerable collection of results. + + An enumerable collection of results. + + + + Gets the continuation token used to retrieve the next segment of results. Returns null if there are no more results. + + The continuation token. + + + + The type of a blob. + + + + + Not specified. + + + + + A page blob. + + + + + A block blob. + + + + + Indicates whether to list only committed blocks, only uncommitted blocks, or all blocks. + + + + + Committed blocks. + + + + + Uncommitted blocks. + + + + + Both committed and uncommitted blocks. + + + + + Indicates which block lists should be searched to find a specified block. + + + + + Search the committed block list only. + + + + + Search the uncommitted block list only. + + + + + Search the uncommitted block list first, and if the block is not found there, search + the committed block list. + + + + + Specifies which details to include when listing the containers in this storage account. + + + + + No additional details. + + + + + Retrieve container metadata. + + + + + Retrieve all available details. + + + + + Represents a segment of results and contains continuation and pagination information. + + + + + Gets an enumerable collection of results. + + An enumerable collection of results. + + + + Gets the continuation token used to retrieve the next segment of results. + + The continuation token. + + + + Represents the attributes of a copy operation. + + + + + Gets the ID of the copy operation. + + A copy ID string. + + + + Gets the time the copy operation completed, and indicates whether completion was due to a successful copy, the cancelling of the operation, or a failure. + + A containing the completion time, or null if the operation has not completed. + + + + Gets the status of the copy operation. + + A enumeration indicating the status of the operation. + + + + Gets the source URI of a copy operation. + + A indicating the source of a copy operation, or null. + + + + Gets the number of bytes copied in the operation so far. + + The number of bytes copied in the operation so far, or null. + + + + Gets the total number of bytes in the source of the copy. + + The number of bytes in the source, or null. + + + + Gets the description of the current status, if any. + + A status description string, or null. + + + + Represents the status of a copy blob operation. + + + + + The copy status is invalid. + + + + + The copy operation is pending. + + + + + The copy operation succeeded. + + + + + The copy operation has been aborted. + + + + + The copy operation encountered an error. + + + + + The set of options describing delete operation. + + + + + Delete blobs but not snapshots. + + + + + Delete the blob and its snapshots. + + + + + Delete the blob's snapshots only. + + + + + Describes actions that can be performed on a lease. + + + + + Acquire the lease. + + + + + Renew the lease. + + + + + Release the lease. + + + + + Break the lease. + + + + + Change the lease ID. + + + + + The lease duration of a resource. + + + + + The lease duration is not specified. + + + + + The lease duration is finite. + + + + + The lease duration is infinite. + + + + + The lease state of a resource. + + + + + The lease state is not specified. + + + + + The lease is in the Available state. + + + + + The lease is in the Leased state. + + + + + The lease is in the Expired state. + + + + + The lease is in the Breaking state. + + + + + The lease is in the Broken state. + + + + + The lease status of a resource. + + + + + The lease status is not specified. + + + + + The resource is locked. + + + + + The resource is available to be locked. + + + + + Represents a block retrieved from the blob's block list. + + + + + Gets the name of the block. + + The block name. + + + + Gets the size of block in bytes. + + The block size. + + + + Gets a value indicating whether or not the block has been committed. + + True if the block has been committed; otherwise, false. + + + + Represents a range of pages in a page blob. + + + + + Initializes a new instance of the class. + + The starting offset. + The ending offset. + + + + Returns the content of the page range as a string. + + The content of the page range. + + + + Gets the starting offset of the page range. + + The starting offset. + + + + Gets the ending offset of the page range. + + The ending offset. + + + + Describes actions that can be performed on a page blob sequence number. + + + + + Sets the sequence number to be the higher of the value included with the request and the value currently stored for the blob. + + + + + Sets the sequence number to the value included with the request. + + + + + Increments the value of the sequence number by 1. + + + + + Represents the optional headers that can be returned with blobs accessed using SAS. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class based on an existing instance. + + The set of to clone. + + + + Gets or sets the cache-control header returned with the blob. + + The cache-control value. + + + + Gets or sets the content-disposition header returned with the blob. + + The content-disposition value. + + + + Gets or sets the content-encoding header returned with the blob. + + The content-encoding value. + + + + Gets or sets the content-language header returned with the blob. + + The content-language value. + + + + Gets or sets the content-type header returned with the blob. + + The content-type value. + + + + Specifies the set of possible permissions for a shared access policy. + + + + + No shared access granted. + + + + + Read access granted. + + + + + Write access granted. + + + + + Delete access granted for blobs. + + + + + List access granted. + + + + + Represents the collection of shared access policies defined for a container. + + + + + Adds the specified key and value to the collection of shared access policies. + + The key of the value to add. + The value to add the collection of shared access policies. + + + + Determines whether the collection of shared access policies contains the specified key. + + The key to locate in the collection of shared access policies. + true if the collection of shared access policies contains an element with the specified key; otherwise, false. + + + + Removes the value with the specified key from the shared access policies collection. + + The key of the item to remove. + true if the element is successfully found and removed; otherwise, false. This method returns false if the key is not found. + + + + Gets the item associated with the specified key. + + The key of the value to get. + The item to get. + The item associated with the specified key, if the key is found; otherwise, the default value for the type. + + + + Adds the specified key/ value, stored in a , to the collection of shared access policies. + + The object, containing a key/ value pair, to add to the shared access policies collection. + + + + Removes all keys and values from the shared access collection. + + + + + Determines whether the collection of shared access policies contains the key and value in the specified object. + + A object containing the key and value to search for. + true if the shared access policies collection contains the specified key/value; otherwise, false. + + + + Copies each key/ value pair in the shared access policies collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array of objects that is the destination of the elements copied from the shared access policies collection. + The zero-based index in at which copying begins. + + + + Removes the value, specified in the object, from the shared access policies collection. + + The object, containing a key and value, to remove from the shared access policies collection. + true if the item was successfully removed; otherwise, false. + + + + Returns an enumerator that iterates through the collection of shared access policies. + + An of type . + + + + Returns an enumerator that iterates through the collection of shared access policies. + + An object that can be used to iterate through the collection of shared access policies. + + + + Gets a collection containing the keys in the shared access policies collection. + + A collection containing the keys in the of shared access policies collection. + + + + Gets a collection containing the values in the shared access policies collection. + + A collection of items in the shared access policies collection. + + + + Gets or sets the item associated with the specified key. + + The key of the value to get or set. + The item associated with the specified key, or null if key is not in the shared access policies collection. + + + + Gets the number of key/ value pairs contained in the shared access policies collection. + + The number of key/ value pairs contained in the shared access policies collection. + + + + Gets a value indicating whether the collection of shared access policies is read-only. + + true if the collection of shared access policies is read-only; otherwise, false. + + + + Represents a shared access policy, which specifies the start time, expiry time, + and permissions for a shared access signature. + + + + + Initializes a new instance of the class. + + + + + Converts the permissions specified for the shared access policy to a string. + + The shared access permissions. + The shared access permissions in string format. + + + + Constructs a object from a permissions string. + + The shared access permissions in string format. + A set of shared access permissions. + + + + Gets or sets the start time for a shared access signature associated with this shared access policy. + + The shared access start time. + + + + Gets or sets the expiry time for a shared access signature associated with this shared access policy. + + The shared access expiry time. + + + + Gets or sets the permissions for a shared access signature associated with this shared access policy. + + The permissions. + + + + Parses the response XML from an operation to set the access policy for a container. + + + + + Parses the response XML from an operation to set the access policy for a cloud object. + + The policy type to be filled. + + + + Provides a base class that is used internally to parse XML streams from storage service operations. + + The type to be parsed. + + + + Indicates that all parsable objects have been consumed. This field is reserved and should not be used. + + + + + Stores any objects that have not yet been parsed. This field is reserved and should not be used. + + + + + The reader used for parsing. This field is reserved and should not be used. + + + + + The IEnumerator over the parsed content. + + + + + Used to make sure that parsing is only done once, since a stream is not re-entrant. + + + + + Initializes a new instance of the ResponseParsingBase class. + + The stream to be parsed. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Parses the XML response. This method is reserved and should not be used. + + A collection of enumerable objects. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources, and optional + managed resources. + + True to release both managed and unmanaged resources; otherwise, false. + + + + This method is reserved and should not be used. + + True when the object is consumable. + + + + Parses the XML and close. + + A list of parsed results. + + + + Gets the parsable objects. This method is reserved and should not be used. + + The objects to parse. + + + + Initializes a new instance of the AccessPolicyResponseBase class. + + The stream to be parsed. + + + + Parses the current element. + + The shared access policy element to parse. + The shared access policy. + + + + Parses the response XML from a Set Container ACL operation to retrieve container-level access policy data. + + A list of enumerable key-value pairs. + + + + Gets an enumerable collection of container-level access policy identifiers. + + An enumerable collection of container-level access policy identifiers. + + + + Initializes a new instance of the BlobAccessPolicyResponse class. + + The stream to be parsed. + + + + Parses the current element. + + The shared access policy element to parse. + The shared access policy. + + + + Represents a container item returned in the XML response for a container listing operation. + + + + + + Initializes a new instance of the class. + + + + + Gets the user-defined metadata for the container. + + The container's metadata, as a collection of name-value pairs. + + + + Gets the container's system properties. + + The container's properties. + + + + Gets the name of the container. + + The container's name. + + + + Gets the container's URI. + + The absolute URI to the container. + + + + Provides error code strings that are specific to the Blob service. + + + + + Error code that may be returned when a block ID is invalid. + + + + + Error code that may be returned when a blob with the specified address cannot be found. + + + + + Error code that may be returned when a client attempts to create a blob that already exists. + + + + + Error code that may be returned when the specified block or blob is invalid. + + + + + Error code that may be returned when a block list is invalid. + + + + + The specified container was not found. + + + + + The specified container already exists. + + + + + The specified container is disabled. + + + + + The specified container is being deleted. + + + + + Error code that may be returned when there is currently no lease on the blob. + + + + + Error code that may be returned when there is currently no lease on the container. + + + + + Error code that may be returned when a lease ID was specified, but the lease has expired. + + + + + Error code that may be returned when the lease ID specified did not match the lease ID for the blob. + + + + + Error code that may be returned when the lease ID specified did not match the lease ID for the container. + + + + + Error code that may be returned when there is currently a lease on the resource and no lease ID was specified in the request. + + + + + Error code that may be returned when there is currently no lease on the resource. + + + + + Error code that may be returned when the lease ID specified did not match the lease ID. + + + + + Error code that may be returned when there is already a lease present. + + + + + Error code that may be returned when the lease has already been broken and cannot be broken again. + + + + + Error code that may be returned when the lease ID matched, but the lease has been broken explicitly and cannot be renewed. + + + + + Error code that may be returned when the lease ID matched, but the lease is breaking and cannot be acquired. + + + + + Error code that may be returned when the lease ID matched, but the lease is breaking and cannot be changed. + + + + + Error code that may be returned when the copy ID specified in an Abort Copy operation does not match the current pending copy ID. + + + + + Error code that may be returned when an Abort Copy operation is called when there is no pending copy. + + + + + Error code that may be returned when an attempt to modify the destination of a pending copy is made. + + + + + Error code that may be returned when the source of a copy cannot be accessed. + + + + + Error code that may be returned when the destination of a copy operation has a lease of fixed duration. + + + + + Provides a set of parameters for a blob listing operation. + + + + + Represents the listing context for enumeration operations. + + + + + Initializes a new instance of the class. + + The resource name prefix. + The maximum number of resources to return in a single operation, up to the per-operation limit of 5000. + + + + Gets or sets the Prefix value. + + The Prefix value. + + + + Gets or sets the MaxResults value. + + The MaxResults value. + + + + Gets or sets the Marker value. + + The Marker value. + + + + Initializes a new instance of the class. + + The blob prefix. + The maximum number of results to return. + The blob delimiter. + The include parameter. + + + + Gets or sets the delimiter for a blob listing operation. + + The delimiter to use to traverse the virtual hierarchy of blobs. + + The delimiter parameter enables the caller to traverse the blob namespace by using a user-configured delimiter. + Using this parameter, it is possible to traverse a virtual hierarchy of blobs as though it were a file system. + + + + + Gets or sets the details for the listing operation, which indicates the types of data to include in the + response. + + The details to include in the listing operation. + + The include parameter specifies that the response should include one or more of the following subsets: snapshots, + metadata, uncommitted blobs. + + + + + Provides a set of helper methods for constructing a request against the Blob service. + + + + + Converts the date time to snapshot string. + + The date time. + The converted string. + + + + Writes a collection of shared access policies to the specified stream in XML format. + + A collection of shared access policies. + An output stream. + + + + Writes the body of the block list to the specified stream in XML format. + + An enumerable collection of objects. + The stream to which the block list is written. + + + + Provides methods for parsing the response from an operation to return a block list. + + + + + Initializes a new instance of the class. + + The stream to be parsed. + + + + Reads a block item for block listing. + + Whether we are currently listing committed blocks or not + Block listing entry + + + + Parses the XML response returned by an operation to retrieve a list of blocks. + + An enumerable collection of objects. + + + + Gets an enumerable collection of objects from the response. + + An enumerable collection of objects. + + + + Provides methods for parsing the response from an operation to get a range of pages for a page blob. + + + + + Initializes a new instance of the class. + + The stream of page ranges to be parsed. + + + + Reads a page range. + + Page range entry + + + + Parses the XML response for an operation to get a range of pages for a page blob. + + An enumerable collection of objects. + + + + Gets an enumerable collection of objects from the response. + + An enumerable collection of objects. + + + + Represents an item that may be returned by a blob listing operation. + + + + + Represents a blob item returned in the XML response for a blob listing operation. + + + + + Initializes a new instance of the class. + + The name of the blob. + The blob's attributes. + + + + Stores the blob item's attributes. + + + + + Gets the name of the blob item. + + The name of the blob item. + + + + Gets the blob item's system properties. + + The blob item's properties. + + + + Gets the user-defined metadata for the blob item. + + The blob item's metadata, as a collection of name-value pairs. + + + + Gets the blob item's URI. + + The absolute URI to the blob item. + + + + Gets the date and time that the blob snapshot was taken, if this blob is a snapshot. + + The blob's snapshot time if the blob is a snapshot; otherwise, null. + + If the blob is not a snapshot, the value of this property is null. + + + + + Gets the state of the most recent or pending copy operation. + + A object containing the copy state, or null if no copy blob state exists for this blob. + + + + Represents the blob name prefix that is returned in the XML response for a blob listing operation. + + + + + Gets the blob name prefix. + + The blob name prefix. + + + + Provides methods for parsing the response from a blob listing operation. + + + + + Stores the blob prefix. + + + + + Signals when the blob prefix can be consumed. + + + + + Stores the marker. + + + + + Signals when the marker can be consumed. + + + + + Stores the blob delimiter. + + + + + Signals when the blob delimiter can be consumed. + + + + + Stores the max results. + + + + + Signals when the max results can be consumed. + + + + + Stores the next marker. + + + + + Signals when the next marker can be consumed. + + + + + Initializes a new instance of the class. + + The stream to be parsed. + + + + Parses a blob entry in a blob listing response. + + Blob listing entry + + + + Parses a blob prefix entry in a blob listing response. + + Blob listing entry + + + + Parses the response XML for a blob listing operation. + + An enumerable collection of objects that implement . + + + + Gets the listing context from the XML response. + + A set of parameters for the listing operation. + + + + Gets an enumerable collection of objects that implement from the response. + + An enumerable collection of objects that implement . + + + + Gets the Prefix value provided for the listing operation from the XML response. + + The Prefix value. + + + + Gets the Marker value provided for the listing operation from the XML response. + + The Marker value. + + + + Gets the Delimiter value provided for the listing operation from the XML response. + + The Delimiter value. + + + + Gets the MaxResults value provided for the listing operation from the XML response. + + The MaxResults value. + + + + Gets the NextMarker value from the XML response, if the listing was not complete. + + The NextMarker value. + + + + Provides methods for parsing the response from a container listing operation. + + + + + Stores the container prefix. + + + + + Signals when the container prefix can be consumed. + + + + + Stores the marker. + + + + + Signals when the marker can be consumed. + + + + + Stores the max results. + + + + + Signals when the max results can be consumed. + + + + + Stores the next marker. + + + + + Signals when the next marker can be consumed. + + + + + Initializes a new instance of the class. + + The stream to be parsed. + + + + Reads a container entry completely including its properties and metadata. + + Container listing entry + + + + Parses the response XML for a container listing operation. + + An enumerable collection of objects. + + + + Gets the listing context from the XML response. + + A set of parameters for the listing operation. + + + + Gets an enumerable collection of objects from the response. + + An enumerable collection of objects. + + + + Gets the Prefix value provided for the listing operation from the XML response. + + The Prefix value. + + + + Gets the Marker value provided for the listing operation from the XML response. + + The Marker value. + + + + Gets the MaxResults value provided for the listing operation from the XML response. + + The MaxResults value. + + + + Gets the NextMarker value from the XML response, if the listing was not complete. + + The NextMarker value. + + + + Describes actions that may be used for writing to a page blob or clearing a set of pages. + + + + + Update the page with new data. + + + + + Clear the page. + + + + + Represents a block in a block list. + + + + + Initializes a new instance of the class. + + The block ID. + One of the enumeration values that specifies in which block lists to search for the block. + + + + Gets the block ID. + + The block ID. + + + + Gets a value that indicates which block lists to search for the block. + + One of the enumeration values that specifies in which block lists to search for the block. + + + + Enumeration controlling the options for updating queue messages. + + + + + Update the message visibility timeout. + + + + + Update the message content. + + + + + Represents a continuation token returned by the Queue service. + + continuation tokens are used in methods that return a object, such as . + + + + Gets an XML representation of an object. + + + An that describes the XML representation of the object that is produced by the method and consumed by the method. + + + + + Generates a serializable continuation token from its XML representation. + + The stream from which the continuation token is deserialized. + + + + Converts a serializable continuation token into its XML representation. + + The stream to which the continuation token is serialized. + + + + Gets or sets the version for continuing results for CloudQueue enumeration operations. + + The version. + + + + Gets or sets the type element (blob, queue, table) for continuing results for CloudQueue enumeration operations. + + The type element. + + + + Gets or sets the NextMarker for continuing results for CloudQueue enumeration operations. + + The next marker. + + + + Gets or sets the storage location that the continuation token applies to. + + The storage location that the continuation token applies to. + + + + Enum for Queue message type. + Internal use only. + + + + + Indicates the message object stores the raw text string. + + + + + Indicates the message object stores the Base64-Encoded representation of the raw data. + + + + + Represents a set of timeout and retry policy options that may be specified for a request against the Queue service. + + + + + Initializes a new instance of the class. + + + + + Clones an instance of QueueRequestOptions so that we can apply defaults. + + QueueRequestOptions instance to be cloned. + + + + Gets or sets the absolute expiry time across all potential retries for the request. + + + + + Gets or sets the retry policy for the request. + + The retry policy delegate. + + + + Gets or sets the location mode of the request. + + The location mode of the request. + + + + Gets or sets the server timeout for the request. + + The client and server timeout interval for the request. + + + + Gets or sets the maximum execution time across all potential retries for the request. + + A representing the maximum execution time for retries for the request. + + + + Represents a segment of results, with continuation information for pagination scenarios. + + + + + Gets an enumerable collection of results. + + An enumerable collection of results. + + + + Gets the continuation token used to retrieve the next segment of results. Returns null if there are no more results. + + The continuation token. + + + + Specifies the set of possible permissions for a shared access queue policy. + + + + + No shared access granted. + + + + + Permission to peek messages and get queue metadata granted. + + + + + Permission to add messages granted. + + + + + Permissions to update messages granted. + + + + + Permission to get and delete messages granted. + + + + + Represents the collection of shared access policies defined for a queue. + + + + + Adds the specified key and value to the collection of shared access policies. + + The key of the value to add. + The value to add the collection of shared access policies. + + + + Determines whether the collection of shared access policies contains the specified key. + + The key to locate in the collection of shared access policies. + true if the collection of shared access policies contains an element with the specified key; otherwise, false. + + + + Removes the value with the specified key from the shared access policies collection. + + The key of the item to remove. + true if the element is successfully found and removed; otherwise, false. This method returns false if the key is not found. + + + + Gets the item associated with the specified key. + + The key of the value to get. + The item to get. + The item associated with the specified key, if the key is found; otherwise, the default value for the type. + + + + Adds the specified key/ value, stored in a , to the collection of shared access policies. + + The object, containing a key/ value pair, to add to the shared access policies collection. + + + + Removes all keys and values from the shared access collection. + + + + + Determines whether the collection of shared access policies contains the key and value in the specified object. + + A object containing the key and value to search for. + true if the shared access policies collection contains the specified key/value; otherwise, false. + + + + Copies each key/ value pair in the shared access policies collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array of objects that is the destination of the elements copied from the shared access policies collection. + The zero-based index in at which copying begins. + + + + Removes the value, specified in the object, from the shared access policies collection. + + The object, containing a key and value, to remove from the shared access policies collection. + true if the item was successfully removed; otherwise, false. + + + + Returns an enumerator that iterates through the collection of shared access policies. + + An of type . + + + + Returns an enumerator that iterates through the collection of shared access policies. + + An object that can be used to iterate through the collection of shared access policies. + + + + Gets a collection containing the keys in the shared access policies collection. + + A collection containing the keys in the of shared access policies collection. + + + + Gets a collection containing the values in the shared access policies collection. + + A collection of items in the shared access policies collection. + + + + Gets or sets the item associated with the specified key. + + The key of the value to get or set. + The item associated with the specified key, or null if key is not in the shared access policies collection. + + + + Gets the number of key/ value pairs contained in the shared access policies collection. + + The number of key/ value pairs contained in the shared access policies collection. + + + + Gets a value indicating whether the collection of shared access policies is read-only. + + true if the collection of shared access policies is read-only; otherwise, false. + + + + Represents a shared access policy for a queue, which specifies the start time, expiry time, + and permissions for a shared access signature. + + + + + Initializes a new instance of the SharedAccessQueuePolicy class. + + + + + Converts the permissions specified for the shared access policy to a string. + + The shared access permissions. + The shared access permissions in string format. + + + + Constructs a object from a permissions string. + + The shared access permissions in string format. + A set of shared access permissions. + + + + Gets or sets the start time for a shared access signature associated with this shared access policy. + + The shared access start time. + + + + Gets or sets the expiry time for a shared access signature associated with this shared access policy. + + The shared access expiry time. + + + + Gets or sets the permissions for a shared access signature associated with this shared access policy. + + The permissions. + + + + Provides methods for parsing the response from an operation to get messages from a queue. + + + + + Initializes a new instance of the class. + + The stream of messages to parse. + + + + Parses a message entry in a queue get messages response. + + Message entry + + + + Parses the XML response returned by an operation to get messages from a queue. + + An enumerable collection of objects. + + + + Gets an enumerable collection of objects from the response. + + An enumerable collection of objects. + + + + Provides methods for parsing the response from a queue listing operation. + + + + + Stores the container prefix. + + + + + Signals when the container prefix can be consumed. + + + + + Stores the marker. + + + + + Signals when the marker can be consumed. + + + + + Stores the max results. + + + + + Signals when the max results can be consumed. + + + + + Stores the next marker. + + + + + Signals when the next marker can be consumed. + + + + + Initializes a new instance of the class. + + The stream to be parsed. + + + + Parses a queue entry in a queue listing response. + + Queue listing entry + + + + Parses the response XML for a queue listing operation. + + An enumerable collection of objects. + + + + Gets the listing context from the XML response. + + A set of parameters for the listing operation. + + + + Gets an enumerable collection of objects from the response. + + An enumerable collection of objects. + + + + Gets the Prefix value provided for the listing operation from the XML response. + + The Prefix value. + + + + Gets the Marker value provided for the listing operation from the XML response. + + The Marker value. + + + + Gets the MaxResults value provided for the listing operation from the XML response. + + The MaxResults value. + + + + Gets the NextMarker value from the XML response, if the listing was not complete. + + The NextMarker value. + + + + Parses the response XML from an operation to set the access policy for a queue. + + + + + Initializes a new instance of the QueueAccessPolicyResponse class. + + The stream to be parsed. + + + + Parses the current element. + + The shared access policy element to parse. + The shared access policy. + + + + Represents a queue item returned in the XML response for a queue listing operation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the queue. + The Uri of the queue. + The queue's metadata. + + + + Gets the user-defined metadata for the queue. + + The queue's metadata, as a collection of name-value pairs. + + + + Gets the name of the queue. + + The queue's name. + + + + Gets the queue's URI. + + The absolute URI to the queue. + + + + Provides error code strings that are specific to the Queue service. + + + + + Error code that may be returned when the specified queue was not found. + + + + + Error code that may be returned when the specified queue is disabled. + + + + + Error code that may be returned when the specified queue already exists. + + + + + Error code that may be returned when the specified queue is not empty. + + + + + Error code that may be returned when the specified queue is being deleted. + + + + + Error code that may be returned when the specified pop receipt does not match. + + + + + Error code that may be returned when one or more request parameters are invalid. + + + + + Error code that may be returned when the specified message was not found. + + + + + Error code that may be returned when the specified message is too large. + + + + + Error code that may be returned when the specified marker is invalid. + + + + + Provides a set of parameters for a queue listing operation. + + + + + Initializes a new instance of the class. + + The queue prefix. + The maximum number of results to return. + The include parameter. + + + + Gets or sets the details for the listing operation, which indicates the types of data to include in the + response. + + The details to include in the listing operation. + + + + Specifies which details to include when listing the queues in this storage account. + + + + + No additional details. + + + + + Retrieve queue metadata. + + + + + Retrieve all available details. + + + + + Represents a message retrieved from a queue. + + + + + Initializes a new instance of the class. + + + + + Gets the message expiration time. + + The message expiration time. + + + + Gets the message ID. + + The message ID. + + + + Gets the time the message was added to the queue. + + The message insertion time. + + + + Gets the time the message is next visible. + + The time the message is next visible. + + + + Gets the pop receipt for the message. + + The message's pop receipt. + + + + Gets the text of the message. + + The message text. + + + + Gets the number of times this message has been dequeued. + + The dequeue count. + + + + Represents the permissions for a queue. + + + + + Initializes a new instance of the class. + + + + + Gets the set of shared access policies for the queue. + + The set of shared access policies for the queue. + + + + Provides a set of helper methods for constructing a request against the Queue service. + + + + + Writes a collection of shared access policies to the specified stream in XML format. + + A collection of shared access policies. + An output stream. + + + + Writes a message to the specified stream in XML format. + + The message body. + An output stream. + + + + Gets or sets the number of entities the table query will return. + + The maximum number of entities for the table query to return. + + + + Gets or sets the filter expression to use in the table query. + + A string containing the filter expression to use in the query. + + + + Gets or sets the property names of the table entity properties to return when the table query is executed. + + A list of strings containing the property names of the table entity properties to return when the query is executed. + + + + Provides a set of extension methods for objects of type . + + + + + Specifies a set of on the query. + + The entity type of the query. + A query that implements . + A object that specifies execution options, such as retry policy and timeout settings, for the operation. + A object with the specified request options set. + + + + + Specifies an for the query. + + The entity type of the query. + A query that implements . + An object for tracking the current operation. + A object with the specified operation context. + + + + + Specifies an entity resolver for the query. + + The entity type of the query. + The type of the resolver. + A query that implements . + The entity resolver, of type . + A with the specified resolver. + + + + + Specifies that a query be returned as a object. + + The entity type of the query. + A query that implements . + An object of type . + + + + + A type which allows callers direct access to the property map of the entity. This class eliminates the use of reflection for serialization and deserialization. + + + + + An interface required for table entity types. The interface declares getter and setter methods for the mandatory entity properties, and + and methods for serialization and de-serialization of all entity properties using a property dictionary. Create classes implementing to customize property + storage, retrieval, serialization and de-serialization, and to provide additional custom logic for a table entity. + + The storage client library includes two implementations of that provide for simple property access and serialization: + implements and provides a simple property dictionary to store and retrieve properties. Use a for simple access + to entity properties when only a subset of properties are returned (for example, by a select clause in a query), or for scenarios where your query can return multiple entity types + with different properties. You can also use this type to perform bulk table updates of heterogeneous entities without losing property information. + is an implementation of that uses reflection-based serialization and de-serialization behavior in its and methods. + -derived classes with methods that follow a convention for types and naming are serialized and deserialized automatically. -derived classes must also provide a get-able and set-able public + property of a type that is supported by the Windows Azure Table service. + + + + Populates the entity's properties from the data values in the dictionary. + + The dictionary of string property names to data values to deserialize and store in this table entity instance. + An object used to track the execution of the operation. + + + + Serializes the of property names mapped to data values from the entity instance. + + An object used to track the execution of the operation. + A dictionary of property names to data typed values created by serializing this table entity instance. + + + + Gets or sets the entity's partition key. + + The entity's partition key. + + + + Gets or sets the entity's row key. + + The entity's row key. + + + + Gets or sets the entity's timestamp. + + The entity's timestamp. The property is populated by the Windows Azure Table Service. + + + + Gets or sets the entity's current ETag. Set this value to '*' + in order to blindly overwrite an entity as part of an update + operation. + + The entity's timestamp. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified partition key and row key. + + The partition key value for the entity. + The row key value for the entity. + + + + Initializes a new instance of the class with the entity's partition key, row key, ETag (if available/required), and properties. + + The entity's partition key. + The entity's row key. + The entity's current ETag. + The entity's properties, indexed by property name. + + + + Initializes a new instance of the class with the entity's partition key, row key, timestamp, ETag (if available/required), and properties. + + The entity's partition key. + The entity's row key. + The timestamp for this entity as returned by Windows Azure. + The entity's current ETag; set to null to ignore the ETag during subsequent update operations. + An containing a map of property names to data typed values to store in the new . + + + + Deserializes this instance using the specified of property names to values of type . + + A collection containing the of string property names mapped to values of type to store in this instance. + An object used to track the execution of the operation. + + + + Serializes the of property names mapped to values of type from this instance. + + An object used to track the execution of the operation. + A collection containing the map of string property names to values of type stored in this instance. + + + + Gets or sets the properties in the table entity, indexed by property name. + + The entity properties. + + + + Gets or sets the entity's partition key. + + The entity partition key. + + + + Gets or sets the entity's row key. + + The entity row key. + + + + Gets or sets the entity's timestamp. + + The entity timestamp. + + + + Gets or sets the entity's current ETag. Set this value to '*' to blindly overwrite an entity as part of an update operation. + + The entity ETag. + + + + Gets or sets the entity's property, given the name of the property. + + The name of the property. + The property. + + + + Enumeration containing the types of values that can be stored in + a table entity property. + + + + + Represents fixed- or variable-length character data. + + + + + Represents fixed- or variable-length binary data. + + + + + Represents the mathematical concept of binary-valued logic. + + + + + Represents date and time. + + + + + Represents a floating point number with 15 digits precision that can represent values with approximate range of +/- 2.23e -308 through +/- 1.79e +308. + + + + + Represents a 16-byte (128-bit) unique identifier value. + + + + + Represents a signed 32-bit integer value. + + + + + Represents a signed 64-bit integer value. + + + + + Class for storing information about a single property in an entity in a table. + + + + + Creates a new object that represents the specified offset value. + + The value for the new . + A new of the offset type. + + + + Creates a new object that represents the specified byte array. + + The value for the new . + A new of the byte array. + + + + Creates a new object that represents the specified value. + + The value for the new . + A new of the type. + + + + Creates a new object that represents the specified value. + + The value for the new . + A new of the type. + + + + Creates a new object that represents the specified value. + + The value for the new . + A new of the type. + + + + Creates a new object that represents the specified value. + + The value for the new . + A new of the type. + + + + Creates a new object that represents the specified value. + + The value for the new . + A new of the type. + + + + Creates a new object that represents the specified value. + + The value for the new . + A new of the type. + + + + Initializes a new instance of the class by using the + byte array value of the property. + + The value for the new . + + + + Initializes a new instance of the class by using the + value of the property. + + The value for the new . + + + + Initializes a new instance of the class by using the + value of the property. + + The value for the new . + + + + Initializes a new instance of the class by using the + value of the property. + + The value for the new . + + + + Initializes a new instance of the class by using the + value of the property. + + The value for the new . + + + + Initializes a new instance of the class by using the + value of the property. + + The value for the new . + + + + Initializes a new instance of the class by using the + value of the property. + + The value for the new . + + + + Initializes a new instance of the class by using the + value of the property. + + The value for the new . + + + + Initializes a new instance of the class by using the + value of the property. + + The value for the new . + + + + Initializes a new instance of the EntityProperty class given the + EdmType of the property (the value must be set by a public + constructor). + + + + + Compares the given object (which is probably an ) + for equality with this object. + + The other object. + true if the objects are equivalent; false otherwise. + + + + Compares the given object (which is probably an ) + for equality with this object. + + The other object. + true if the objects are equivalent; false otherwise. + + + + Gets the hash code for this entity property. + + The hash code for the entity property. + + + + Creates an from the object. + + The value of the object. + The reference to the object created. + + + + Ensures that the given type matches the type of this entity + property; throws an exception if the types do not match. + + + + + Gets the as a generic object. + + + + + Gets the of this object. + + The of this object. + + + + Gets or sets the byte array value of this object. + An exception will be thrown if you attempt to set this property to anything other than an byte array. + + The byte array value of this object. + + + + Gets or sets the value of this object. + An exception will be thrown if you attempt to set this property to anything other than an Object. + + The value of this object. + + + + Gets or sets the offset value of this object. + An exception will be thrown if you attempt to set this property to anything other than a object. + + The offset value of this object. + + + + Gets or sets the value of this object. + An exception will be thrown if you attempt to set this property to anything other than a object. + + The value of this object. + + + + Gets or sets the value of this object. + An exception will be thrown if you attempt to set this property to anything other than a object. + + The value of this object. + + + + Gets or sets the value of this object. + An exception will be thrown if you attempt to set this property to anything other than an Object. + + The value of this object. + + + + Gets or sets the value of this object. + An exception will be thrown if you attempt to set this property to anything other than an Object. + + The value of this object. + + + + Gets or sets the value of this object. + An exception will be thrown if you attempt to set this property to anything other than a object. + + The value of this object. + + + + Returns a delegate for resolving entities. + + The type into which the query results are projected. + The partition key. + The row key. + The timestamp. + A dictionary of properties. + The ETag. + + + + + Defines the set of comparison operators that may be used for constructing queries. + + + + + Represents the Equal operator. + + + + + Represents the Not Equal operator. + + + + + Represents the Greater Than operator. + + + + + Represents the Greater Than or Equal operator. + + + + + Represents the Less Than operator. + + + + + Represents the Less Than or Equal operator. + + + + + Specifies the set of possible permissions for a shared access table policy. + + + + + No shared access granted. + + + + + Permission to query entities granted. + + + + + Permission to add entities granted. + + + + + Permission to modify entities granted. + + + + + Permission to delete entities granted. + + + + + Represents the collection of shared access policies defined for a table. + + + + + Adds the specified key and value to the collection of shared access policies. + + The key of the value to add. + The value to add to the collection of shared access policies. + + + + Determines whether the collection of shared access policies contains the specified key. + + The key to locate in the collection of shared access policies. + true if the collection of shared access policies contains an element with the specified key; otherwise, false. + + + + Removes the value with the specified key from the shared access policies collection. + + The key of the item to remove. + true if the element is successfully found and removed; otherwise, false. This method returns false if the key is not found. + + + + Gets the item associated with the specified key. + + The key of the value to get. + The item to get. + The item associated with the specified key, if the key is found; otherwise, the default value for the type. + + + + Adds the specified key/ value, stored in a , to the collection of shared access policies. + + The object, containing a key/ value pair, to add to the shared access policies collection. + + + + Removes all keys and values from the shared access collection. + + + + + Determines whether the collection of shared access policies contains the key and value in the specified object. + + A object containing the key and value to search for. + true if the shared access policies collection contains the specified key/value; otherwise, false. + + + + Copies each key/ value pair in the shared access policies collection to a compatible one-dimensional array, starting at the specified index of the target array. + + The one-dimensional array of objects that is the destination of the elements copied from the shared access policies collection. + The zero-based index in at which copying begins. + + + + Removes the value, specified in the object, from the shared access policies collection. + + The object, containing a key and value, to remove from the shared access policies collection. + true if the item was successfully removed; otherwise, false. + + + + Returns an enumerator that iterates through the collection of shared access policies. + + An of type . + + + + Returns an enumerator that iterates through the collection of shared access policies. + + An object that can be used to iterate through the collection of shared access policies. + + + + Gets a collection containing the keys in the shared access policies collection. + + A collection containing the keys in the of shared access policies collection. + + + + Gets a collection containing the values in the shared access policies collection. + + A collection of items in the shared access policies collection. + + + + Gets or sets the item associated with the specified key. + + The key of the value to get or set. + The item associated with the specified key, or null if key is not in the shared access policies collection. + + + + Gets the number of key/ value pairs contained in the shared access policies collection. + + The number of key/ value pairs contained in the shared access policies collection. + + + + Gets a value indicating whether the collection of shared access policies is read-only. + + true if the collection of shared access policies is read-only; otherwise, false. + + + + Represents a shared access policy, which specifies the start time, expiry time, + and permissions for a shared access signature. + + + + + Initializes a new instance of the SharedAccessTablePolicy class. + + + + + Converts the permissions specified for the shared access policy to a string. + + The shared access permissions. + The shared access permissions in string format. + + + + Constructs a object from a permissions string. + + The shared access permissions in string format. + A set of shared access permissions. + + + + Gets or sets the start time for a shared access signature associated with this shared access policy. + + The shared access start time. + + + + Gets or sets the expiry time for a shared access signature associated with this shared access policy. + + The shared access expiry time. + + + + Gets or sets the permissions for a shared access signature associated with this shared access policy. + + The permissions. + + + + Represents a continuation token for listing operations. + + A method that may return a partial set of results via a object also returns a continuation token, + which can be used in a subsequent call to return the next set of available results. + + + + Gets an XML representation of an object. + + + An that describes the XML representation of the object that is produced by the method and consumed by the method. + + + + + Generates a serializable continuation token from its XML representation. + + The stream from which the continuation token is deserialized. + + + + Converts a serializable continuation token into its XML representation. + + The stream to which the continuation token is serialized. + + + + Gets or sets the version for continuing results for enumeration operations. + + The version. + + + + Gets or sets the type element (blob, queue, table) for continuing results for enumeration operations. + + The type element. + + + + Gets or sets the next partition key for enumeration operations. + + The next partition key. + + + + Gets or sets the next row key for enumeration operations. + + The next row key. + + + + Gets or sets the next table name for enumeration operations. + + The name of the next table. + + + + Gets or sets the storage location that the continuation token applies to. + + The storage location that the continuation token applies to. + + + + Represents the base object type for a table entity in the Table service. + + provides a base implementation for the interface that provides and methods that by default serialize and + deserialize all properties via reflection. A table entity class may extend this class and override the and methods to provide customized or better performing serialization logic. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified partition key and row key. + + The partition key of the to be initialized. + The row key of the to be initialized. + + + + Deserializes this instance using the specified of property names to data typed values. + + The map of string property names to data values to deserialize and store in this table entity instance. + An object used to track the execution of the operation. + + + + Deserializes a custom entity instance using the specified of property names to data typed values. + + Custom entity instance being deserialized. + The map of string property names to data values to deserialize and store in this entity instance. + An object used to track the execution of the operation. + + + + Serializes the of property names mapped to data values from this instance. + + An object used to track the execution of the operation. + A map of property names to data typed values created by serializing this table entity instance. + + + + Create a of objects for all the properties of the specified entity object. + + The entity object to serialize. + An object used to track the execution of the operation. + A of objects for all the properties of the specified entity object. + + + + Determines if the given property should be skipped based on its name, if it exposes a public getter and setter, and if the IgnoreAttribute is not defined. + + The PropertyInfo of the property to check + An object used to track the execution of the operation. + True if the property should be skipped, false otherwise. + + + + Compiles a ReadAction for the given type + + The type to compile for + A ReadAction that deserializes the given entity type. + + + + Compiles a WriteFunc for the given type + + The type to compile for + A WriteFunc that serializes the given entity type. + + + + Generates a Conditional Expression that will retrieve the given entity value by type and set it into the current property. + + The entity type + The property to deserialize into + An Expression that represents the entity instance + An Expression that represents the current EntityProperty expression + + + + + Gets the EntityProperty from the dictionary, or returns null. Similar to IDictionary.TryGetValue with logging support. + + The key value + The Dictionary instance + The operationContext to log to. + + + + + Gets or sets the entity's partition key. + + The partition key of the entity. + + + + Gets or sets the entity's row key. + + The row key of the entity. + + + + Gets or sets the entity's timestamp. + + The timestamp of the entity. + + + + Gets or sets the entity's current ETag. Set this value to '*' in order to blindly overwrite an entity as part of an update operation. + + The ETag of the entity. + + + + Disables the ability to dynamically generate read and write lambdas at runtime. Setting this to false will clear out the static cache shared across all type instances that derive from TableEntity. + + + + + This entities compiled Write Func + + + + + This entities compiled Read Action + + + + + Gets or sets the status of the property resolver cache for the . + + The property resolver cache caches known entity types and their respective property resolver dictionaries when entities are deserialized and the payload does not include JSON metadata. For most scenarios, disabling the property resolver cache is not recommended due to its effect on performance. + + + + + + Enumeration containing the types of operations that can be + performed by a . + + + + + Represents an insert operation. + + + + + Represents a delete operation. + + + + + Represents a replace operation. + + + + + Represents a merge operation. + + + + + Represents an insert or replace operation. + + + + + Represents an insert or merge operation. + + + + + Represents a retrieve operation. + + + + + Defines the set of Boolean operators for constructing queries. + + + + + Represents the And operator. + + + + + Represents the Not operator. + + + + + Represents the Or operator. + + + + + Describes the payload formats supported for Tables. + + + + + Use AtomPub. + + + + + Use JSON with full metadata. + + + + + Use JSON with minimal metadata. + + + + + Use JSON with no metadata. + + + + + Represents the permissions for a table. + + + + + Initializes a new instance of the class. + + + + + Gets the set of shared access policies for the container. + + The set of shared access policies for the container. + + + + Represents a segment of results and contains continuation token information. + + The type of the result that the segment contains. + + + + Stores the continuation token used to retrieve the next segment of results. + + + + + Initializes a new instance of the class. + + The result. + + + + Returns an enumerator that iterates through the . + + An enumerator that iterates through the . + + + + Gets an enumerable collection of results. + + An enumerable collection of results. + + + + Gets a continuation token to use to retrieve the next set of results with a subsequent call to the operation. + + The continuation token. + + + + Represents a set of timeout and retry policy options that may be specified for a request against the Table service. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified . + + The request options used to initialize this instance of the class. + + + + Gets or sets the absolute expiry time across all potential retries for the request. + + + + + Gets or sets the retry policy for the request. + + The retry policy delegate. + + + + Gets or sets the location mode of the request. + + The location mode of the request. + + + + Gets or sets the server timeout for the request. + + The client and server timeout interval for the request. + + + + Gets or sets the maximum execution time for all potential retries for the request. + + A representing the maximum execution time for retries for the request. + + + + Gets or sets the that will be used for the request. + + The TablePayloadFormat to use. + + + + Gets or sets the delegate that is used to get the for an entity property given the partition key, row key, and the property name. + + + + + Represents the result of a table operation. + + The class encapsulates the HTTP response and any table entity results returned by the Storage Service REST API operation called for a particular . + + + + Gets or sets the result returned by the as an . + + The result of the table operation as an . + + + + Gets or sets the HTTP status code returned by a request. + + The HTTP status code returned by a request. + + + + Gets or sets the ETag returned with the request results. + + The ETag returned with the request results. + + + + Represents a segment of results, with continuation information for pagination scenarios. + + + + + Initializes a new instance of the class. + + The result. + + + + Stores the continuation token used to retrieve the next segment of results or null if there are no more results. + + + + + Returns an enumerator that iterates through the segment of results. + + An enumerator that iterates through the segment of results. + + + + Gets an enumerable collection of results. + + An enumerable collection of results. + + + + Gets the continuation token used to retrieve the next segment of results. Returns null if there are no more results. + + The continuation token. + + + + Internal table service entity for creating tables. + + + + + Stores the table name. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified name. + + The name of the table. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + Returns true if the specified is equal to this instance; otherwise, false. + + + The parameter is null. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Gets or sets the table name. + + The name of the table. + + + + Parses the response XML from an operation to set the access policy for a table. + + + + + Initializes a new instance of the TableAccessPolicyResponse class. + + The stream to be parsed. + + + + Parses the current element. + + The shared access policy element to parse. + The shared access policy. + + + + A set of constants used in operations against the Table service. + + + + + Stores the header prefix for continuation information. + + + + + Stores the header suffix for the next partition key. + + + + + Stores the header suffix for the next row key. + + + + + Stores the table suffix for the next table name. + + + + + Stores the maximum results the table service can return. + + + + + The maximum size of a string property for the table service in bytes. + + + + + The maximum size of a string property for the table service in bytes. + + + + + The maximum size of a string property for the table service in chars. + + + + + The name of the special table used to store tables. + + + + + The name of the partition key property. + + + + + The name of the row key property. + + + + + The name of the Timestamp property. + + + + + The name of the ETag property. + + + + + The name of the property that stores the table name. + + + + + The query filter clause name. + + + + + The query top clause name. + + + + + The query select clause name. + + + + + The minimum DateTime supported. + + + + + Provides error code strings that are specific to the Windows Azure Table service. + + + + + The request uses X-HTTP-Method with an HTTP verb other than POST. + + + + + The specified X-HTTP-Method is invalid. + + + + + More than one X-HTTP-Method is specified. + + + + + The specified table has no properties. + + + + + A property is specified more than once. + + + + + The specified table has no such property. + + + + + A duplicate key property was specified. + + + + + The specified table already exists. + + + + + The specified table was not found. + + + + + The specified entity was not found. + + + + + The specified entity already exists. + + + + + The partition key was not specified. + + + + + One or more specified operators are invalid. + + + + + The specified update condition was not satisfied. + + + + + All properties must have values. + + + + + The partition key property cannot be updated. + + + + + The entity contains more properties than allowed. + + + + + The entity is larger than the maximum size permitted. + + + + + The property value is larger than the maximum size permitted. + + + + + One or more value types are invalid. + + + + + The specified table is being deleted. + + + + + The Table service server is out of memory. + + + + + The type of the primary key property is invalid. + + + + + The property name exceeds the maximum allowed length. + + + + + The property name is invalid. + + + + + Batch operations are not supported for this operation type. + + + + + JSON format is not supported. + + + + + The specified method is not allowed. + + + + + The specified operation is not yet implemented. + + + + + Provides a set of helper methods for constructing a request against the Table service. + + + + + Writes a collection of shared access policies to the specified stream in XML format. + + A collection of shared access policies. + An output stream. + + + + Contains storage constants. + + + + + Constant for the max value of ParallelOperationThreadCount for Block Blobs. + + + + + Maximum number of shared access policy identifiers supported by server. + + + + + Default Write Block Size used by Blob stream. + + + + + The maximum size of a blob before it must be separated into blocks. + + + + + The maximum size of a single block. + + + + + The maximum size of a range get operation that returns content MD5. + + + + + The maximum number of blocks. + + + + + The maximum size of a blob with blocks. + + + + + Default size of buffer for unknown sized requests. + + + + + Common name to be used for all loggers. + + + + + The size of a page in a PageBlob. + + + + + A constant representing a kilo-byte (Non-SI version). + + + + + A constant representing a megabyte (Non-SI version). + + + + + A constant representing a megabyte (Non-SI version). + + + + + XML element for committed blocks. + + + + + XML element for uncommitted blocks. + + + + + XML element for blocks. + + + + + XML element for names. + + + + + XML element for sizes. + + + + + XML element for block lists. + + + + + XML element for queue message lists. + + + + + XML element for queue messages. + + + + + XML element for message IDs. + + + + + XML element for insertion times. + + + + + XML element for expiration times. + + + + + XML element for pop receipts. + + + + + XML element for the time next visible fields. + + + + + XML element for message texts. + + + + + XML element for dequeue counts. + + + + + XML element for page ranges. + + + + + XML element for page list elements. + + + + + XML element for page range start elements. + + + + + XML element for page range end elements. + + + + + XML element for delimiters. + + + + + XML element for blob prefixes. + + + + + XML element for content type fields. + + + + + XML element for content type fields. + + + + + XML element for content encoding fields. + + + + + XML element for content language fields. + + + + + XML element for content length fields. + + + + + XML element for content MD5 fields. + + + + + XML element for enumeration results. + + + + + XML element for service endpoint. + + + + + XML element for container name. + + + + + XML element for blobs. + + + + + XML element for prefixes. + + + + + XML element for maximum results. + + + + + XML element for markers. + + + + + XML element for the next marker. + + + + + XML element for the ETag. + + + + + XML element for the last modified date. + + + + + XML element for the Url. + + + + + XML element for blobs. + + + + + XML element for copy ID. + + + + + XML element for copy status. + + + + + XML element for copy source. + + + + + XML element for copy progress. + + + + + XML element for copy completion time. + + + + + XML element for copy status description. + + + + + Constant signaling a page blob. + + + + + Constant signaling a block blob. + + + + + Constant signaling the blob is locked. + + + + + Constant signaling the blob is unlocked. + + + + + Constant signaling the resource is available for leasing. + + + + + Constant signaling the resource is leased. + + + + + Constant signaling the resource's lease has expired. + + + + + Constant signaling the resource's lease is breaking. + + + + + Constant signaling the resource's lease is broken. + + + + + Constant signaling the resource's lease is infinite. + + + + + Constant signaling the resource's lease is fixed (finite). + + + + + Constant for a pending copy. + + + + + Constant for a successful copy. + + + + + Constant for an aborted copy. + + + + + Constant for a failed copy. + + + + + Constant for unavailable geo-replication status. + + + + + Constant for live geo-replication status. + + + + + Constant for bootstrap geo-replication status. + + + + + XML element for blob types. + + + + + XML element for the lease status. + + + + + XML element for the lease status. + + + + + XML element for the lease status. + + + + + XML element for snapshots. + + + + + XML element for containers. + + + + + XML element for a container. + + + + + XML element for queues. + + + + + Version 2 of the XML element for the queue name. + + + + + XML element for the queue. + + + + + XML element for properties. + + + + + XML element for the metadata. + + + + + XML element for an invalid metadata name. + + + + + XML element for maximum results. + + + + + XML element for committed blocks. + + + + + XML element for uncommitted blocks. + + + + + XML element for the latest. + + + + + XML element for signed identifiers. + + + + + XML element for a signed identifier. + + + + + XML element for access policies. + + + + + XML attribute for IDs. + + + + + XML element for the start time of an access policy. + + + + + XML element for the end of an access policy. + + + + + XML element for the permissions of an access policy. + + + + + The URI path component to access the messages in a queue. + + + + + XML element for exception details. + + + + + XML root element for errors. + + + + + XML element for error codes. + + + + + XML element for error codes returned by the preview tenants. + + + + + XML element for error messages. + + + + + XML element for error messages. + + + + + XML element for exception messages. + + + + + XML element for stack traces. + + + + + Namespace of the entity container. + + + + + Name of the entity container. + + + + + Name of the entity set. + + + + + Namespace name for primitive types. + + + + + Default namespace name for Tables. + + + + + Default name for Tables. + + + + + Header value to set Accept to XML. + + + + + Header value to set Accept to AtomPub. + + + + + Header value to set Accept to JsonLight. + + + + + Header value to set Accept to JsonFullMetadata. + + + + + Header value to set Accept to JsonNoMetadata. + + + + + Header value to set Content-Type to AtomPub. + + + + + Header value to set Content-Type to JSON. + + + + + The prefix used in all ETags. + + + + + Default client side timeout for all service clients. + + + + + Default server side timeout for all service clients. + + + + + Maximum Retry Policy back-off + + + + + Maximum allowed timeout for any request. + + + + + Constants for HTTP headers. + + + + + Specifies the value to use for UserAgent header. + + + + + Specifies the value to use for UserAgent header. + + + + + Master Windows Azure Storage header prefix. + + + + + True Header. + + + + + False Header. + + + + + Header prefix for properties. + + + + + Header prefix for metadata. + + + + + Header that specifies content length. + + + + + Header that specifies content language. + + + + + Header that specifies the ETag value for the resource. + + + + + Header for data ranges. + + + + + Header for range content MD5. + + + + + Header for storage version. + + + + + Header for copy source. + + + + + Header for the If-Match condition. + + + + + Header for the If-Modified-Since condition. + + + + + Header for the If-None-Match condition. + + + + + Header for the If-Unmodified-Since condition. + + + + + Header for the If-Sequence-Number-LE condition. + + + + + Header for the If-Sequence-Number-LT condition. + + + + + Header for the If-Sequence-Number-EQ condition. + + + + + Header for the blob type. + + + + + Header for snapshots. + + + + + Header to delete snapshots. + + + + + Header that specifies approximate message count of a queue. + + + + + Header that specifies blob caching control. + + + + + Response header that specifies the blob content disposition. + + + + + Request header that specifies the blob content disposition. + + + + + Header that specifies blob content encoding. + + + + + Header that specifies blob content language. + + + + + Header that specifies blob content MD5. + + + + + Header that specifies blob content type. + + + + + Header that specifies blob content length. + + + + + Header that specifies blob sequence number. + + + + + Header that specifies sequence number action. + + + + + Header that specifies lease ID. + + + + + Header that specifies lease status. + + + + + Header that specifies lease status. + + + + + Header that specifies page write mode. + + + + + Header that specifies the date. + + + + + Header indicating the request ID. + + + + + Header indicating the client request ID. + + + + + Header that specifies public access to blobs. + + + + + Format string for specifying ranges. + + + + + Current storage version header value. + Every time this version changes, assembly version needs to be updated as well. + + + + + Specifies the page blob type. + + + + + Specifies the block blob type. + + + + + Specifies only snapshots are to be included. + + + + + Specifies snapshots are to be included. + + + + + Header that specifies the pop receipt for a message. + + + + + Header that specifies the next visible time for a message. + + + + + Header that specifies whether to peek-only. + + + + + Header that specifies whether data in the container may be accessed publicly and what level of access is to be allowed. + + + + + Header that specifies the lease action to perform. + + + + + Header that specifies the proposed lease ID for a leasing operation. + + + + + Header that specifies the duration of a lease. + + + + + Header that specifies the break period of a lease. + + + + + Header that specifies the remaining lease time. + + + + + Header that specifies the key name for explicit keys. + + + + + Header that specifies the copy ID. + + + + + Header that specifies the copy last modified time. + + + + + Header that specifies the copy status. + + + + + Header that specifies the copy progress. + + + + + Header that specifies a copy error message. + + + + + Header that specifies the copy action. + + + + + The value of the copy action header that signifies an abort operation. + + + + + Header that specifies the Accept type for the response payload. + + + + + Header that specifies the Content type for the request payload. + + + + + Specifies the value to use for UserAgent header. + + + + + Specifies the comment to use for UserAgent header. + + + + + Constants for query strings. + + + + + Query component for snapshot time. + + + + + Query component for the signed SAS start time. + + + + + Query component for the signed SAS expiry time. + + + + + Query component for the signed SAS resource. + + + + + Query component for the SAS table name. + + + + + Query component for the signed SAS permissions. + + + + + Query component for the SAS start partition key. + + + + + Query component for the SAS start row key. + + + + + Query component for the SAS end partition key. + + + + + Query component for the SAS end row key. + + + + + Query component for the signed SAS identifier. + + + + + Query component for the signing SAS key. + + + + + Query component for the signed SAS version. + + + + + Query component for SAS signature. + + + + + Query component for SAS cache control. + + + + + Query component for SAS content type. + + + + + Query component for SAS content encoding. + + + + + Query component for SAS content language. + + + + + Query component for SAS content disposition. + + + + + Query component for message time-to-live. + + + + + Query component for message visibility timeout. + + + + + Query component for the number of messages. + + + + + Query component for message pop receipt. + + + + + Query component for resource type. + + + + + Query component for the operation (component) to access. + + + + + Query component for the copy ID. + + + + + Constants for Result Continuations + + + + + Top Element for Continuation Tokens + + + + + XML element for the next marker. + + + + + XML element for the next partition key. + + + + + XML element for the next row key. + + + + + XML element for the next table name. + + + + + XML element for the target location. + + + + + XML element for the token version. + + + + + Stores the current token version value. + + + + + XML element for the token type. + + + + + Specifies the blob continuation token type. + + + + + Specifies the queue continuation token type. + + + + + Specifies the table continuation token type. + + + + + HTTP methods that are supported by CORS. + + + + + Represents no HTTP method in a CORS rule. + + + + + Represents the GET HTTP method in a CORS rule. + + + + + Represents the HEAD HTTP method in a CORS rule. + + + + + Represents the POST HTTP method in a CORS rule. + + + + + Represents the PUT HTTP method in a CORS rule. + + + + + Represents the DELETE HTTP method in a CORS rule. + + + + + Represents the TRACE HTTP method in a CORS rule. + + + + + Represents the OPTIONS HTTP method in a CORS rule. + + + + + Represents the CONNECT HTTP method in a CORS rule. + + + + + Represents the MERGE HTTP method in a CORS rule. + + + + + Class representing the service properties pertaining to CORS. + + + + + Constructs a CORS Properties object. + + + + + Gets or sets CORS rules. The order of the list corresponds to precedence of rules. + + A collection containing CORS rules, limited to 5. + + + + Class representing the service properties pertaining to CORS. + + + + + Gets or sets domain names allowed via CORS. + + A collection of strings containing the allowed domain names, limited to 64. + + + + Gets or sets response headers that should be exposed to client via CORS. + + A collection of strings containing exposed headers, limited to 64 defined headers and two prefixed headers. + + + + Gets or sets headers allowed to be part of the CORS request. + + A collection of strings containing allowed headers, limited to 64 defined headers and two prefixed headers. + + + + Gets or sets the HTTP methods permitted to execute for this origin. + + The allowed HTTP methods. + + + + Gets or sets the length of time in seconds that a preflight response should be cached by browser. + + The maximum number of seconds to cache the response. + + + + Class representing the geo-replication stats. + + + + + The name of the status XML element. + + + + + The name of the last sync time XML element. + + + + + Initializes a new instance of the GeoReplicationStats class. + + + + + Gets a from a string. + + The geo-replication status string. + A enumeration. + The string contains an unrecognized value. + + + + Constructs a GeoReplicationStats object from an XML element. + + The XML element. + A GeoReplicationStats object containing the properties in the element. + + + + Gets or sets the status of geo-replication. + + The status of geo-replication. + + + + Gets or sets the last synchronization time. + + The last synchronization time. + All primary writes preceding this value are guaranteed to be available for read operations. Primary writes following this point in time may or may not be available for reads. + + + + Enumeration representing the state of geo-replication in a service. + + + + + Status of geo-replication is unavailable. + + + + + Geo-replication is live. + + + + + Data is being bootstrapped from primary to secondary. + + + + + Enumeration representing the state of logging in a service. + + + + + Logging is disabled. + + + + + Log read operations. + + + + + Log write operations. + + + + + Log delete operations. + + + + + Log all operations. + + + + + Class representing the service properties pertaining to logging. + + + + + Gets or sets the version of the analytics service. + + A string identifying the version of the service. + + + + Gets or sets the state of logging. + + A combination of flags describing the operations that are logged. + + + + Gets or sets the logging retention policy. + + The number of days to retain the logs. + + + + Enumeration representing the state of metrics collection in a service. + + + + + Metrics collection is disabled. + + + + + Service-level metrics collection is enabled. + + + + + Service-level and API metrics collection are enabled. + + + + + Class representing the service properties pertaining to metrics. + + + + + Gets or sets the version of the analytics service. + + A string identifying the version of the service. + + + + Gets or sets the state of metrics collection. + + A value indicating which metrics to collect, if any. + + + + Gets or sets the logging retention policy. + + The number of days to retain the logs. + + + + Writes a collection of shared access policies to the specified stream in XML format. + + A collection of shared access policies. + An output stream. + A delegate that writes a policy to an XML writer. + The type of policy to write. + + + + Gets the request id. + + The response from server. + The request ID. + + + + Reads a collection of shared access policies from the specified object. + + A collection of shared access policies to be filled. + A policy response object for reading the stream. + The type of policy to read. + + + + Parses the metadata. + + The reader. + A of metadata. + + Precondition: reader at <Metadata> + Postcondition: reader after </Metadata> (<Metadata/> consumed) + + + + + Class representing a set of properties pertaining to a cloud storage service. + + + + + The name of the root XML element. + + + + + The name of the logging XML element. + + + + + The name of the metrics XML element. + + + + + The name of the CORS XML element. + + + + + The name of the minute metrics XML element. + + + + + The name of the version XML element. + + + + + The name of the delete operation XML element. + + + + + The name of the read operation XML element. + + + + + The name of the write operation XML element. + + + + + The name of the retention policy XML element. + + + + + The name of the enabled XML element. + + + + + The name of the days XML element. + + + + + The name of the include APIs XML element. + + + + + The name of the default service version XML element. + + + + + The name of the CORS Rule XML element. + + + + + The name of the Allowed Origin XML element. + + + + + The name of the Allowed Method XML element. + + + + + The name of the Maximum Age XML element. + + + + + The name of the Exposed Headers XML element. + + + + + The name of the Allowed Headers XML element. + + + + + Initializes a new instance of the ServiceProperties class. + + + + + Constructs a ServiceProperties object from an XML document received from the service. + + The XML document. + A ServiceProperties object containing the properties in the XML document. + + + + Converts these properties into XML for communicating with the service. + + An XML document containing the service properties. + + + + Generates XML representing the given retention policy. + + The number of days to retain, or null if the policy is disabled. + An XML retention policy element. + + + + Generates XML representing the given metrics properties. + + The metrics properties. + The XML name for these metrics. + An XML metrics element. + + + + Generates XML representing the given logging properties. + + The logging properties. + An XML logging element. + + + + Generates XML representing the given CORS properties. + + The CORS properties. + An XML logging element. + + + + Constructs a LoggingProperties object from an XML element. + + The XML element. + A LoggingProperties object containing the properties in the element. + + + + Constructs a MetricsProperties object from an XML element. + + The XML element. + A MetricsProperties object containing the properties in the element. + + + + Constructs a CorsProperties object from an XML element. + + The XML element. + A CorsProperties object containing the properties in the element. + + + + Constructs a retention policy (number of days) from an XML element. + + The XML element. + The number of days to retain, or null if retention is disabled. + + + + Writes service properties to a stream, formatted in XML. + + The stream to which the formatted properties are to be written. + + + + Gets or sets the logging properties. + + The logging properties. + + + + Gets or sets the hour metrics properties. + + The metrics properties. + + + + Gets or sets the hour metrics properties. + + The metrics properties. + + + + Gets or sets the Cross Origin Resource Sharing (CORS) properties. + + The CORS properties. + + + + Gets or sets the minute metrics properties. + + The minute metrics properties. + + + + Gets or sets the default service version. + + The default service version identifier. + + + + Class representing a set of stats pertaining to a cloud storage service. + + + + + The name of the root XML element. + + + + + The name of the geo-replication XML element. + + + + + Initializes a new instance of the ServiceStats class. + + + + + Constructs a ServiceStats object from an XML document received from the service. + + The XML document. + A ServiceStats object containing the properties in the XML document. + + + + Gets or sets the geo-replication stats. + + The geo-replication stats. + + + + Provides error code strings that are common to all storage services. + + + + + The specified HTTP verb is not supported. + + + + + The Content-Length header is required for this request. + + + + + A required header was missing. + + + + + A required XML node was missing. + + + + + One or more header values are not supported. + + + + + One or more XML nodes are not supported. + + + + + One or more header values are invalid. + + + + + One or more XML node values are invalid. + + + + + A required query parameter is missing. + + + + + One or more query parameters is not supported. + + + + + One or more query parameters are invalid. + + + + + One or more query parameters are out of range. + + + + + The URI is invalid. + + + + + The HTTP verb is invalid. + + + + + The metadata key is empty. + + + + + The request body is too large. + + + + + The specified XML document is invalid. + + + + + An internal error occurred. + + + + + Authentication failed. + + + + + The specified MD5 hash does not match the server value. + + + + + The specified MD5 hash is invalid. + + + + + The input is out of range. + + + + + The input is invalid. + + + + + The operation timed out. + + + + + The specified resource was not found. + + + + + The specified metadata is invalid. + + + + + The specified metadata is too large. + + + + + The specified condition was not met. + + + + + The specified range is invalid. + + + + + The specified container was not found. + + + + + The specified container already exists. + + + + + The specified container is disabled. + + + + + The specified container is being deleted. + + + + + The server is busy. + + + + diff --git a/TinyFileManager.NET/bin/Newtonsoft.Json.dll b/TinyFileManager.NET/bin/Newtonsoft.Json.dll new file mode 100644 index 0000000..0a15915 Binary files /dev/null and b/TinyFileManager.NET/bin/Newtonsoft.Json.dll differ diff --git a/TinyFileManager.NET/bin/Newtonsoft.Json.xml b/TinyFileManager.NET/bin/Newtonsoft.Json.xml new file mode 100644 index 0000000..a324ed3 --- /dev/null +++ b/TinyFileManager.NET/bin/Newtonsoft.Json.xml @@ -0,0 +1,8380 @@ + + + + Newtonsoft.Json + + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. + + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. + + + + + Initializes a new instance of the class with the specified . + + + + + Reads the next JSON token from the stream. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A or a null reference 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 stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . 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 state based on current token type. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the to Closed. + + + + + Gets the current reader state. + + The current reader state. + + + + Gets or sets a value indicating whether the underlying stream or + should be closed when the reader is closed. + + + true to close the underlying stream or when + the reader is closed; otherwise false. The default is true. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + Get or set how time zones are handling when reading JSON. + + + + + Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + 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 Common Language Runtime (CLR) 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 . + + + + + Specifies the state of the reader. + + + + + The 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 Close method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader in a constructor. + + + + + An error occurred that prevents the read operation from continuing. + + + + + The end of the file has been reached successfully. + + + + + Initializes a new instance of the class. + + The stream. + + + + Initializes a new instance of the class. + + The reader. + + + + Initializes a new instance of the class. + + The stream. + 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 reader. + 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 stream as a . + + + A or a null reference 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 stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + + A . This method will return null at the end of an array. + + + + + Reads the next JSON token from the stream. + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the to Closed. + + + + + Gets or sets a value indicating whether binary data reading should 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. + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. + + + + + Creates an instance of the JsonWriter class. + + + + + Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. + + + + + Closes this stream and the underlying stream. + + + + + 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 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 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 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 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. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes out a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes out the given white space. + + The string of white space characters. + + + + Sets the state of the JsonWriter, + + The JsonToken being written. + The value being written. + + + + Gets or sets a value indicating whether the underlying stream or + should be closed when the writer is closed. + + + true to close the underlying stream or when + the 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. + + + + + Indicates how JSON text output is formatted. + + + + + Get or set how dates are written to JSON text. + + + + + Get or set how time zones are handling when writing JSON text. + + + + + Get or set how strings are escaped when writing JSON text. + + + + + Get or set how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Get or set how and values are formatting when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + The stream. + + + + Initializes a new instance of the class. + + The writer. + + + + Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes out 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 stream and the underlying stream. + + + + + 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. + + + + Gets or sets the used when writing values to BSON. + When set to no conversion will occur. + + The used when writing values to BSON. + + + + Represents a BSON Oid (object id). + + + + + Initializes a new instance of the class. + + The Oid value. + + + + Gets or sets the value of the Oid. + + The value of the Oid. + + + + Converts a binary value to and from a base 64 string value. + + + + + 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 the of the JSON produced by the JsonConverter. + + The of the JSON produced by the JsonConverter. + + + + 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. + + + + 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. + + + + + 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. + + + + + Create 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. + + + + + 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 an Entity Framework EntityKey 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 ExpandoObject 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 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 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. + + + + + 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 or sets a value indicating whether the written enum text should be camel case. + + true if the written enum text will be camel case; otherwise, false. + + + + Specifies how constructors are used when initializing objects during deserialization by the . + + + + + First attempt to use the public default constructor, then fall back to single paramatized constructor, then the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a paramatized constructor. + + + + + 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. + + + + + 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 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 . + + + + + Instructs the how to serialize the collection. + + + + + Instructs the how to serialize the object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Gets or sets the id. + + The id. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Gets the collection's items converter. + + The collection's items converter. + + + + 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. + + + + 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 a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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. + + + + + 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. + + + + + Instructs the to use the specified constructor when deserializing that object. + + + + + Instructs the to deserialize properties with no matching class member into the specified collection + and write values during serialization. + + + + + Initializes a new instance of the class. + + + + + 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. + + + + + Represents a trace writer that writes to the application's instances. + + + + + Represents a trace 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. + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of Info will exclude Verbose messages and include Info, + Warning and Error 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. + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of Info will exclude Verbose messages and include Info, + Warning and Error messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Get and set values for a using dynamic methods. + + + + + 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. + + + + 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. + + + + Contract details for a used by the . + + + + + 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 method called immediately after deserialization of the object. + + The method called immediately after deserialization of the object. + + + + Gets or sets the method called during deserialization of the object. + + The method called during deserialization of the object. + + + + Gets or sets the method called after serialization of the object graph. + + The method called after serialization of the object graph. + + + + Gets or sets the method called before serialization of the object. + + The method called before serialization of the object. + + + + Gets or sets the method called when an error is thrown during the serialization of the object. + + The method 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. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + 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. + + + + 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. + + + + + 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. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of Info will exclude Verbose messages and include Info, + Warning and Error messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + 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 LineNumber and LinePosition can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, HasLineInfo returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, HasLineInfo returns false). + + + + 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. + + + + + Represents a raw JSON string. + + + + + Represents a value in JSON (string, integer, date, etc). + + + + + Represents an abstract JSON token. + + + + + Represents a collection of objects. + + The type of token + + + + Gets the with the specified key. + + + + + + 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. + + + + 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 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 converted to the specified type. + + The type to convert the token to. + The token key. + The converted token value. + + + + 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 is formatted. + A collection of 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 . + + 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 . + + 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 . + + 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 . + + 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 . + + 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 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 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 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 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. + + + + Creates an for this token. + + An 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 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 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 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 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 . + + An positioned at the token to read into this . + + An 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. + + + + Creates a from a . + + An positioned at the token to read into this . + + An 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 the token that matches the object path. + + + The object path from the current to the + to be returned. This must be a string of property names or array indexes separated + by periods, such as Tables[0].DefaultView[0].Price in C# or + Tables(0).DefaultView(0).Price in Visual Basic. + + The that matches the object path or a null reference if no matching token is found. + + + + Selects the token that matches the object path. + + + The object path from the current to the + to be returned. This must be a string of property names or array indexes separated + by periods, such as Tables[0].DefaultView[0].Price in C# or + Tables(0).DefaultView(0).Price in Visual Basic. + + A flag to indicate whether an error should be thrown if no token is found. + The that matches the object path. + + + + 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 . + + + + 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. + + + + + 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. + + + + + Gets the with the specified key. + + The with the specified key. + + + + 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 . + + + + 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. + + + + 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. + + + + Writes this token to a . + + A into which this method will write. + A collection of 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. + + + The parameter is null. + + + + + 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 the same type as this instance. + + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Gets the node type for this . + + The type. + + + + Gets or sets the underlying token value. + + The underlying token value. + + + + 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. + + + + 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. + + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Gets the object's properties. + + The object's properties. + + + + Gets or sets the property name resolver. + + The property name resolver. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Gets or sets the ISerializable object constructor. + + The ISerializable object constructor. + + + + 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 . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + 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 data for the Error event. + + + + + Initializes a new instance of the class. + + The current object. + The error context. + + + + 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. + + + + Represents a view of a . + + + + + Initializes a new instance of the class. + + The name. + Type of the property. + + + + 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. + + + + + 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 + + + + Gets the reference for the sepecified 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. + + + + 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 ISerializable. + + + + + + + + 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. + + + + + Instructs the how to serialize the collection. + + + + + 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. + + + + 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. + + + + 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 is is not written to JSON. + This option will ignore all default values (e.g. null for objects and nullable typesl; 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 sets members to their default value when deserializing. + + + + + Instructs the to use the specified when serializing the member or class. + + + + + Initializes a new instance of the class. + + Type of the converter. + + + + Gets the type of the converter. + + The type of the converter. + + + + Instructs the how to serialize the object. + + + + + 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. + + + + Gets or sets the member serialization. + + The member 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. + + + + + Specifies the settings on a object. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + + 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. + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + + Null value handling. + + + + Gets or sets how null default are handled during serialization and deserialization. + + 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 preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + + The type name handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + + 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 used by the serializer when resolving references. + + The reference resolver. + + + + 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 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. + + + + Get or set how and values are formatting when writing JSON text. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Indicates how JSON text output is formatted. + + + + + Get or set how dates are written to JSON text. + + + + + Get or set how time zones are handling during serialization and deserialization. + + + + + Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Get or set how special floating point numbers, e.g. , + and , + are written as JSON. + + + + + Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Get or set how strings are escaped when writing JSON text. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + + + true if there will be a check for additional content after deserializing an object; otherwise, false. + + + + + Represents a reader that provides validation. + + + + + Initializes a new instance of the class that + validates the content returned from the given . + + The to read from while validating. + + + + Reads the next JSON token from the stream as a . + + A . + + + + Reads the next JSON token from the stream as a . + + + A or a null reference if the next JSON token is null. + + + + + Reads the next JSON token from the stream as a . + + A . + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . + + + + Reads the next JSON token from the stream. + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + 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 Common Language Runtime (CLR) type for the current JSON token. + + + + + + Gets or sets the schema. + + The schema. + + + + Gets the used to construct this . + + The specified in the constructor. + + + + 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. + + + + 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 must be 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 how object creation is handled by the . + + + + + Reuse existing objects, create new objects when needed. + + + + + Only reuse existing objects. + + + + + Always create new objects. + + + + + Converts a to and from the ISO 8601 date format (e.g. 2008-04-12T12:53Z). + + + + + 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. + + + + 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. + + + + 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 XML to and from JSON. + + + + + 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 attributeName 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. + + + + + Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produces multiple root elements. + + The name of the deserialize root element. + + + + Gets or sets a flag 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 attibute 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. + + + + Represents a reader that provides fast, non-cached, forward-only access to JSON text data. + + + + + Initializes a new instance of the class with the specified . + + The TextReader containing the XML data to read. + + + + Reads the next JSON token from the stream. + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the stream as a . + + + A or a null reference 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 stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Changes the state to closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if LineNumber and LinePosition can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, HasLineInfo returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, HasLineInfo returns false). + + + + + Instructs the to always serialize the member with the specified name. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified name. + + Name of the property. + + + + Gets or sets the converter used when serializing the property's collection items. + + The collection's items converter. + + + + 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 and deserialization of a member. + + The numeric order of serialization or deserialization. + + + + 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 the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets the 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. + + + + Instructs the not to serialize the public field or public read/write property value. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. + + + + + Creates an instance of the JsonWriter class using the specified . + + The TextWriter to write to. + + + + Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. + + + + + Closes this stream and the underlying stream. + + + + + 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 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 out a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes out the given white space. + + The string of white space characters. + + + + Gets or sets how many IndentChars to write for each level in the hierarchy when is set to Formatting.Indented. + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to Formatting.Indented. + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + The exception thrown when an error occurs while reading Json text. + + + + + 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 a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + The exception thrown when an error occurs while reading Json text. + + + + + 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 a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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. + + + + Represents a collection of . + + + + + Provides methods for converting between common language runtime types and JSON types. + + + + + + + + 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. + 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 is 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 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 is formatted. + A collection 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 is used. + + 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 is formatted. + The used to serialize the object. + If this is null, default serialization settings will be is 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 is formatted. + The used to serialize the object. + If this is null, default serialization settings will be is used. + + 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. + Specifing the type is optional. + + + A JSON string representation of the object. + + + + + Asynchronously serializes the specified object to a JSON string. + Serialization will happen on a new thread. + + The object to serialize. + + A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. + + + + + Asynchronously serializes the specified object to a JSON string using formatting. + Serialization will happen on a new thread. + + The object to serialize. + Indicates how the output is formatted. + + A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. + + + + + Asynchronously serializes the specified object to a JSON string using formatting and a collection of . + Serialization will happen on a new thread. + + The object to serialize. + Indicates how the output is formatted. + The used to serialize the object. + If this is null, default serialization settings will be is used. + + A task that represents the asynchronous serialize operation. The value of the TResult parameter contains 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 is 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 infered 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 infered 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 is 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 is 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 is used. + + The deserialized object from the JSON string. + + + + Asynchronously deserializes the JSON to the specified .NET type. + Deserialization will happen on a new thread. + + The type of the object to deserialize to. + The JSON to deserialize. + + A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. + + + + + Asynchronously deserializes the JSON to the specified .NET type using . + Deserialization will happen on a new thread. + + The type of the object to deserialize to. + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be is used. + + + A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. + + + + + Asynchronously deserializes the JSON to the specified .NET type. + Deserialization will happen on a new thread. + + The JSON to deserialize. + + A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. + + + + + Asynchronously deserializes the JSON to the specified .NET type using . + Deserialization will happen on a new thread. + + 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 is used. + + + A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains 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 is used. + + + + + Asynchronously 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 is used. + + + A task that represents the asynchronous populate operation. + + + + + Serializes the XML node to a JSON string. + + The node to serialize. + A JSON string of the XmlNode. + + + + Serializes the XML node to a JSON string using formatting. + + The node to serialize. + Indicates how the output is formatted. + A JSON string of the XmlNode. + + + + Serializes the XML node to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output is formatted. + Omits writing the root object. + A JSON string of the XmlNode. + + + + Deserializes the XmlNode from a JSON string. + + The JSON string. + The deserialized XmlNode + + + + Deserializes the XmlNode from a JSON string nested in a root elment specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized XmlNode + + + + Deserializes the XmlNode from a JSON string nested in a root elment specified by + and writes a .NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A flag 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 XmlNode + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the XNode. + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output is formatted. + A JSON string of the XNode. + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output is formatted. + Omits writing the root object. + A JSON string of the XNode. + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized XNode + + + + Deserializes the from a JSON string nested in a root elment specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized XNode + + + + Deserializes the from a JSON string nested in a root elment specified by + and writes a .NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A flag 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 XNode + + + + 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 + . + + + + + 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 a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Serializes and deserializes objects into and from the JSON format. + The enables you to control how objects are encoded into JSON. + + + + + Initializes a new instance of the class. + + + + + Creates a new instance. + The will not use default settings. + + + A new instance. + The will not use default settings. + + + + + Creates a new instance using the specified . + The will not use default settings. + + The settings to be applied to the . + + A new instance using the specified . + The will not use default settings. + + + + + Creates a new instance. + The will use default settings. + + + A new instance. + The will use default settings. + + + + + Creates a new instance using the specified . + The will use default settings. + + The settings to be applied to the . + + A new instance using the specified . + The will use default settings. + + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader 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 + to a Stream using the specified . + + The used to write the Json structure. + The to serialize. + + + + Serializes the specified and writes the Json structure + to a Stream 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. + Specifing the type is optional. + + + + + Serializes the specified and writes the Json structure + to a Stream 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. + Specifing the type is optional. + + + + + Serializes the specified and writes the Json structure + to a Stream using the specified . + + The used to write the Json structure. + The to serialize. + + + + 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 writing trace messages. + + The trace writer. + + + + Gets or sets how type name writing and reading is handled by the serializer. + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + + + + + Get or set how reference loops (e.g. a class referencing itself) is handled. + + + + + Get or set how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + + + + + Get or set how null values are handled during serialization and deserialization. + + + + + Get or set how null default are handled during serialization and deserialization. + + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + + The constructor 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. + + + + + Get or set how dates are written to JSON text. + + + + + Get or set how time zones are handling during serialization and deserialization. + + + + + Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Get or set how special floating point numbers, e.g. , + and , + are written as JSON text. + + + + + Get or set how strings are escaped when writing JSON text. + + + + + Get or set how and values are formatting when writing JSON text. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + + + true if there will be a check for additional JSON content after deserializing an object; otherwise, false. + + + + + 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 node 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 node 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 node 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 node 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 node 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 node 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 node 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 node 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 JSON constructor. + + + + + Represents a token that can contain other 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. + + + + 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 containing 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 an that can be used to add tokens to the . + + An that is ready to have content written to it. + + + + Replaces the children nodes of this token with the specified content. + + The content. + + + + Removes the child nodes from this token. + + + + + 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. + + + + 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 . + + + + + Gets the count of child JSON tokens. + + The count of child JSON tokens + + + + 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. + + + + 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 . + + + + 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. + + + + Gets the with the specified key. + + The with the specified key. + + + + 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 iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + 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. + + + + + Gets the with the specified key. + + + + + + Represents a JSON object. + + + + + + + + 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 an of this object's properties. + + An of this object's properties. + + + + Gets a the specified name. + + The property name. + A with the specified name or null. + + + + Gets an of this object's property values. + + An of this object's property values. + + + + 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 . + + + + Load a from a string that contains JSON. + + A that contains JSON. + 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 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. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries the get value. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that iterates 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 properties for this instance of a component. + + + A that represents the properties for this component instance. + + + + + Returns the properties for this instance of a component using the attribute array as a filter. + + An array of type that is used as a filter. + + A that represents the filtered properties for this component instance. + + + + + Returns a collection of custom attributes for this instance of a component. + + + An containing the attributes for this object. + + + + + Returns the class name of this instance of a component. + + + The class name of the object, or null if the class does not have a name. + + + + + Returns the name of this instance of a component. + + + The name of the object, or null if the object does not have a name. + + + + + Returns a type converter for this instance of a component. + + + A that is the converter for this object, or null if there is no for this object. + + + + + Returns the default event for this instance of a component. + + + An that represents the default event for this object, or null if this object does not have events. + + + + + Returns the default property for this instance of a component. + + + A that represents the default property for this object, or null if this object does not have properties. + + + + + Returns an editor of the specified type for this instance of a component. + + A that represents the editor for this object. + + An of the specified type that is the editor for this object, or null if the editor cannot be found. + + + + + Returns the events for this instance of a component using the specified attribute array as a filter. + + An array of type that is used as a filter. + + An that represents the filtered events for this component instance. + + + + + Returns the events for this instance of a component. + + + An that represents the events for this component instance. + + + + + Returns an object that contains the property described by the specified property descriptor. + + A that represents the property whose owner is to be found. + + An that represents the owner of the specified property. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Occurs when a property value is changing. + + + + + Gets the node type for this . + + The type. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the with the specified property name. + + + + + + Represents a JSON array. + + + + + + + + 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 . + + + + Load a from a string that contains JSON. + + A that contains JSON. + 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. + + + + 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 . + The is read-only. + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + The is read-only. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + The is read-only. + + + + Removes all items from the . + + The is read-only. + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies to. + + The array. + Index of the array. + + + + 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 . + + The is read-only. + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the node type for this . + + The type. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the at the specified index. + + + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. + + + + + Initializes a new instance of the class. + + The token to read from. + + + + Reads the next JSON token from the stream as a . + + + A or a null reference 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 stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream. + + + 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. + + + + + 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 streams and also flushes the underlying stream. + + + + + Closes this stream and the underlying stream. + + + + + 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 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 out 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. + + + + Gets the token being writen. + + The token being writen. + + + + Represents a JSON property. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + 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 an from a . + + A that will be read for the content of the . + 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. + + + + Gets the node type for this . + + The type. + + + + 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. + + + + + Contains the JSON schema extension methods. + + + + + Determines whether the is valid. + + The source to test. + The schema to test with. + + true if the specified is valid; otherwise, false. + + + + + Determines whether the is valid. + + 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 . + + The source to test. + The schema to test with. + + + + Validates the specified . + + The source to test. + The schema to test with. + The validation event handler. + + + + Returns detailed information about the schema exception. + + + + + 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 a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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. + + + + Resolves from an id. + + + + + Initializes a new instance of the class. + + + + + Gets a for the specified reference. + + The id. + A for the specified reference. + + + + Gets or sets the loaded schemas. + + The loaded schemas. + + + + Specifies undefined schema Id handling options for the . + + + + + 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 . + + + + + 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 . + + + + + Resolves member mappings for a type, camel casing property names. + + + + + Used by to resolves a for a given . + + + + + Used by to resolves a for a given . + + + + + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + If set to true the will use a cached shared with other resolvers of the same type. + Sharing the cache will significantly performance because expensive reflection will only happen once but could cause unexpected + behavior if different instances of the resolver are suppose to produce different results. When set to false it is highly + recommended to reuse instances with the . + + + + + 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. + Name of the property. + + + + Gets the resolved name of the property. + + Name of the property. + Name of the property. + + + + 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. + + + + + Initializes a new instance of the class. + + + + + Resolves the name of the property. + + Name of the property. + The property name camel cased. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + 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. + + + + Provides information surrounding an error. + + + + + Gets or sets 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. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + 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. + + + + 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 . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Gets or sets the property name resolver. + + The property name resolver. + + + + Gets the of the dictionary keys. + + The of the dictionary keys. + + + + Gets the of the dictionary values. + + The of the dictionary values. + + + + Maps a JSON property to a .NET member or constructor parameter. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + 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 and deserialization of a member. + + The numeric order of serialization or deserialization. + + + + 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 type of the property. + + The type of the property. + + + + Gets or sets the for the property. + If set this converter takes presidence over the contract converter for the property type. + + The converter. + + + + Gets the member converter. + + The member converter. + + + + Gets a value indicating whether this is ignored. + + true if ignored; otherwise, false. + + + + Gets a value indicating whether this is readable. + + true if readable; otherwise, false. + + + + Gets a value indicating whether this is writable. + + true if writable; otherwise, false. + + + + Gets 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 a value indicating whether this is required. + + A value indicating whether this is required. + + + + Gets a value indicating whether this property preserves object references. + + + true if this instance is reference; otherwise, false. + + + + + Gets the property null value handling. + + The null value handling. + + + + Gets the property default value handling. + + The default value handling. + + + + Gets the property reference loop handling. + + The reference loop handling. + + + + Gets the property object creation handling. + + The object creation handling. + + + + Gets or sets the type name handling. + + The type name handling. + + + + Gets or sets a predicate used to determine whether the property should be serialize. + + A predicate used to determine whether the property should be serialize. + + + + 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. + + + + 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 the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets the 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 propertyName 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. + + + + 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 reference loop handling options for the . + + + + + Throw a when a loop is encountered. + + + + + Ignore loop references and do not serialize. + + + + + Serialize loop references. + + + + + An in-memory representation of a JSON Schema. + + + + + 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 schema JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Parses the specified json. + + The json. + The resolver. + A populated from the string that contains JSON. + + + + 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 . + + + + + 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 divisble by. + + A number that the value should be divisble 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 disallow 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. + + + + Generates a from a specified . + + + + + 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. + + + + Gets or sets how undefined schemas are handled by the serializer. + + + + + Gets or sets the contract resolver. + + The contract resolver. + + + + The value types allowed by the . + + + + + No type specified. + + + + + String type. + + + + + Float type. + + + + + Integer type. + + + + + Boolean type. + + + + + Object type. + + + + + Array type. + + + + + Null type. + + + + + Any type. + + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + 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 the object's properties. + + The object's properties. + + + + Gets the constructor parameters required for any non-default constructor + + + + + Gets or sets the override constructor used to create the object. + This is set when a constructor is marked up using the + JsonConstructor attribute. + + The override constructor. + + + + Gets or sets the parametrized constructor used to create the object. + + The parametrized constructor. + + + + Gets or sets the extension data setter. + + + + + Gets or sets the extension data getter. + + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + 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. + + + + When applied to a method, specifies that the method is called when an error occurs serializing an object. + + + + + 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 + + + + + Represents a method that constructs an object. + + The object type to create. + + + + Specifies type name handling options for the . + + + + + 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. + + + + + Converts the value to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert the value to. + The converted type. + + + + Converts the value to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert the value to. + The converted value if the conversion was successful or the default value of T if it failed. + + true if initialValue was converted successfully; otherwise, false. + + + + + 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. + + + + + Gets a dictionary of the names and values of an Enum type. + + + + + + Gets a dictionary of the names and values of an Enum type. + + The enum type to get names and values for. + + + + + Specifies the type of Json token. + + + + + This is returned by the if a 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. + + + + + Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer. + + + + + 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 IList. + + The list to add to. + The collection of elements to add. + + + + Returns the index of the first occurrence in a sequence by using a specified IEqualityComparer. + + The type of the elements of source. + A sequence in which to locate a value. + The object to locate in the sequence + An equality comparer to compare values. + The zero-based index of the first occurrence of value within the entire sequence, if found; otherwise, –1. + + + + 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 member is an indexed property. + + The member. + + true if the member is an indexed property; otherwise, false. + + + + + 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. + + + + + 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. + + + + + Nulls an empty string. + + The string. + Null if the string was null, otherwise the string unchanged. + + + + 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 results in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + A array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + diff --git a/TinyFileManager.NET/bin/System.Spatial.dll b/TinyFileManager.NET/bin/System.Spatial.dll new file mode 100644 index 0000000..3924b40 Binary files /dev/null and b/TinyFileManager.NET/bin/System.Spatial.dll differ diff --git a/TinyFileManager.NET/bin/System.Spatial.xml b/TinyFileManager.NET/bin/System.Spatial.xml new file mode 100644 index 0000000..e7adea8 --- /dev/null +++ b/TinyFileManager.NET/bin/System.Spatial.xml @@ -0,0 +1,6906 @@ + + + + System.Spatial + + + + + Helper methods that provide a common API surface on all platforms. + + + + + Use this instead of Type.EmptyTypes. + + + + + Use this instead of Uri.UriSchemeHttp. + + + + + Use this instead of Uri.UriSchemeHttps. + + + + + Replacement for Type.Assembly. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsValueType. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsGenericParameter. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsAbstract. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsGenericType. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsGenericTypeDefinition. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsVisible. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsInterface. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsClass. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.IsEnum. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.BaseType. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Type.ContainsGenericParameters. + + Type on which to call this helper method. + See documentation for property being accessed in the body of the method. + + + + Replacement for Array.AsReadOnly(T[]). + + Type of items in the array. + Array to use to create the ReadOnlyCollection. + ReadOnlyCollection containing the specified array items. + + + + Converts a string to a DateTime. + + String to be converted. + See documentation for method being accessed in the body of the method. + + + + Converts a string to a DateTimeOffset. + + String to be converted. + See documentation for method being accessed in the body of the method. + + + + Adds the seconds padding as zeros to the date time string if seconds part is missing. + + String that needs seconds padding + DateTime string after adding seconds padding + + + + Converts the DateTime to a string, internal method. + + DateTime to convert to String. + Converted String. + + + + Converts a DateTime to a string. + + DateTime to be converted. + See documentation for property being accessed in the body of the method. + + + + Gets the specified type. + + Name of the type to get. + Throws if the type could not be found. + Type instance that represents the specified type name. + + + + Gets the TypeCode for the specified type. + + Type on which to call this helper method. + TypeCode representing the specified type. + + + + Gets the Unicode Category of the specified character. + + Character to get category of. + Category of the character. + + + + Replacement for usage of MemberInfo.MemberType property. + + MemberInfo on which to access this method. + True if the specified member is a property, otherwise false. + + + + Replacement for usage of Type.IsPrimitive property. + + Type on which to access this method. + True if the specified type is primitive, otherwise false. + + + + Replacement for usage of Type.IsSealed property. + + Type on which to access this method. + True if the specified type is sealed, otherwise false. + + + + Replacement for usage of MemberInfo.MemberType property. + + MemberInfo on which to access this method. + True if the specified member is a method, otherwise false. + + + + Compares two methodInfos and returns true if they represent the same method. + Need this for Windows Phone as the method Infos of the same method are not always instance equivalent. + + MemberInfo to compare. + MemberInfo to compare. + True if the specified member is a method, otherwise false. + + + + Gets public properties for the specified type. + + Type on which to call this helper method. + True if method should return only instance properties, false if it should return both instance and static properties. + Enumerable of public properties for the type. + + + + Gets public properties for the specified type. + + Type on which to call this helper method. + True if method should return only instance properties, false if it should return both instance and static properties. + True if method should return only properties that are declared on the type, false if it should return properties declared on the type as well as those inherited from any base types. + Enumerable of public properties for the type. + + + + Gets instance constructors for the specified type. + + Type on which to call this helper method. + True if method should return only public constructors, false if it should return only non-public constructors. + Enumerable of instance constructors for the specified type. + + + + Gets a instance constructor for the type that takes the specified argument types. + + Type on which to call this helper method. + True if method should search only public constructors, false if it should search only non-public constructors. + Array of argument types for the constructor. + ConstructorInfo for the constructor with the specified characteristics if found, otherwise null. + + + + Tries to the get method from the type, returns null if not found. + + The type. + The name. + The parameter types. + Returns True if found. + + + + Gets a method on the specified type. + + Type on which to call this helper method. + Name of the method on the type. + True if method should search only public methods, false if it should search only non-public methods. + True if method should search only static methods, false if it should search only instance methods. + MethodInfo for the method with the specified characteristics if found, otherwise null. + + + + Gets a method on the specified type. + + Type on which to call this helper method. + Name of the method on the type. + Argument types for the method. + True if method should search only public methods, false if it should search only non-public methods. + True if method should search only static methods, false if it should search only instance methods. + MethodInfo for the method with the specified characteristics if found, otherwise null. + + + + Gets all public static methods for a type. + + Type on which to call this helper method. + Enumerable of all public static methods for the specified type. + + + + Replacement for Type.GetNestedTypes(BindingFlags.NonPublic) + + Type on which to call this helper method. + All types nested in the current type + + + + Creates a Compiled Regex expression + + Pattern to match. + Options to use. + Regex expression to match supplied patter + Is marked as compiled option only in platforms otherwise RegexOption.None is used + + + + Formatter for Json Object + + + + Represents a formatter for Json object. + + + Creates the implementation of the formatter. + The created implementation. + + + Reads from the source. + The object that was read. + The source json object. + The spatial type to read. + + + Converts spatial value to a Json object. + The json object. + The spatial value. + + + + The implementation that created this instance. + + + + + Spatial builder + + + + + The parse pipeline + + + + + Constructor + + The SpatialImplementation that created this instance + + + + Read from the source + + The spatial type to read + The source json object + The read instance + + + + Convert spatial value to a Json Object + + The spatial value + The json object + + + + Initialize the pipeline + + + + + Convert Spatial objects into json writer + + + + + Base Writer for GeoJson + + + + + Base class to create a unified set of handlers for Geometry and Geography + + + + + Performs an implicit conversion from to . + + The instance to convert. + + The result of the conversion. + + + + + Draw a point in the specified coordinate + + Next position + The position to be passed down the pipeline + + + + Draw a point in the specified coordinate + + Next position + The position to be passed down the pipeline + + + + Begin drawing a figure + + Next position + The position to be passed down the pipeline + + + + Begin drawing a figure + + Next position + The position to be passed down the pipeline + + + + Begin drawing a spatial object + + The spatial type of the object + The type to be passed down the pipeline + + + + Begin drawing a spatial object + + The spatial type of the object + The type to be passed down the pipeline + + + + Ends the current figure + + + + + Ends the current spatial object + + + + + Ends the current spatial object + + + + + Setup the pipeline for reuse + + + + + Set the coordinate system + + The CoordinateSystem + the coordinate system to be passed down the pipeline + + + + Gets the draw geography. + + + + + Gets the draw geometry. + + + + + This class is responsible for taking the calls to DrawGeography and delegating them to the unified + handlers + + + + Represents the pipeline of geography. + + + Begins drawing a spatial object. + The spatial type of the object. + + + Begins drawing a figure. + The position of the figure. + + + Draws a point in the specified coordinate. + The position of the line. + + + Ends the current figure. + + + Ends the current spatial object. + + + Sets the coordinate system. + The coordinate system to set. + + + Resets the pipeline. + + + + the DrawBoth instance that should be delegated to + + + + + Initializes a new instance of the class. + + The both. + + + + Draw a point in the specified coordinate + + Next position + + + + Begin drawing a figure + + Next position + + + + Begin drawing a spatial object + + The spatial type of the object + + + + Ends the current figure + + + + + Ends the current spatial object + + + + + Setup the pipeline for reuse + + + + + Set the coordinate system + + The CoordinateSystem + + + + This class is responsible for taking the calls to DrawGeometry and delegating them to the unified + handlers + + + + Represents the pipeline of geometry. + + + Begins drawing a spatial object. + The spatial type of the object. + + + Begins drawing a figure. + The position of the figure. + + + Draws a point in the specified coordinate. + The position of the line. + + + Ends the current figure. + + + Ends the current spatial object. + + + Sets the coordinate system. + The coordinate system to set. + + + Resets the pipeline. + + + + the DrawBoth instance that should be delegated to + + + + + Initializes a new instance of the class. + + The both. + + + + Draw a point in the specified coordinate + + Next position + + + + Begin drawing a figure + + Next position + + + + Begin drawing a spatial object + + The spatial type of the object + + + + Ends the current figure + + + + + Ends the current spatial object + + + + + Setup the pipeline for reuse + + + + + Set the coordinate system + + The CoordinateSystem + + + + Stack to track the current type being written. + + + + + CoordinateSystem for the types being written. + + + + + Figure added in current shape + + + + + Creates a new instance of the GeoJsonWriter. + + + + + Draw a point in the specified coordinate + + Next position + + The position to be passed down the pipeline + + + + + Draw a point in the specified coordinate + + Next position + + The position to be passed down the pipeline + + + + + Begin drawing a spatial object + + The spatial type of the object + + The type to be passed down the pipeline + + + + + Begin drawing a spatial object + + The spatial type of the object + + The type to be passed down the pipeline + + + + + Begin drawing a figure + + Next position + The position to be passed down the pipeline + + + + Begin drawing a figure + + Next position + The position to be passed down the pipeline + + + + Ends the current figure + + + + + Ends the current spatial object + + + + + Ends the current spatial object + + + + + Set the coordinate system + + The CoordinateSystem + + the coordinate system to be passed down the pipeline + + + + + Setup the pipeline for reuse + + + + + Add a property name to the current json object + + The name to add + + + + Add a value to the current json scope + + The value to add + + + + Add a value to the current json scope + + The value to add + + + + Start a new json object scope + + + + + Start a new json array scope + + + + + End the current json object scope + + + + + End the current json array scope + + + + + Setup the pipeline for reuse + + + + + Gets the GeoJson type name to use when writing the specified type. + + SpatialType being written. + GeoJson type name corresponding to the specified . + + + + Gets the name of the GeoJson member to use when writing the body of the spatial object. + + SpatialType being written. + Name of the GeoJson member to use when writing the body of the spatial object. + + + + Whether or not the specified type wraps its data in an outer array. + + SpatialType being written. + True if the type uses an outer array, otherwise false. + + + + Sets the CoordinateSystem for Geography and Geometry shapes. + + CoordinateSystem value to set. + + + + Start writing a Geography or Geometry shape. + + SpatialType to use when writing the shape. + Default CoordinateSystem to use if SetCoordinateSystem is never called on this shape. + + + + Write the type header information for a shape. + + SpatialType being written. + + + + Start writing a figure in a Geography or Geometry shape. + + + + + Write a position in a Geography or Geometry figure. + + First (X/Longitude) Coordinate + Second (Y/Latitude) Coordinate + Z Coordinate + M Coordinate + + + + Ends a Geography or Geometry figure. + + + + + Ends a Geography or Geometry shape. + + + + + Writes the coordinate reference system footer for the GeoJson object. + + + + + True if the shape should write start and end object scope, otherwise false. + + + + + True if the shape is not a child of another shape. + + + + + True if the shape should write start and end object scope, otherwise false. + + + + + Stack of json objects + + + + + Buffered key of the current name-value pair + + + + + Stores the last object fully serialized + + + + + Start a new json object scope + + + + + Start a new json array scope + + + + + Add a property name to the current json object + + The name to add + + + + Add a value to the current json scope + + The value to add + + + + Add a value to the current json scope + + The value to add + + + + End the current json array scope + + + + + End the current json object scope + + + + + Add an json object to the current scope + + The json object + + + + Return the current property name, and clear the buffer + + The current property name + + When inserting to a dictionary, the name-value pair comes across multiple pipeline calls + Therefore we need to buffer the name part and wait for the value part. + You can get into an incorrect state (caught by asserts) if you add a property name without + using it immediately next. + + + + + Access the current container as a List + + The current container as list + + + + Access the current container as a Dictionary + + The current container as dictionary + + + + Get the top level json object + + + + + Test if the current container is an array + + + + + Adapter from the type washed API to Geography, where it assumes that coord1 is Latitude. + + + + + Internal pipeline Inteface that washes the distinction between Geography and Geometry + + + + + Set the coordinate system based on the given EPSG ID + + The coordinate system ID to set. Null indicates the default should be used + + + + Setup the pipeline for reuse + + + + + Begin drawing a spatial object + + The spatial type of the object + + + + Begin drawing a figure + + X or Latitude Coordinate + Y or Longitude Coordinate + Z Coordinate + M Coordinate + + + + Add a control point to the current figure + + First coordinate + Second coordinate + Third coordinate + Fourth coordinate + + + + Ends the current figure + + + + + Ends the current spatial object + + + + + Gets a value indicating whether this instance is geography. + + + true if this instance is geography; otherwise, false. + + + + + The pipeline to redirect the calls to + + + + + Constructor + + The pipeline to redirect the calls to + + + + Set the coordinate system based on the given ID + + The coordinate system ID to set. Null indicates the default should be used + + + + Setup the pipeline for reuse + + + + + Begin drawing a spatial object + + The spatial type of the object + + + + Begin drawing a figure + + 1st Coordinate + 2nd Coordinate + 3rd Coordinate + 4th Coordinate + + + + Draw a line to a point in the specified coordinate + + 1st Coordinate + 2nd Coordinate + 3rd Coordinate + 4th Coordinate + + + + Ends the current figure + + + + + Ends the current spatial object + + + + + Gets a value indicating whether this instance is geography. + + + true if this instance is geography; otherwise, false. + + + + + Adapter from the type washed API to Geography, where it assumes that coord1 is Longitude. + + + + + The pipeline to redirect the calls to + + + + + Constructor + + The pipeline to redirect the calls to + + + + Set the coordinate system based on the given ID + + The coordinate system ID to set. Null indicates the default should be used + + + + Setup the pipeline for reuse + + + + + Begin drawing a spatial object + + The spatial type of the object + + + + Begin drawing a figure + + 1st Coordinate + 2nd Coordinate + 3rd Coordinate + 4th Coordinate + + + + Draw a line to a point in the specified coordinate + + 1st Coordinate + 2nd Coordinate + 3rd Coordinate + 4th Coordinate + + + + Ends the current figure + + + + + Ends the current spatial object + + + + + Gets a value indicating whether this instance is geography. + + + true if this instance is geography; otherwise, false. + + + + + The spatial reader that can read from a pre parsed GeoJson payload + + + + + Reader to be used by spatial formats + + The type of source that the reader operates on. + + + + Creates a reader + + the instance of the pipeline that the reader will message while it is reading. + + + + Parses some serialized format that represents one or more Geography spatial values, passing the first one down the pipeline. + + Throws if the input is not valid. In that case, guarantees that it will not pass anything down the pipeline, or will clear the pipeline by passing down a Reset. + The input string + + + + Parses some serialized format that represents one or more Geometry spatial values, passing the first one down the pipeline. + + Throws if the input is not valid. In that case, guarantees that it will not pass anything down the pipeline, or will clear the pipeline by passing down a Reset. + The input string + + + + Sets the reader and underlying Destination back to a clean + starting state after an exception + + + + + Parses some serialized format that represents one or more Geometry spatial values, passing the first one down the pipeline. + + Throws if the input is not valid. In that case, guarantees that it will not pass anything down the pipeline, or will clear the pipeline by passing down a Reset. + The input string + + + + Parses some serialized format that represents one or more Geography spatial values, passing the first one down the pipeline. + + Throws if the input is not valid. In that case, guarantees that it will not pass anything down the pipeline, or will clear the pipeline by passing down a Reset. + The input string + + + + The pipeline that is messaged while the reader is reading. + + + + + Initializes a new instance of the class. + + The pipeline. + + + + Parses some serialized format that represents a geography value, passing the result down the pipeline. + + The jsonObject to read from. + + + + Parses some serialized format that represents a geometry value, passing the result down the pipeline. + + The jsonObject to read from. + + + + A common way to call Geography and Geometry pipeline apis from the structured Json + + + + + Pipeline to use for the output of the translation of the GeoJSON object into pipeline method calls. + + + + + Initializes a new instance of the class. + + Spatial pipeline that will receive the pipeline method calls. + + + + Translates a dictionary of parsed GeoJSON members and values into method calls on the spatial pipeline. + + Dictionary containing GeoJSON members and values. + Coordinate System must be set for this pipeline + + + + Iterates over an object array, verifies that each element in the array is another array, and calls a delgate on the contained array. + + Array to iterate over. + Delegate to invoke for each element once it has been validated to be an array. + + + + Convert an object to a nullable double value. + + Object to convert. + If the specified element was null, returns null, otherwise returns the converted double value. + + + + Convert an object to a non-null double value. + + Object to convert. + Converted double value. + + + + Values as json array. + + The value. + The value cast as a json array. + + + + Values as json object. + + The value. + The value cast as IDictionary<string, object> + + + + Values as string. + + Name of the property. + The value. + The value cast as a string. + + + + Get the type member value from the specified GeoJSON member dictionary. + + Dictionary containing the GeoJSON members and their values. + SpatialType for the GeoJSON object. + + + + Tries to get a coordinate system id from the geo json object's 'crs' property + + The geo json object. + The coordinate system id. + True if the object had a coordinate system + + + + Gets the coordinate system ID from a representation of the CRS object + + The parsed representation of the CRS object. + The coordinate system ID + + + + Get the designated member value from the specified GeoJSON member dictionary. + + Dictionary containing the GeoJSON members and their values. + The member's tag name + Member value for the GeoJSON object. + + + + This method assumes a non forward only enumerable + + The enumerable to check + true if there is at least one element + + + + Reads GeoJson 'type' value and maps it a valid SpatialType. + + The GeoJson standard type name + SpatialType corresponding to the GeoJson type name. + + + + Sends a shape to the spatial pipeline. + + SpatialType of the shape. + Content member for the shape + + + + Translates the coordinates member value into method calls on the spatial pipeline. + + SpatialType of the GeoJSON object. + Coordinates value of the GeoJSON object, or inner geometries for collection + + + + Translates the coordinates member value of a Point object into method calls on the spatial pipeline. + + Parsed coordinates array. + + + + Translates the coordinates member value of a LineString object into method calls on the spatial pipeline. + + Parsed coordinates array. + + + + Translates the coordinates member value of a Polygon object into method calls on the spatial pipeline. + + Parsed coordinates array. + + + + Translates the coordinates member value of a MultiPoint, MultiLineString, or MultiPolygon object into method calls on the spatial pipeline. + + Type of the shape contained in the Multi shape. + Parsed coordinates array. + + + + Translates an array of positions into method calls on the spatial pipeline. + + List containing the positions. + + + + Translates an individual position into a method call on the spatial pipeline. + + List containing elements of the position. + True if the position is the first one being written to a figure, otherwise false. + + + + A key consisting of multiple fields + + The type of the first field. + The type of the second field. + + + + The first field + + + + + The second field + + + + + Initializes a new instance of the class. + + The first. + The second. + + + + Implements the operator ==. + + The left. + The right. + + The result of the operator. + + + + + Implements the operator !=. + + The left. + The right. + + The result of the operator. + + + + + Indicates whether the current object is equal to another object of the same type. + + An object to compare with this object. + + true if the current object is equal to the parameter; 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. + + The parameter is null. + + + + 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 the extensions to formatters. + + + Writes the specified formatter. + A string value of the formatted object. + The formatter. + The spatial object. + + + Writes the specified formatter. + A string value of the formatted object. + The formatter. + The spatial object. + + + Represents the full globe of geography. + + + Represents the geography surface. + + + Represents a base class of geography shapes. + + + Represents the spatial interface. + + + Gets the coordinate system. + The coordinate system. + + + Gets a value that indicates whether the spatial type is empty. + true if the spatial type is empty; otherwise, false. + + + + The implementation that created this instance + + + + + The CoordinateSystem of this geography + + + + Initializes a new instance of the class. + The coordinate system of this geography. + The implementation that created this instance. + + + Sends the current spatial object to the given pipeline. + The spatial pipeline. + + + + Computes the hashcode for the given CoordinateSystem and the fields + + Spatial type instances or doubles for base types (Geography/Geometry types). + CoordinateSystem instance. + Spatial type instances or doubles for base types (Geography/Geometry types). + hashcode for the CoordinateSystem instance and Spatial type instances. + + + + Check for basic equality due to emptyness, nullness, referential equality and difference in coordinate system + + The other geography + Boolean value indicating equality, or null to indicate inconclusion + + + Gets the coordinate system of the geography. + The coordinate system of the geography. + + + Gets a value that indicates whether the geography is empty. + true if the geography is empty; otherwise, false. + + + + Gets the implementation that created this instance. + + + + Initializes a new instance of the class. + The coordinate system of this instance. + The implementation that created this instance. + + + Initializes a new instance of the class. + The coordinate system of this instance. + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and the specified object have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The object to compare to this instance. + + + Gets the hash code. + The hash code. + + + Represents the curve of geography. + + + Initializes a new instance of the class. + The coordinate system of this geography curve. + The implementation that created this instance. + + + Represents a geography line string consist of an array of geo points. + + + Initializes a new instance of the class. + The coordinate system of this instance. + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and the specified object have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The object to compare to this instance. + + + Gets the hash code. + The hash code. + + + Gets the point list. + The point list. + + + Represents the multi-curve of geography. + + + Represents the collection of geographies. + + + Initializes a new instance of the class. + The coordinate system of this geography collection. + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and the specified object have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The object to compare to this instance. + + + Gets the hash code. + The hash code. + + + Gets the collection of geographies. + The collection of geographies. + + + Initializes a new instance of the class. + The coordinate system of this instance. + The implementation that created this instance. + + + Represents the multi-line string of geography. + + + Initializes a new instance of the class. + The coordinate system of this instance. + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and the specified object have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The object to compare to this instance. + + + Gets the hash code. + The hash code. + + + Gets the line strings. + A collection of line strings. + + + Represents the multi-point of geography. + + + Initializes a new instance of the class. + The coordinate system of this instance. + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and the specified object have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The object to compare to this instance. + + + Gets the hash code. + The hash code. + + + Gets a collection of points. + A collection of points. + + + Represents the multi-polygon of geography. + + + Represents the multi-surface of geography. + + + Initializes a new instance of the class. + The coordinate system of this instance. + The implementation that created this instance. + + + Initializes a new instance of the class. + The coordinate system of this instance. + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and the specified object have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The object to compare to this instance. + + + Gets the hash code. + The hash code. + + + Gets a collection of polygons. + A collection of polygons. + + + Represents a geography point. + + + Initializes a new instance of the class. + The coordinate system of this instance. + The implementation that created this instance. + + + Creates a geography point using the specified latitude and longitude. + The geography point that was created. + The latitude. + The longitude. + + + Creates a geography point using the specified latitude, longitude and dimension. + The geography point that was created. + The latitude. + The longitude. + The z dimension. + + + Creates a geography point using the specified latitude, longitude and dimensions. + The geography point that was created. + The latitude. + The longitude. + The z dimension. + The m dimension. + + + Creates a geography point using the specified coordinate system, latitude, longitude and dimensions. + The geography point that was created. + The coordinate system to use. + The latitude. + The longitude. + The z dimension. + The m dimension. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and the specified object have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The object to compare to this instance. + + + Gets the hash code. + The hash code. + + + Gets the latitude. + The latitude. + + + Gets the longitude. + The longitude. + + + Gets the nullable Z. + The nullable Z. + Z is the altitude portion of position. + + + Gets the nullable M. + The nullable M. + M is the arbitrary measure associated with a position. + + + Represents the geography polygon. + + + Initializes a new instance of the class. + The coordinate system of this instance. + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and the specified object have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The object to compare to this instance. + + + Gets the hash code. + The hash code. + + + Gets a collection of rings. + A collection of rings. + + + Represents the geometry collection. + + + Represents the base class of geography shapes. + + + + The implementation that created this instance. + + + + + The CoordinateSystem of this geometry + + + + Initializes a new instance of the class. + The coordinate system of this instance. + The implementation that created this instance. + + + Sends the current spatial object to the given pipeline. + The spatial pipeline. + + + + Check for basic equality due to emptyness, nullness, referential equality and difference in coordinate system + + The other geography + Boolean value indicating equality, or null to indicate inconclusion + + + Gets the SRID of this instance of geometry. + The SRID of this instance of geometry. + + + Gets a value that indicates whether geometry is empty. + true if the geometry is empty; otherwise, false. + + + + Gets the implementation that created this instance. + + + + Initializes a new instance of the class. + The coordinate system of this instance. + The implementation that created this instance. + + + Determines whether this instance and another specified geometry instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geometry to compare to this instance. + + + Determines whether this instance and the specified object have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The object to compare to this instance. + + + Gets the hash code. + The hash code. + + + Gets the geometry instances in this collection. + A collection of geometries. + + + Represents the geometry curve. + + + Initializes a new instance of the class. + The coordinate system of this instance. + The implementation that created this instance. + + + Represents the geometry line string. + + + Initializes a new instance of the class. + The coordinate system of this instance. + The implementation that created this instance. + + + Determines whether this instance and another specified geometry instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geometry to compare to this instance. + + + Determines whether this instance and the specified object have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The object to compare to this instance. + + + Gets the hash code. + The hash code. + + + Gets the point list. + The point list. + + + Represents the geometry multi-curve. + + + Initializes a new instance of the class. + The coordinate system of this instance. + The implementation that created this instance. + + + Represents the geometry multi-line string. + + + Initializes a new instance of the class. + The coordinate system of this instance. + The implementation that created this instance. + + + Determines whether this instance and another specified geometry instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geometry to compare to this instance. + + + Determines whether this instance and the specified object have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The object to compare to this instance. + + + Gets the hash code. + The hash code. + + + Gets a collection of line strings. + A collection of line strings. + + + Represents the geometry multi-point. + + + Initializes a new instance of the class. + The coordinate system of this instance. + The implementation that created this instance. + + + Determines whether this instance and another specified geometry instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geometry to compare to this instance. + + + Determines whether this instance and the specified object have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The object to compare to this instance. + + + Gets the hash code. + The hash code. + + + Gets a collection of points. + A collection of points. + + + Represents the geometry multi-polygon. + + + Represents the geometry multi-surface. + + + + Constructor + + The CoordinateSystem + The implementation that created this instance. + + + Initializes a new instance of the class. + The coordinate system of this instance. + The implementation that created this instance. + + + Determines whether this instance and another specified geometry instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geometry to compare to this instance. + + + Determines whether this instance and the specified object have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The object to compare to this instance. + + + Gets the hash code. + The hash code. + + + Gets a collection of polygons. + A collection of polygons. + + + Represents the Geometry Point. + + + Initializes a new instance of the class. Empty Point constructor. + The CoordinateSystem. + The implementation that created this instance. + + + Creates the specified latitude. + The GeographyPoint that was created. + The x dimension. + The y dimension. + + + Creates the specified latitude. + The GeographyPoint that was created. + The x dimension. + The y dimension. + The z dimension. + + + Creates the specified latitude. + The GeographyPoint that was created. + The x dimension. + The y dimension. + The z dimension. + The m dimension. + + + Creates the specified latitude. + The GeographyPoint that was created. + The coordinate system to use. + The x dimension. + The y dimension. + The z dimension. + The m dimension. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Gets the Hashcode. + The hashcode. + + + Gets the Latitude. + The Latitude. + + + Gets the Longitude. + The Longitude. + + + Gets the Nullable Z. + The Nullable Z. + Z is the altitude portion of position. + + + Gets the Nullable M. + The Nullable M. + M is the arbitrary measure associated with a position. + + + Represents the Geometry polygon. + + + Represents a geometry surface. + + + + Constructor + + The CoordinateSystem + The implementation that created this instance. + + + Initializes a new instance of the class. + The CoordinateSystem. + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Indicates the Get Hashcode. + The hashcode. + + + Gets the set of rings. + + + Provides access to the geography objects that this object constructs. + + + Fires when the provider constructs a geography object. + + + Gets the geography object that was constructed most recently. + The geography object that was constructed. + + + Provides access to the geometry objects that this object constructs. + + + Fires when the provider constructs a geometry object. + + + Gets the geometry object that was constructed most recently. + The geometry object that was constructed. + + + Provides access to the constructed geography or geometry. + + + The exception that is thrown on an unsuccessful parsing of the serialized format. + + + Creates a new instance of the class. + + + Creates a new instance of the class from a message and previous exception. + The message about the exception. + The exception that preceeded this one. + + + Creates a new instance of the class from a message. + The message about the exception. + + + Creates a new instance of the class from a serialized data. + The instance that holds the serialized object data about the exception being thrown. + The instance that contains contextual information about the source or destination. + + + Creates a geometry or geography instances from spatial data pipelines. + + + + One link of a geospatial pipeline + + + + + the geography side of the pipeline + + + + + the geometry side of the pipeline + + + + + A reference to the begining link of the chain + useful for getting the startingLink when creating the chain fluently + e.g. new ForwardingSegment(new Node()).ChainTo(new Node()).ChainTo(new Node).StartingLink + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + The geography chain. + The geometry chain. + + + + Performs an implicit conversion from to . + + The spatial chain. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The spatial chain. + + The result of the conversion. + + + + Adds the next pipeline. + The last pipesegment in the chain, usually the one just created. + The next pipeline. + + + Gets the geography side of the pipeline. + + + Gets the geometry side of the pipeline. + + + Gets or sets the starting link. + The starting link. + + + + The builder to be delegated to when this class is accessed from the IGeographyPipeline or IGeographyProvider interfaces. + + + + + The builder to be delegated to when this class is accessed from the IGeometryPipeline or IGeometryProvider interfaces. + + + + Initializes a new instance of the class. + The geography input. + The geometry input. + The geography output. + The geometry output. + + + Creates an implementation of the builder. + The created SpatialBuilder implementation. + + + Fires when the provider constructs geography object. + + + Fires when the provider constructs geometry object. + + + Gets the geography object that was constructed most recently. + The geography object that was constructed. + + + Gets the geometry object that was constructed most recently. + The geometry object that was constructed. + + + Represents the base class for all Spatial Formats. + The type of reader to be read from. + The type of reader to be read from. + + + + The implementation that created this instance. + + + + Initializes a new instance of the <see cref="T:System.Spatial.SpatialFormatter`2" /> class. + The implementation that created this instance. + + + Parses the input, and produces the object. + The input. + The input to be parsed. + The type of object to produce. + + + Parses the input, and produces the object. + The input to be parsed. + The pipeline to call during reading. + The type of object to produce. + + + Creates a valid format from the spatial object. + The object that the format is being created for. + The stream to write the formatted object to. + + + Creates the writerStream. + The writerStream that was created. + The stream that should be written to. + + + Reads the Geography from the readerStream and call the appropriate pipeline methods. + The stream to read from. + The pipeline to call based on what is read. + + + Reads the Geometry from the readerStream and call the appropriate pipeline methods. + The stream to read from. + The pipeline to call based on what is read. + + + Creates the builder that will be called by the parser to build the new type. + The builder that was created. + + + Defines a list of allowed OpenGisTypes types. + + + + Unknown + + + + + Point + + + + + Line String + + + + + Polygon + + + + + Multi-Point + + + + + Multi-Line-String + + + + + Multi-Polygon + + + + + Collection + + + + + Full Globe + + + + Provides a place to add extension methods that work with ISpatial. + + + Allows the delegation of the call to the proper type (geography or Geometry). + The instance that will have SendTo called. + The pipeline that the instance will be sent to. + + + + Coordinate System Reference + + + + + Default Geometry Reference + + + + + Default Geography Reference (SRID 4326, WGS84) + + + + + List of registered references + + + + + A lock object for the References static dict + + + + + The shape of the space that this coordinate system measures. + + + + Initializes a static instance of the class. + + + Initializes a new instance of the class. + The coordinate system ID, according to the EPSG + The Name of the system + The topology of this coordinate system + + + Gets or creates a Geography coordinate system with the ID, or the default if null is given. + The coordinate system. + The coordinate system id, according to the EPSG. Null indicates the default should be returned. + + + Gets or creates a Geometry coordinate system with the ID, or the default if null is given. + The coordinate system. + The coordinate system id, according to the EPSG. Null indicates the default should be returned. + + + Displays the coordinate system for debugging. + The coordinate system, for debugging. + + + Displays a string that can be used with extended WKT. + String representation in the form of SRID=#; + + + Indicates the Equals overload. + True if equal. + The other CoordinateSystem. + + + Indicates the Equals overload. + True if equal. + The other CoordinateSystem. + + + 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. + + + + For tests only. Identifies whether the coordinate system is of the designated topology. + + The expected topology. + True if this coordinate system is of the expected topology. + + + + Get or create a CoordinateSystem with ID + + The SRID + The topology. + + A CoordinateSystem object + + + + + Remember this coordinate system in the references dictionary. + + The coords. + + + + Gets the key for a coordinate system + + ID + topology + The key to use with the references dict. + + + Gets the coordinate system ID according to the EPSG, or NULL if this is not an EPSG coordinate system. + The coordinate system ID according to the EPSG. + + + Gets the coordinate system Id, no matter what scheme is used. + The coordinate system Id. + + + Gets the Name of the Reference. + The Name of the Reference. + + + + The shapes of the spaces measured by coordinate systems. + + + + + Ellipsoidal coordinates + + + + + Planar coordinates + + + + + This class is responsible for executing an action the first time dispose is called on it. + + + + The action to be executed on dispose + + + + Constructs an instance of the ActonOnDispose object + + the action to be execute on dispose + + + + The dipose method of the IDisposable insterface + + + + + The object to move spatial types to and from the GML format + + + + Initializes a new instance of the class. + The implementation that created this instance. + + + Creates the implementation of the formatter. + The created GmlFormatter implementation. + + + + The object to move spatial types to and from the WellKnownTextSql format + + + + Initializes a new instance of the class. + The implementation that created this instance. + + + Creates the implementation of the formatter. + Returns the created WellKnownTextSqlFormatter implementation. + + + Creates the implementation of the formatter and checks whether the specified formatter has Z. + The created WellKnownTextSqlFormatter. + Restricts the formatter to allow only two dimensions. + + + + Represents one position in the Geographyal coordinate system + + + + lattitude portion of position + + + longitude portion of position + + + arbitrary measure associated with a position + + + altitude portion of position + + + Creates a new instance of the class from components. + The latitude portion of a position. + The longitude portion of a position. + The altitude portion of a position. + The arbitrary measure associated with a position. + + + Creates a new instance of the class from components. + The latitude portion of a position. + The longitude portion of a position. + + + Performs equality comparison. + true if each pair of coordinates is equal; otherwise, false. + The first position. + The second position. + + + Performs inequality comparison. + true if left is not equal to right; otherwise, false. + The first position. + The other position. + + + Performs equality comparison on an object. + true if each pair of coordinates is equal; otherwise, false. + The object for comparison. + + + Performs equality comparison on a spatial geographic position. + true if each pair of coordinates is equal; otherwise, false. + The other position. + + + Computes a hash code. + A hash code. + + + Formats this instance to a readable string. + The string representation of this instance. + + + Gets the latitude portion of a position. + The latitude portion of a position. + + + Gets the longitude portion of a position. + The longitude portion of a position. + + + Gets the arbitrary measure associated with a position. + The arbitrary measure associated with a position. + + + Gets the altitude portion of a position. + The altitude portion of a position. + + + + Represents one position in the Geometry coordinate system + + + + arbitrary measure associated with a position + + + x portion of position + + + y portion of position + + + altitude portion of position + + + Creates a new instance of the from components. + The X portion of position. + The Y portion of position. + The altitude portion of position. + The arbitrary measure associated with a position. + + + Creates a new instance of the from components. + The X portion of position. + The Y portion of position. + + + Performs the equality comparison. + true if each pair of coordinates is equal; otherwise, false. + The first position. + The second position. + + + Performs the inequality comparison. + true if left is not equal to right; otherwise, false. + The first position. + The other position. + + + Performs the equality comparison on an object. + true if each pair of coordinates is equal; otherwise, false. + The object for comparison. + + + Performs the equality comparison on a spatial geometry position. + true if each pair of coordinates is equal; otherwise, false. + The other position. + + + Computes a hash code. + A hash code. + + + Formats this instance to a readable string. + The string representation of this instance. + + + Gets the arbitrary measure associated with a position. + The arbitrary measure associated with a position. + + + Gets the X portion of position. + The X portion of position. + + + Gets the Y portion of position. + The Y portion of position. + + + Gets the altitude portion of position. + The altitude portion of position. + + + + Base class for Spatial Type Validator implementations + + + + Creates the currently registered SpatialValidator implementation. + The created SpatialValidator. + + + + Extension methods for the Geography operations + + + + Determines the distance of the geography. + The operation result. + The first operand. + The second operand. + + + + Finds the ops instance registered for the operands. + + The operands. + The ops value, or null if any operand is null + + + + Extension methods for the Geography operations + + + + Determines the distance of the geometry. + The operation result. + The first operand. + The second operand. + + + + Finds the ops instance registered for the operands. + + The operands. + The ops value, or null if any operand is null + + + + Queue where things are seen in highest priority (highest compare) order + + The type of the values stored in priority order + + + + The list of queued items. + This is non-generic to avoid issues with the NetCF's reflection stack. + + + + + Initializes a new instance of the PriorityQueue class + DEVNOTE: this is only here for the FxCop suppression. + + + + + Returns the top queue value without removing it. + + The top value of the queue + + + + Adds a new value to the queue by priority. + + The priority of the new item to add. + The new item being added. + + + + Returns a value indicating whether there is already an item with the given priority in the queue + + The priority to check + Whether or not an item with the given priority is in the queue + + + + Removes the item with the priority specified from the queue + + The priority of the item to be removed from the queue + The value of the removed item. + + + + Gets the number of items in the queue + + + + + Class responsible for knowing how to create the Geography and Geometry builders for + a particular implemenation of Spatial types + + + + Default Spatial Implementation. + + + Creates a SpatialBuilder for this implementation. + The SpatialBuilder created. + + + Creates a Formatter for Json Object. + The JsonObjectFormatter created. + + + Creates a GmlFormatter for this implementation. + The GmlFormatter created. + + + Creates a WellKnownTextSqlFormatter for this implementation. + The WellKnownTextSqlFormatter created. + + + Creates a WellKnownTextSqlFormatter for this implementation. + The WellKnownTextSqlFormatter created. + Controls the writing and reading of the Z and M dimension. + + + Creates a spatial Validator. + The SpatialValidator created. + + + + This method throws if the operations instance is null. It returns a non-null operations implementation. + + a SpatialOperations implementation. + + + Returns an instance of SpatialImplementation that is currently being used. + + + Gets or sets the Spatial operations implementation. + + + + Class responsible for knowing how to perform operations for a particular implemenation of Spatial types + + + + Indicates the Geometry Distance. + The operation result. + The Operand 1. + The Operand 2. + + + Indicates a Geography Distance. + The operation result. + The Operand 1. + The Operand 2. + + + + This class holds extension methods for objects that have new capabilities + in newer versions of .net, and this lets us make the calls look the same and reduces the #if noise + + + + + StringBuilder didn't have a clear method in Orcas, so we added and extension method to give it one. + + The StringBuilder instance to clear. + + + + The object to move spatial types to and from the WellKnownTextSql format + + + + + restricts the writer and reader to allow only two dimensions. + + + + + Initializes a new instance of the class. + + The implementation that created this instance. + + + + Initializes a new instance of the class. + + The implementation that created this instance. + restricts the reader to allow only two dimensions. + + + + Create the writer + + The object that should be the target of the ISpatialPipeline writer. + A writer that implements ISpatialPipeline. + + + + Reads the geography. + + The reader stream. + The pipeline. + + + + Reads the geometry. + + The reader stream. + The pipeline. + + + + Gml Writer + + + + + The underlying writer + + + + + Stack of spatial types currently been built + + + + + If an SRID has been written already. + + + + + The Coordinate System to write + + + + + Figure has been written to the current spatial type + + + + + Whether there are shapes written in the current container + + + + + Constructor + + The Xml Writer to output to + + + + Begin drawing a spatial object + + The spatial type of the object + The type to be passed down the pipeline + + + + Draw a point in the specified coordinate + + Next position + The position to be passed down the pipeline + + + + Ends the current spatial object + + + + + Begin drawing a spatial object + + The spatial type of the object + The type to be passed down the pipeline + + + + Draw a point in the specified coordinate + + Next position + The position to be passed down the pipeline + + + + Ends the current spatial object + + + + + Set the coordinate system + + The CoordinateSystem + The coordinateSystem to be passed down the pipeline + + + + Begin drawing a figure + + Next position + The position to be passed down the pipeline + + + + Begin drawing a figure + + Next position + The position to be passed down the pipeline + + + + Ends the current figure + + + + + Setup the pipeline for reuse + + + + + Begin a figure + + The first coordinate + The second coordinate + The optional third coordinate + The optional fourth coordinate + + + + Begin drawing a spatial object + + The spatial type of the object + + + + Write the element with namespaces + + The element name + + + + Write coordinate system + + + + + Write a Point + + The first coordinate + The second coordinate + The optional third coordinate + The optional fourth coordinate + + + + End Geography/Geometry + + + + + The object to move spatial types to and from the GML format + + + + + Initializes a new instance of the class. + + The implementation that created this instance. + + + + Create the writer + + The object that should be the target of the ISpatialPipeline writer. + A writer that implements ISpatialPipeline. + + + + Reads the geography. + + The reader stream. + The pipeline. + + + + Reads the geometry. + + The reader stream. + The pipeline. + + + + WellKnownText Lexer + + + + + Lexer base + + + + + Input text + + + + + Current lexer output + + + + + Peek lexer output, if this is not null then we have advanced already + + + + + Constructor + + The input text + + + + Peek one token ahead of the current position + + The peeked token + True if there is one more token after the current position, otherwise false + + + + Move to the next token + + True if lexer has moved, otherwise false + + + + Examine the current character and determine its token type + + The char that will be read next + The currently active token type + The matched token type + Whether the current character is a delimiter, thereby terminate the current token immediately + + + + Current token + + + + + Constructor + + Input text + + + + Examine the current character and determine its token type + + The next char that will be read. + The currently active token type + The matched token type + Whether the current character is a delimiter, thereby terminate the current token immediately + + + + WellKnownText Lexer Token Type + + + + + A-Z only support upper case text. i.e., POINT() instead of Point() or point() + + + + + character '=' + + + + + characters '0' to '9' + + + + + character ';' + + + + + character '(' + + + + + character ')' + + + + + character '.' + + + + + character ',' + + + + + character ' ', '\t' + + + + + Class responsible for knowing how to create the Geography and Geometry builders for + the data services implemenation of Spatial types + + + + + Creates a SpatialBuilder for this implemenation + + + The SpatialBuilder created. + + + + + Creates a GmlFormatter for this implementation + + The GmlFormatter created. + + + + Creates a GeoJsonObjectFormatter for this implementation + + The GeoJsonObjectFormatter created. + + + + Creates a WellKnownTextSqlFormatter for this implementation + + The WellKnownTextSqlFormatter created. + + + + Creates a WellKnownTextSqlFormatter for this implementation + + Controls the writing and reading of the Z and M dimension + + The WellKnownTextSqlFormatter created. + + + + + Creates a SpatialValidator for this implementation + + The SpatialValidator created. + + + + Property used to register Spatial operations implementation. + + + + + Builder for Geography types + + + + + The tree builder + + + + + Constructor + + The implementation that created this instance. + + + + Draw a point in the specified coordinate + + Next position + + + + Begin drawing a figure + + Next position + + + + Begin drawing a spatial object + + The spatial type of the object + + + + Ends the current figure + + + + + Ends the current spatial object + + + + + Setup the pipeline for reuse + + + + + Set the coordinate system + + The CoordinateSystem + + + + Fires when the provider constructs a geography object. + + + + + Constructed Geography + + + + + Geography Tree Builder + + + + + Tree based builder for spatial types + + Geography or Geometry + + + + The figure this builder is currently building + + + + + Current builder tree root + + + + + lastConstructed + + + + + Draw a point in the specified coordinate + + X or Latitude Coordinate + Y or Longitude Coordinate + Z Coordinate + M Coordinate + + + + Begin drawing a figure + + X or Latitude Coordinate + Y or Longitude Coordinate + Z Coordinate + M Coordinate + + + + Begin a new spatial type + + The spatial type + + + + Ends the figure set on the current node + + + + + Ends the current spatial object + + + + + Setup the pipeline for reuse + + + + + Create a new instance of Point + + Whether the point is empty + X + Y + Z + M + A new instance of point + + + + Create a new instance of T + + The spatial type to create + The arguments + A new instance of T + + + + Notifies if we just finished building something. + + + + + Traverses up the tree. + + + + + Fires when the builder creates a top-level spatial object. + + + + + Get the constructed spatial instance + + The constructed spatial instance + + + + Gets a value indicating whether this instance is geography. + + + true if this instance is geography; otherwise, false. + + + + + A spatial instance node in the builder tree + + + + + Constructor + + + + + Create a child node + + The node type + The child node + + + + Children nodes + + + + + Instance + + + + + Parent node + + + + + Spatial Type + + + + + The implementation that created this instance. + + + + + CoordinateSystem for the building geography + + + + + Initializes a new instance of the class. + + The implementation that created this instance. + + + + Set the coordinate system based on the given ID + + The coordinate system ID to set. Null indicates the default should be used + + + + Create a new instance of Point + + Whether the point is empty + X + Y + Z + M + A new instance of point + + + + Create a new instance of T + + The spatial type to create + The arguments + A new instance of T + + + + Builder for Geometry types + + + + + The tree builder + + + + + Constructor + + The implementation that created this instance. + + + + Draw a point in the specified coordinate + + Next position + + + + Begin drawing a figure + + Next position + + + + Begin drawing a spatial object + + The spatial type of the object + + + + Ends the current figure + + + + + Ends the current spatial object + + + + + Setup the pipeline for reuse + + + + + Set the coordinate system + + The CoordinateSystem + + + + Fires when the provider constructs a geometry object. + + + + + Constructed Geography + + + + + Geography Tree Builder + + + + + The implementation that created this instance. + + + + + CoordinateSystem for the building geography + + + + + Initializes a new instance of the class. + + The implementation that created this instance. + + + + Set the coordinate system based on the given ID + + The coordinate system ID to set. Null indicates the default should be used + + + + Create a new instance of Point + + Whether the point is empty + X + Y + Z + M + A new instance of point + + + + Create a new instance of T + + The spatial type to create + The arguments + A new instance of T + + + + A Geography linestring consist of an array of GeoPoints + + + + + Points array + + + + + Constructor + + CoordinateSystem + The implementation that created this instance. + The point list + + + + Sends the current spatial object to the given sink + + The spatial pipeline + + + + Is LineString Empty + + + + + Point list + + + + + Geography Multi-LineString + + + + + Line Strings + + + + + Constructor + + The CoordinateSystem + The implementation that created this instance. + Line Strings + + + + Constructor + + The implementation that created this instance. + Line Strings + + + + Sends the current spatial object to the given sink + + The spatial pipeline + + + + Is MultiLineString Empty + + + + + Geographies + + + + + Line Strings + + + + + Geography Multi-Point + + + + + Points + + + + + Constructor + + The CoordinateSystem + The implementation that created this instance. + Points + + + + Constructor + + The implementation that created this instance. + Points + + + + Sends the current spatial object to the given sink + + The spatial pipeline + + + + Is MultiPoint Empty + + + + + Geography + + + + + Points + + + + + Geography Multi-Polygon + + + + + Polygons + + + + + Constructor + + The CoordinateSystem + The implementation that created this instance. + Polygons + + + + Constructor + + The implementation that created this instance. + Polygons + + + + Sends the current spatial object to the given sink + + The spatial pipeline + + + + Is MultiPolygon Empty + + + + + Geographies + + + + + Polygons + + + + + This class is an implementation of Geography point. + + + + + Latitude + + + + + Longitude + + + + + Z + + + + + M + + + + + Point constructor + + CoordinateSystem + The implementation that created this instance. + latitude + longitude + Z + M + + + + Create a empty point + + CoordinateSystem + The implementation that created this instance. + + + + Sends the current spatial object to the given sink + + The spatial pipeline + + + + Latitude + + + + + Longitude + + + + + Is Point Empty + + + + + Nullable Z + + + + + Nullable M + + + + + Geography polygon + + + + + Rings + + + + + Constructor + + The CoordinateSystem + The implementation that created this instance. + The rings of this polygon + + + + Constructor + + The implementation that created this instance. + The rings of this polygon + + + + Sends the current spatial object to the given sink + + The spatial pipeline + + + + Is Polygon Empty + + + + + Set of rings + + + + + Geography Collection + + + + + Collection of geography instances + + + + + Constructor + + The CoordinateSystem + The implementation that created this instance. + Collection of geography instances + + + + Constructor + + The implementation that created this instance. + Collection of geography instances + + + + Sends the current spatial object to the given pipeline + + The spatial pipeline + + + + Is Geography Collection Empty + + + + + Geographies + + + + + Helper methods for the geography type. + + + + + Sends the current spatial object to the given pipeline with a figure that represents this LineString + + GeographyLineString instance to serialize. + The pipeline to populate to + + + + Implementation of FullGlobe + + + + + Constructor + + The CoordinateSystem + The implementation that created this instance. + + + + Constructor + + The implementation that created this instance. + + + + Sends the spatial geography object to the given sink + + The spatial pipeline + + + + Is FullGlobe empty + + + + + Geometry Line String + + + + + Points array + + + + + Constructor + + CoordinateSystem + The implementation that created this instance. + The point list + + + + Constructor + + The implementation that created this instance. + The point list + + + + Sends the current spatial object to the given pipeline + + The spatial pipeline + + + + Is LineString Empty + + + + + Point list + + + + + Geometry Multi-LineString + + + + + Line Strings + + + + + Constructor + + The CoordinateSystem + The implementation that created this instance. + Line Strings + + + + Constructor + + The implementation that created this instance. + Line Strings + + + + Sends the current spatial object to the given pipeline + + The spatial pipeline + + + + Is MultiLineString Empty + + + + + Geometry + + + + + Line Strings + + + + + Geometry Multi-Point + + + + + Points + + + + + Constructor + + The CoordinateSystem + The implementation that created this instance. + Points + + + + Constructor + + The implementation that created this instance. + Points + + + + Sends the current spatial object to the given pipeline + + The spatial pipeline + + + + Is MultiPoint Empty + + + + + Geometry + + + + + Points + + + + + Geometry Multi-Polygon + + + + + Polygons + + + + + Constructor + + The CoordinateSystem + The implementation that created this instance. + Polygons + + + + Constructor + + The implementation that created this instance. + Polygons + + + + Sends the current spatial object to the given pipeline + + The spatial pipeline + + + + Is MultiPolygon Empty + + + + + Geometry + + + + + Polygons + + + + + Geometry Point + + + + + Latitude + + + + + Longitude + + + + + Z + + + + + M + + + + + Empty Point constructor + + CoordinateSystem + The implementation that created this instance. + + + + Point constructor + + CoordinateSystem + The implementation that created this instance. + latitude + longitude + Z + M + + + + Sends the current spatial object to the given pipeline + + The spatial pipeline + + + + Latitude + + + + + Longitude + + + + + Is Point Empty + + + + + Nullable Z + + + + + Nullable M + + + + + Geometry polygon + + + + + Rings + + + + + Constructor + + The CoordinateSystem + The implementation that created this instance. + The rings of this polygon + + + + Constructor + + The implementation that created this instance. + The rings of this polygon + + + + Sends the current spatial object to the given pipeline + + The spatial pipeline + + + + Is Polygon Empty + + + + + Set of rings + + + + + Geometry Collection + + + + + Collection of Geometry instances + + + + + Constructor + + The CoordinateSystem + The implementation that created this instance. + Collection of Geometry instances + + + + Constructor + + The implementation that created this instance. + Collection of Geometry instances + + + + Sends the current spatial object to the given pipeline + + The spatial pipeline + + + + Is Geometry Collection Empty + + + + + Geographies + + + + + Dummy class for code that is shared with ODataLib. + The ODataLib version of this class has an implementation, but this version is just provided + so that we don't have to conditionally compile all references to it in the shared code. + Since it is debug-only anyway, there is no harm in leaving this no-op version so that the shared code is cleaner. + + + + + Dummy method to allow shared code to compile. + + + + + Helper methods for Geometry types + + + + + Sends the current spatial object to the given pipeline with a figure that represents this LineString + + GeometryLineString instance for which the figure needs to be drawn. + The pipeline to populate to + + + + Gml Reader + + + + + Creates a reader that that will send messages to the destination during read. + + The instance to message to during read. + + + + Parses some serialized format that represents a geography value, passing the result down the pipeline. + + The XmlReader instance to read from. + + + + Parses some serialized format that represents a geometry value, passing the result down the pipeline. + + The XmlReader instance to read from. + + + + This class parses the xml and calls the pipeline based on what is parsed + + + + + Delimiters used in position arrays. As per Xml spec white space characters is: #x20 | #x9 | #xD | #xA + + + + + List of known gml elements that can be ignored by the parser + + + + + Atomized gml namespace + + + + + Atomized Full Globe namespace + + + + + Output pipeline + + + + + Input reader + + + + + Number of points in the current figure + + + + + Constructor + + Input Reader + Output pipeline + + + + Read + + + + + Parses the top level element in the document + + Whether coordinte system is expected + + + + Set the CoordinateSystem + + Should we allow CRS attributes + + + + creates a shape and parses the element. + This is used to parse a top level Point element, as opposed to + a point which is embeded in a linestring or a polygon. + + + + + creates a shape and parses the element for top level LineString shapes + + + + + Creates a shape and parses the Polygon element. + + + + + Creates a shape and parses the MultiPoint element. + + + + + Creates a shape and parses the MultiLineString(Gml MultiCurve) element. + + + + + Creates a shape and parses the MultiPolygon(Gml MultiSurface) element. + + + + + Creates a shape and parses the Collection(Gml MultiGeometry) element. + + + + + Creates a shape and parses the FullGlobe element + + + + + Parses a simple point. + + Allow Empty Point + + + + Parses the GmlLineStringElement. + + + + + Parses the GmlExteriorLinearRingElement + + The type or ring + + + + ParseGmlLinearRingElement parses the GmlLinearRingElement + + + + + Common function for all item collections, since they are all parsed exactly the same way + + The wrapping header tag + The member tag + The members tag + Parser for individual items + + + + parses a pos element, which eventually is used in most other top level elements. + This represents a single point location with either two or zero coordinates. + + Allow empty pos + + + + Parses a sequence of 1 or more pos and pointProperty elements + + Allow Empty Point + + + + Parses a simple pointProperty. + + Allow empty point + + + + parses a GmlPosListElement. + + Alow empty posList + + + + Reads the current content in the xml element as a double array + + + XmlReader.ReadContentAs(typeof(double[])) basically does this but a lot slower, since it will handle a bunch of + different splitters and formats. Here we simply parse it as a string and split in on one separator + + The double array + + + + Main element reading function. + Returns true if it read a non-empty start element of the given name. + possibilities: + 1- current element is not a start element named "element" - throw + 2- current element is named "element" but is an empty element - return false + 3- current element is named "element" and is not empty - return true + If the funciton returns true, it means that a non-empty element of the given name + was read, so the caller takes responsability to read the corresponding end element. + + The element name + Returns true if it read a non-empty start element of the given name. + + + + Is Start Element + + Expected Element Tag + True if reader is at the expected element + + + + Is End Element + + Expected Element Tag + True if reader is at the end of the expected element + + + + Read End Element + + + + + Call MoveToContent, then skip a known set of irrelevant elements (gml:name, gml:description) + + + + + Is reader at the start of a pos or pointProperty + + True if reader is at the expected element + + + + Prepare for figure drawing + + + + + Draw a point in the current figure + + X coordinate + Y coordinate + Z coordinate + M coordinate + + + + End Current Figure + + + + + Gml Constants + + + + + Gml Namespace + + + + + FullGlobe namespace + + + + + Gml Prefix + + + + + System reference attribute name + + + + + gml:id attribute name + + + + + System Reference Prefix + + + + + Gml representation of a point + + + + + The Gml:name element name + + + + + the Gml:Description element name + + + + + the metadata property element name + + + + + Description Reference element name + + + + + identifier element name + + + + + Gml representation of a point + + + + + Gml representation of a point array + + + + + Gml Point + + + + + Gml representation of a linestring + + + + + Gml Polygon + + + + + Gml MultiPoint + + + + + Gml MultiLineString + + + + + Gml MultiPolygon + + + + + Gml Collection + + + + + Gml FullGlobe + + + + + Gml Polygon exterior ring + + + + + Gml Polygon interior ring + + + + + Gml Ring + + + + + Member Tag for MultiPoint + + + + + Members Tag for MultiPoint + + + + + Member Tag for MultiLineString + + + + + Members Tag for MultiLineString + + + + + Member Tag for MultiPolygon + + + + + Members Tag for MultiPolygon + + + + + Member Tag for Collection + + + + + Members Tag for Collection + + + + + Attribute name for Axis Labels + + + + + Attribute name for unit of measure labels + + + + + Attribute name for count + + + + + Well Known Text Constants + + + + + SRID + + + + + POINT + + + + + LINESTRING + + + + + POLYGON + + + + + GEOMETRYCOLLECTION + DEVNOTE: Because there is no inherent Geography support in the WKT specification, + this constant is used for both GeographyCollection and GeometryCollection + + + + + MULTIPOINT + + + + + MULTILINESTRING + + + + + MULTIPOLYGON + + + + + FULLGLOBE + + + + + NULL + + + + + NULL + + + + + Equals Operator '=' + + + + + Semicolon ';' + + + + + Delimiter ',' + WktWhiteSpace + + + + + Open Parenthesis '(' + + + + + Close Parenthesis '); + + + + + Whitespace ' ' + + + + + Period/Dot '.' + + + + + Adapter from the type washed API to Geometry, where it assumes that coord1 is X. + + + + + The pipeline to redirect the calls to + + + + + Constructor + + The pipeline to redirect the calls to + + + + Set the coordinate system based on the given ID + + The coordinate system ID to set. Null indicates the default should be used + + + + Setup the pipeline for reuse + + + + + Begin drawing a spatial object + + The spatial type of the object + + + + Begin drawing a figure + + 1st Coordinate + 2nd Coordinate + 3rd Coordinate + 4th Coordinate + + + + Draw a line to a point in the specified coordinate + + 1st Coordinate + 2nd Coordinate + 3rd Coordinate + 4th Coordinate + + + + Ends the current figure + + + + + Ends the current spatial object + + + + + Gets a value indicating whether this instance is geography. + + + true if this instance is geography; otherwise, false. + + + + + Semantically validate a GeoData + + + Grammar, states, and actions: + := SetSRID { Finish } + := (Begin_Point | ... | Begin_FullGlobe (: verify depth = 1 :) ) + := [ BeginFigure 1 EndFigure ] 2 End + := [ BeginFigure 1 { LineTo } EndFigure (: verify 2+ points :) ] 2 End + := { BeginFigure 1 { LineTo } EndFigure (: verify 4+ points and closed :) } End + := { { SetSRID } Begin_Point } End + := { { SetSRID } Begin_LineString } End + := { { SetSRID } Begin_Polygon } End + := { { SetSRID } } End + := End + := [ BeginFigure 1 { AddCircularArc } EndFigure ] 2 End + := [ BeginFigure 1 { LineTo | AddCircularArc } EndFigure ] | 2 End + := { } EndFigure + := AddSegmentLine 0 BeginFigure { LineTo } | AddSegmentArc 0 BeginFigure { AddCircularArc } + := AddSegmentLine { LineTo } | AddSegmentArc { AddCircularArc } + := { | | EndFigure (: verify closed and three distinct :)} End + := BeginFigure 1 { LineTo | AddCircularArc } + := StartSimpleRing 0 + := { } + := AddSegmentLine 0 BeginFigure { LineTo } | AddSegmentArc 0 BeginFigure { AddCircularArc } + := AddSegmentLine { LineTo } | AddSegmentArc { AddCircularArc } + ]]> + + + + + Max value for Longitude + + + ~263 radians converted to degrees + + + + + Max value for latitude + + + + + The DrawBoth derived instance of the geography Validator that is nested in this class + + + + + The DrawBoth derived instance of the geometry Validator that is nested in this class + + + + + Gets the draw geography. + + + + + Gets the draw geometry. + + + + + this is the actual validator, and derived from DrawBoth + while the real SpatialValidator derives from DrawSpatial. + We simple create an instance of this nested class and pass back + the DrawGeometry, and DrawGeography when the outter classes DataSpatial + properties are accessed. + + + + + Geometry Functional Specification 3.2.3.4 + Max Geometry Collection Depth + + + + + Set coordinate system + + + + + BeginGeo + + + + + Starting a point + + + + + Building a point + + + + + Ending a point + + + + + Starting a LineString + + + + + Building a LineString + + + + + Ending a LineString + + + + + Starting a Polygon + + + + + Building a Polygon + + + + + Starting a MultiPoint + + + + + Starting a LineString + + + + + Starting a MultiPolygon + + + + + Starting a Collection + + + + + Starting a FullGlobe + + + + + States + + + + + CoordinateSystem + + + + + Number of rings in a polygon + + + + + First point's X coordinate + + + + + First point's Y coordinate + + + + + Last point's X coordinate + + + + + Last point's Y coordinate + + + + + we are validating a geography stream + + + + + Number of points in the GeoData + + + + + Stack depth + + + + + Constructs a new SpatialValidatorImplementation segment + + + + + Implemented by a subclass to handle the setting of a coordinate system + + the new coordinate system + the coordinate system to be passed down the pipeline + + + + Implemented by a subclass to handle the start of drawing a Geography figure + + the shape to draw + the SpatialType to be passed down the pipeline + + + + Implemented by a subclass to handle the end of drawing a Geography figure + + + + + Implemented by a subclass to handle the start of drawing a Geometry figure + + the shape to draw + the SpatialType to be passed down the pipeline + + + + Implemented by a subclass to handle the end of drawing a Geometry figure + + + + + Implemented by a subclass to handle the start of a figure + + Next position + The position to be passed down the pipeline + + + + Implemented by a subclass to handle the start of a figure + + Next position + The position to be passed down the pipeline + + + + Implemented by a subclass to handle the end of a figure + + + + + Implemented by a subclass to return to its initial state + + + + + Implemented by a subclass to handle the addition of a waypoint to a Geography figure + + Next position + the GeographyPosition to be passed down the pipeline + + + + Implemented by a subclass to handle the addition of a waypoint to a Geometry figure + + Next position + the GeometryPosition to be passed down the pipeline + + + + Test whether a double is finite + + The double value + True if the input double is not NaN or INF + + + + Test whether a point is in valid format + + The first coordinate + The second coordinate + The z coordinate + The m coordinate + Whether the input coordinate is valid + + + + Validate one position + + the first two dimensional co-ordinate + the second two dimensional co-ordinate + the altitude + the measure + + + + Validate one Geography position + + the latitude + the longitude + the altitude + the measure + + + + Validate one Geography position + + the x coordinate + the y coordinate + the altitude + the measure + + + + Test whether a latitude value is within acceptable range + + The latitude value + True if the latitude value is within range + + + + Test whether a longitude value is within acceptable range + + The longitude value + True if the longitude value is within range + + + + Validate a Geography polygon + + The number of points in the ring + its first latitude + it first longitued + its last latitude + its last longitude + + + + Validate a Geometry polygon + + The number of points in the ring + its first x + it first y + its last x + its last y + + + + Test whether two longitude values are equal + + Left longitude + Right longitude + True if the two longitudes are equals + + + + Begins the figure. + + The validate action. + The x. + The y. + The z. + The m. + + + + Begin drawing a spatial object + + The spatial type of the object + + + + Add a control point to the current figure. + + the first coordinate + the second coordinate + + + + Tracks the position. + + The first. + The second. + + + + Transit into a new state + + The state to transit into + + + + initialize the object to a fresh clean smelling state + + + + + Push a new state onto the stack + + The new state + + + + Pop a state from the stack + + + + + Replace the current state on the stack with the new state + + The new state + + + + Calls to the pipeline interface Represented as state transition + + + + + Set CoordinateSystem + + + + + BeginGeo() + + fake transition, just for exception + + + + BeginGeo(point) + + + + + BeginGeo(LineString) + + + + + BeginGeo(Polygon) + + + + + BeginGeo(MultiPoint) + + + + + BeginGeo(MultiLineString) + + + + + BeginGeo(MultiPolygon) + + + + + BeginGeo(Collection) + + + + + BeginGeo(FullGlobe) + + + + + BeginFigure + + + + + LineTo + + + + + EndFigure + + + + + EndGeo + + + + + SpatialValidatorImplementation State + + + + + Validate a call to the pipeline interface (a state transition) + + The transition + The validator instance + + + + Throw an incorrect state exception + + The expected state + The actual state + + + + Throw an incorrect state exception + + The expected state1 + The expected state2 + The actual state + + + + Throw an incorrect state exception + + The expected state1 + The expected state2 + The expected state3 + The actual state + + + + SetCoordinateSystem State + Validator is currently waiting for a SetCoordinateSystemCall + + + + + Validate a call to the pipeline interface (a state transition) + + The transition + The validator instance + + + + Beginning a GeoData + Validator is currently waiting for a BeginGeo() call + + + + + Validate a call to the pipeline interface (a state transition) + + The transition + The validator instance + + + + Point Start State + After BeginGeo(Point), waiting for BeginFigure() or EndGeo() + + + + + Validate a call to the pipeline interface (a state transition) + + The transition + The validator instance + + + + Point Building State + After BeginFigure(), waiting for EndFigure() immediately + + + + + Validate a call to the pipeline interface (a state transition) + + The transition + The validator instance + + + + Point End State + After EndFigure() for a point, waiting for EndGeo() + + + + + Validate a call to the pipeline interface (a state transition) + + The transition + The validator instance + + + + LineString Start state + After BeginGeo(LineString), waiting for BeginFigure/EndGeo + + + + + Validate a call to the pipeline interface (a state transition) + + The transition + The validator instance + + + + LineString Building State + After BeginFigure() for a line + Waiting for LineTo/EndFigure + + + + + Validate a call to the pipeline interface (a state transition) + + The transition + The validator instance + + + + LineString End State + After EndFigure() on Line + Waiting for EndGeo + + + + + Validate a call to the pipeline interface (a state transition) + + The transition + The validator instance + + + + PolygonStart State + After polygon started, waiting for Rings to build + + + + + Validate a call to the pipeline interface (a state transition) + + The transition + The validator instance + + + + Polygon Building State + Drawing rings + + + + + Validate a call to the pipeline interface (a state transition) + + The transition + The validator instance + + + + MultiPoint State + Inside a MultiPoint Container + + + + + Validate a call to the pipeline interface (a state transition) + + The transition + The validator instance + + + + MultiLineString State + Inside a MultiLineString container + + + + + Validate a call to the pipeline interface (a state transition) + + The transition + The validator instance + + + + MultiPolygon State + Inside a MultiPolygon container + + + + + Validate a call to the pipeline interface (a state transition) + + The transition + The validator instance + + + + Collection State + Inside a Collection container + + + + + Validate a call to the pipeline interface (a state transition) + + The transition + The validator instance + + + + FullGlobe state + Inside a FullGlobe container + + + + + Validate a call to the pipeline interface (a state transition) + + The transition + The validator instance + + + + Extension methods for TextWriter + + + + + Write a double to a TextWriter ensuring that the value will be roundtrippable thorugh double.parse + + the writer + the double value to be written + + + + If the arg is non-null, evaluate the op. Otherwise, propogate the null. + + The type of the arg. + The type of the result. + The arg. + The op. + op(arg) if arg is non-null; null if arg is null. + + + + If the arg is non-null, evaluate the op. Otherwise, propogate the null. + + The type of the arg. + The type of the result. + The arg. + The op. + op(arg) if arg is non-null; null if arg is null. + + + + Text Lexer Token + + + + + Test whether this token matches the input criterion + + The target type + The target text, or null + The StringComparison + True if this token matches the input criterion + + + + String representation of this token + + String representation of this token + + + + The Token Text + + + + + Token Type + + + + + Reader for Extended Well Known Text, Case sensitive + example: + SRID=1234;POINT(10.0 20.0 NULL 30.0) + + + + + restricts the reader to allow only two dimensions. + + + + + Creates a reader that that will send messages to the destination during read. + + The instance to message to during read. + + + + Initializes a new instance of the class. + + The destination. + if set to true allows only two dimensions. + + + + Parses some serialized format that represents a geography value, passing the result down the pipeline. + + TextReader instance to read from. + + + + Parses some serialized format that represents a geometry value, passing the result down the pipeline. + + TextReader instance to read from. + + + + This class parses the text and calls the pipeline based on what is parsed + + + + + restricts the parser to allow only two dimensions. + + + + + Text lexer + + + + + Output pipeline + + + + + Creates a parser with the given reader and pipeline + + The reader that is the source of what is parsed. + The pipeline to be called as the parser recognizes tokens. + if set to true allows only two dimensions. + + + + Read WellKnownText into an instance of Geography + + + + + Test whether the current token matches the expected token + + The expected token type + The expected token text + True if the two tokens match + + + + Move the lexer to the next non-whitespace token + + True if the lexer gets a new token + + + + Parse Collection Text + + + + + Parse a LineString text + + + + + Parse a Multi* text + + The inner spatial type + The inner reader + + + + Parse Point Representation + + Whether this is the first point in the figure + + + + Parse a point text + + + + + Parse a Polygon text + + + + + Parse an instance of SRID + + + + + Parse Tagged Text + + + + + Read a double literal + + The read double + + + + Check to see if the content is EMPTY + + True if the content is declared as EMPTY + + + + Read an integer literal + + The read integer + + + + Read an optional double literal + + The value that was read. + true if a value was read, otherwise returns false + + + + Read an optional token. If the read token matches the expected optional token, then consume it. + + The expected token type + The expected token text, or null + True if the optional token matches the next token in stream + + + + Read and consume a token from the lexer, throw if the read token does not match the expected token + + The expected token type + The expected token text + + + + WellKnownText Writer + + + + + restricts the writer to allow only two dimensions. + + + + + The underlying writer + + + + + Stack of spatial types currently been built + + + + + Detects if a CoordinateSystem (SRID) has been written already. + + + + + Figure has been written to the current spatial type + + + + + A shape has been written in the current nesting level + + + + + Wells the known text SQL format. -- 2D writer + + The writer. + + + + Initializes a new instance of the class. + + The writer. + if set to true allows only two dimensions. + + + + Draw a point in the specified coordinate + + Next position + + The position to be passed down the pipeline + + + + + Draw a point in the specified coordinate + + Next position + + The position to be passed down the pipeline + + + + + Begin drawing a spatial object + + The spatial type of the object + + The type to be passed down the pipeline + + + + + Begin drawing a spatial object + + The spatial type of the object + + The type to be passed down the pipeline + + + + + Begin drawing a figure + + Next position + The position to be passed down the pipeline + + + + Begin drawing a figure + + Next position + The position to be passed down the pipeline + + + + Ends the current figure + + + + + Ends the current spatial object + + + + + Ends the current spatial object + + + + + Set the coordinate system + + The CoordinateSystem + + the coordinate system to be passed down the pipeline + + + + + Setup the pipeline for reuse + + + + + Write the coordinate system + + The CoordinateSystem + + + + Setup the pipeline for reuse + + + + + Start to write a new Geography/Geometry + + The SpatialType to write + + + + Adds the control point. + + The x. + The y. + The z. + The m. + + + + Ends the figure. + + + + + write tagged text for type + + the spatial type + + + + Start to write a figure + + The coordinate1. + The coordinate2. + The coordinate3. + The coordinate4. + + + + End the current Geography/Geometry + + + + + Write out a point + + The x coordinate + The y coordinate + The z coordinate + The m coordinate + + + + Defines the members that may be found in a GeoJSON object. + + + + + "type" member in a GeoJSON object. + + + + + "coordinates" member in GeoJSON object. + + + + + "geometries" member in GeoJSON object. + + + + + "crs" member in GeoJSON object. + + + + + 'properties' member in GeoJSON object + + + + + 'name' member in GeoJSON object + + + + + Constants for the GeoJSON format + See http://geojson.org/geojson-spec.html for full details on GeoJson format. + + + + + Name of the type member that identifies the spatial type. + + + + + Value of the type member for Point values. + + + + + Value of the type member for LineString values. + + + + + Value of the type member for Polygon values. + + + + + Value of the type member for MultiPoint values. + + + + + Value of the type member for MultiLineString values. + + + + + Value of the type member for MultiPolygon values. + + + + + Value of the type member for GeometryCollection values. + + + + + Name of the coordinates member that contains the spatial data. + + + + + Name of the geometries member that contains the spatial data. + + + + + Name of the crs member that contains the coordinate reference system details. + + + + + Value of the type member inside of the crs object. + + + + + Name of the name member inside of the properties member in the crs object. + + + + + Name of the properties member inside of the crs object. + + + + + Prefix to use when specifying the coordinate reference system inside the crs object. + + + + + This is a forwarding transform pipe segment + + + + + The singleton NoOp implementation of the DrawGeography + + + + + The current drawspatial that will be called and whose results will be forwarded to the + next segment + + + + + The SpatialPipeline to forward the calls to + + + + + the cached GeographyForwarder for this instance + + + + + the cached GeometryForwarder for this instance + + + + + Constructs a new SpatialPipeline segment + + The DrawSpatial to draw to before calling next. + + + + Initializes a new instance of the class. + + The current geography. + The current geometry. + + + + Add the next pipeline + + the next pipleine + The last pipesegment in the chain, usually the one just created + + + + Run one action on a pipeline + + what to do at this stage of the pipeline + The handler reset. + what the rest of the pipeline should do + The delegation reset. + + + + Run one action on a pipeline + + The type taken and returned by the transform style methods. + what to do at this stage of the pipeline + The handler reset. + what the rest of the pipeline should do + The delegation reset. + The argument to pass to both this node and the rest of the pipeline + + + + Gets the geography. + + + + + Gets the geometry. + + + + + The next geography sink in the pipeline + + + + + The next geometry sink in the pipeline + + + + + The forwarding implementation of DrawGeography + + + + + The ForwardingSegment instance that this pipe is + associated with + + + + + Initializes a new instance of the class. + + The segment. + + + + Set the system reference to be used by this run of the pipeline + + the coordinate reference system + + + + start processing Geography data + + the sort of Geography data being processed + + + + finish processing Geography data + + + + + Begin drawing a Geography figure + + Next position + + + + Finish drawing a Geography figure + + + + + Continue drawing a Geography figure + + Next position + + + + Reset the piprline + + + + + Run one action on a Geography pipeline + + The type taken and returned by the transform style methods. + what to do at this stage of the pipeline + what the rest of the pipeline should do + The argument to pass to both this node and the rest of the pipeline + + + + Run one action on a Geography pipeline + + what to do at this stage of the pipeline + what the rest of the pipeline should do + + + + Gets the current DrawGeography from the associated ForwardingSegment instance + + + + + Gets the next GeographyPipeline from the associated ForwardingSegment instance + + + + + The forwarding implementation of DrawGeography + + + + + The ForwardingSegment instance that this pipe is + associated with + + + + + Initializes a new instance of the class. + + The segment. + + + + Set the system reference to be used by this run of the pipeline + + the coordinate reference system + + + + start processing Geometry data + + the sort of Geometry data being processed + + + + finish processing Geometry data + + + + + Begin drawing a Geometry figure + + Next position + + + + Finish drawing a Geometry figure + + + + + Continue drawing a Geometry figure + + Next position + + + + Reset the piprline + + + + + Run one action on a Geography pipeline + + The type taken and returned by the transform style methods. + what to do at this stage of the pipeline + what the rest of the pipeline should do + The argument to pass to both this node and the rest of the pipeline + + + + Run one action on a Geography pipeline + + what to do at this stage of the pipeline + what the rest of the pipeline should do + + + + Gets the current DrawGeometry from the associated ForwardingSegment instance + + + + + Gets the next GeometryPipeline from the associated ForwardingSegment instance + + + + + A noop implementation of DrawGeography + + + + + Draw a point in the specified coordinate + + Next position + + + + Begin drawing a figure + + Next position + + + + Begin drawing a spatial object + + The spatial type of the object + + + + Ends the current figure + + + + + Ends the current spatial object + + + + + Setup the pipeline for reuse + + + + + Set the coordinate system + + The CoordinateSystem + + + + a noop implementation of DrawGeometry + + + + + Draw a point in the specified coordinate + + Next position + + + + Begin drawing a figure + + Next position + + + + Begin drawing a spatial object + + The spatial type of the object + + + + Ends the current figure + + + + + Ends the current spatial object + + + + + Setup the pipeline for reuse + + + + + Set the coordinate system + + The CoordinateSystem + + + + Util class + + + + StackOverFlow exception type + + + ThreadAbortException exception type + + + AccessViolationException exception type + + + OutOfMemoryException exception type + + + NullReferenceException exception type + + + SecurityException exception type + + + + Check if input is null, throw an ArgumentNullException if it is. + + The input argument + The error to throw + + + + Determines if the exception is one of the prohibited types that should not be caught. + + The exception to be checked against the prohibited list. + True if the exception is ok to be caught, false otherwise. + + + + A workaround to a problem with FxCop which does not recognize the CheckArgumentNotNull method + as the one which validates the argument is not null. + + This has been suggested as a workaround in msdn forums by the VS team. Note that even though this is production code + the attribute has no effect on anything else. + + + + Class that contains all the constants for various schemas. + + + + + Namespace for xmlns + + + + + Sets public key string for friend assemblies. + + + + ProductPublicKey is an official MS supported public key for external releases. + + + TestPublicKey is an unsupported strong key for testing and internal use only + + + Dont know what this is + + + Used for comparison with external assemblies for silverlight like Microsoft.VisualBasic. + + + Used for comparison with external assemblies for desktop like Microsoft.VisualBasic. + + + + AutoGenerated resource class. Usage: + + string s = TextRes.GetString(TextRes.MyIdenfitier); + + + + + Strongly-typed and parameterized string resources. + + + + + A string like "The queue doesn't contain an item with the priority {0}." + + + + + A string like "The value '{0}' is not valid for the coordinate '{1}'." + + + + + A string like "Incorrect GML Format: The XmlReader instance encountered an unexpected element "{0}"." + + + + + A string like "Incorrect GML Format: unknown spatial type tag "{0}"." + + + + + A string like "Incorrect GML Format: a srsName attribute must begin with the namespace "{0}"." + + + + + A string like "The attribute '{0}' on element '{1}' is not supported." + + + + + A string like "Expecting token type "{0}" with text "{1}" but found "{2}"." + + + + + A string like "Unexpected character '{0}' found in text." + + + + + A string like "Unknown Tagged Text "{0}"." + + + + + A string like "Invalid spatial data: Invalid spatial type "{0}"." + + + + + A string like "Invalid spatial data: only {0} levels of nesting are supported in collection types." + + + + + A string like "Invalid spatial data: the coordinates ({0} {1} {2} {3}) are not valid." + + + + + A string like "Invalid spatial data: expected call to "{0}" but got call to "{1}"." + + + + + A string like "Invalid spatial data: expected call to "{0}" or "{1}" but got call to "{2}"." + + + + + A string like "Invalid latitude coordinate {0}. A latitude coordinate must be a value between -90.0 and +90.0 degrees." + + + + + A string like "Invalid longitude coordinate {0}. A longitude coordinate must be a value between -15069.0 and +15069.0 degrees" + + + + + A string like "Invalid GeoJSON. The '{0}' member is required, but was not found." + + + + + A string like "Invalid GeoJSON. The value '{0}' is not a valid value for the 'type' member." + + + + + A string like "Invalid GeoJSON. The value '{0}' is not a recognized CRS type." + + + + + A string like "Invalid GeoJSON. The value '{0}' is not a recognized CRS name." + + + + + A string like "Cannot read the value '{0}' for the property '{1}' as a quoted JSON string value." + + + + + A string like "Cannot read the value '{0}' as a JSON object." + + + + + A string like "The operation is not valid on an empty queue." + + + + + A string like "An item with the same priority already exists." + + + + + A string like "No operations are registered. Please provide operations using SpatialImplementation.CurrentImplementation.Operations property." + + + + + A string like "Access to the coordinate properties of an empty point is not supported." + + + + + A string like "The builder cannot create an instance until all pipeline calls are completed." + + + + + A string like "Incorrect GML Format: the XmlReader instance is expected to be at the start of a GML element." + + + + + A string like "Incorrect GML Format: a LinearRing element must not be empty." + + + + + A string like "Incorrect GML Format: a pos element must contain at least two coordinates." + + + + + A string like "Incorrect GML Format: a posList element must contain an even number of coordinates." + + + + + A string like "The WellKnownTextReader is configured to allow only two dimensions, and a third dimension was encountered." + + + + + A string like "Invalid spatial data: An instance of spatial type can have only one unique CoordinateSystem for all of its coordinates." + + + + + A string like "Invalid spatial data: the spatial type "FullGlobe" cannot be part of a collection type." + + + + + A string like "Invalid spatial data: the spatial type "LineString" must contain at least two points." + + + + + A string like "Invalid spatial data: the spatial type "FullGlobe" cannot contain figures." + + + + + A string like "Invalid spatial data: A polygon ring must contain at least four points, and the last point must be equal to the first point." + + + + + A string like "A geography operation was called while processing a geometric shape." + + + + + A string like "A geometry operation was called while processing a geographic shape." + + + + + A string like "Invalid GeoJSON. A position must contain at least two and no more than four elements." + + + + + A string like "Invalid GeoJSON. A null value was found in an array element where nulls are not allowed." + + + + + A string like "Invalid GeoJSON. A non-numeric value was found in an array element where a numeric value was expected." + + + + + A string like "Invalid GeoJSON. A primitive value was found in an array element where an array was expected." + + + + + Strongly-typed and parameterized exception factory. + + + + + The exception that is thrown when a null reference (Nothing in Visual Basic) is passed to a method that does not accept it as a valid argument. + + + + + The exception that is thrown when the value of an argument is outside the allowable range of values as defined by the invoked method. + + + + + The exception that is thrown when the author has yet to implement the logic at this point in the program. This can act as an exception based TODO tag. + + + + + The exception that is thrown when an invoked method is not supported, or when there is an attempt to read, seek, or write to a stream that does not support the invoked functionality. + + + + diff --git a/TinyFileManager.NET/bin/TinyFileManager.dll b/TinyFileManager.NET/bin/TinyFileManager.dll index 2d7de91..3f78114 100644 Binary files a/TinyFileManager.NET/bin/TinyFileManager.dll and b/TinyFileManager.NET/bin/TinyFileManager.dll differ diff --git a/TinyFileManager.NET/bin/TinyFileManager.dll.config b/TinyFileManager.NET/bin/TinyFileManager.dll.config new file mode 100644 index 0000000..3d2a822 --- /dev/null +++ b/TinyFileManager.NET/bin/TinyFileManager.dll.config @@ -0,0 +1,117 @@ + + + + + + + +
+
+ + + + + + + + + + + + + + + 'jpg', 'jpeg', 'png', 'gif', 'bmp', 'tiff' + + + 'doc', 'docx', 'pdf', 'xls', 'xlsx', 'txt', 'csv','html','psd','sql','log','fla','xml','ade','adp','ppt','pptx','zip','rar' + + + 'mov', 'mpeg', 'mp4', 'avi', 'mpg','wma' + + + 'mp3', 'm4a', 'ac3', 'aiff', 'mid' + + + + + + True + + + True + + + True + + + True + + + 100 + + + Azure + + + DefaultEndpointsProtocol=https;AccountName=example;AccountKey=somekey + + + //example.blob.core.windows.net/ + + + tfm + + + resources\files + + + resources\thumbs + + + + + The upload exceeds the max filesize allowed + + + 'jpg', 'jpeg', 'png', 'gif', 'bmp', 'tiff' + + + 'doc', 'docx', 'pdf', 'xls', 'xlsx', 'txt', 'csv','html','psd','sql','log','fla','xml','ade','adp','ppt','pptx' + + + 'mov', 'mpeg', 'mp4', 'avi', 'mpg','wma' + + + 'mp3', 'm4a', 'ac3', 'aiff', 'mid' + + + 'zip', 'rar' + + + resources\files + + + resources\thumbs + + + True + + + True + + + True + + + True + + + 100 + + + + diff --git a/TinyFileManager.NET/bin/TinyFileManager.pdb b/TinyFileManager.NET/bin/TinyFileManager.pdb index 98a3cbc..6e73243 100644 Binary files a/TinyFileManager.NET/bin/TinyFileManager.pdb and b/TinyFileManager.NET/bin/TinyFileManager.pdb differ diff --git a/TinyFileManager.NET/bin/de/Microsoft.Data.Edm.resources.dll b/TinyFileManager.NET/bin/de/Microsoft.Data.Edm.resources.dll new file mode 100644 index 0000000..a536d95 Binary files /dev/null and b/TinyFileManager.NET/bin/de/Microsoft.Data.Edm.resources.dll differ diff --git a/TinyFileManager.NET/bin/de/Microsoft.Data.OData.resources.dll b/TinyFileManager.NET/bin/de/Microsoft.Data.OData.resources.dll new file mode 100644 index 0000000..ad0726a Binary files /dev/null and b/TinyFileManager.NET/bin/de/Microsoft.Data.OData.resources.dll differ diff --git a/TinyFileManager.NET/bin/de/Microsoft.Data.Services.Client.resources.dll b/TinyFileManager.NET/bin/de/Microsoft.Data.Services.Client.resources.dll new file mode 100644 index 0000000..05e9748 Binary files /dev/null and b/TinyFileManager.NET/bin/de/Microsoft.Data.Services.Client.resources.dll differ diff --git a/TinyFileManager.NET/bin/de/System.Spatial.resources.dll b/TinyFileManager.NET/bin/de/System.Spatial.resources.dll new file mode 100644 index 0000000..529a170 Binary files /dev/null and b/TinyFileManager.NET/bin/de/System.Spatial.resources.dll differ diff --git a/TinyFileManager.NET/bin/es/Microsoft.Data.Edm.resources.dll b/TinyFileManager.NET/bin/es/Microsoft.Data.Edm.resources.dll new file mode 100644 index 0000000..039f159 Binary files /dev/null and b/TinyFileManager.NET/bin/es/Microsoft.Data.Edm.resources.dll differ diff --git a/TinyFileManager.NET/bin/es/Microsoft.Data.OData.resources.dll b/TinyFileManager.NET/bin/es/Microsoft.Data.OData.resources.dll new file mode 100644 index 0000000..688a101 Binary files /dev/null and b/TinyFileManager.NET/bin/es/Microsoft.Data.OData.resources.dll differ diff --git a/TinyFileManager.NET/bin/es/Microsoft.Data.Services.Client.resources.dll b/TinyFileManager.NET/bin/es/Microsoft.Data.Services.Client.resources.dll new file mode 100644 index 0000000..c94a6c2 Binary files /dev/null and b/TinyFileManager.NET/bin/es/Microsoft.Data.Services.Client.resources.dll differ diff --git a/TinyFileManager.NET/bin/es/System.Spatial.resources.dll b/TinyFileManager.NET/bin/es/System.Spatial.resources.dll new file mode 100644 index 0000000..15c1101 Binary files /dev/null and b/TinyFileManager.NET/bin/es/System.Spatial.resources.dll differ diff --git a/TinyFileManager.NET/bin/fr/Microsoft.Data.Edm.resources.dll b/TinyFileManager.NET/bin/fr/Microsoft.Data.Edm.resources.dll new file mode 100644 index 0000000..13f0cf6 Binary files /dev/null and b/TinyFileManager.NET/bin/fr/Microsoft.Data.Edm.resources.dll differ diff --git a/TinyFileManager.NET/bin/fr/Microsoft.Data.OData.resources.dll b/TinyFileManager.NET/bin/fr/Microsoft.Data.OData.resources.dll new file mode 100644 index 0000000..e9fe16f Binary files /dev/null and b/TinyFileManager.NET/bin/fr/Microsoft.Data.OData.resources.dll differ diff --git a/TinyFileManager.NET/bin/fr/Microsoft.Data.Services.Client.resources.dll b/TinyFileManager.NET/bin/fr/Microsoft.Data.Services.Client.resources.dll new file mode 100644 index 0000000..59ac193 Binary files /dev/null and b/TinyFileManager.NET/bin/fr/Microsoft.Data.Services.Client.resources.dll differ diff --git a/TinyFileManager.NET/bin/fr/System.Spatial.resources.dll b/TinyFileManager.NET/bin/fr/System.Spatial.resources.dll new file mode 100644 index 0000000..86f8f47 Binary files /dev/null and b/TinyFileManager.NET/bin/fr/System.Spatial.resources.dll differ diff --git a/TinyFileManager.NET/bin/it/Microsoft.Data.Edm.resources.dll b/TinyFileManager.NET/bin/it/Microsoft.Data.Edm.resources.dll new file mode 100644 index 0000000..889c235 Binary files /dev/null and b/TinyFileManager.NET/bin/it/Microsoft.Data.Edm.resources.dll differ diff --git a/TinyFileManager.NET/bin/it/Microsoft.Data.OData.resources.dll b/TinyFileManager.NET/bin/it/Microsoft.Data.OData.resources.dll new file mode 100644 index 0000000..91ebf34 Binary files /dev/null and b/TinyFileManager.NET/bin/it/Microsoft.Data.OData.resources.dll differ diff --git a/TinyFileManager.NET/bin/it/Microsoft.Data.Services.Client.resources.dll b/TinyFileManager.NET/bin/it/Microsoft.Data.Services.Client.resources.dll new file mode 100644 index 0000000..4533f3a Binary files /dev/null and b/TinyFileManager.NET/bin/it/Microsoft.Data.Services.Client.resources.dll differ diff --git a/TinyFileManager.NET/bin/it/System.Spatial.resources.dll b/TinyFileManager.NET/bin/it/System.Spatial.resources.dll new file mode 100644 index 0000000..05c6d75 Binary files /dev/null and b/TinyFileManager.NET/bin/it/System.Spatial.resources.dll differ diff --git a/TinyFileManager.NET/bin/ja/Microsoft.Data.Edm.resources.dll b/TinyFileManager.NET/bin/ja/Microsoft.Data.Edm.resources.dll new file mode 100644 index 0000000..e5ff209 Binary files /dev/null and b/TinyFileManager.NET/bin/ja/Microsoft.Data.Edm.resources.dll differ diff --git a/TinyFileManager.NET/bin/ja/Microsoft.Data.OData.resources.dll b/TinyFileManager.NET/bin/ja/Microsoft.Data.OData.resources.dll new file mode 100644 index 0000000..49e0252 Binary files /dev/null and b/TinyFileManager.NET/bin/ja/Microsoft.Data.OData.resources.dll differ diff --git a/TinyFileManager.NET/bin/ja/Microsoft.Data.Services.Client.resources.dll b/TinyFileManager.NET/bin/ja/Microsoft.Data.Services.Client.resources.dll new file mode 100644 index 0000000..d3151ed Binary files /dev/null and b/TinyFileManager.NET/bin/ja/Microsoft.Data.Services.Client.resources.dll differ diff --git a/TinyFileManager.NET/bin/ja/System.Spatial.resources.dll b/TinyFileManager.NET/bin/ja/System.Spatial.resources.dll new file mode 100644 index 0000000..b5cd465 Binary files /dev/null and b/TinyFileManager.NET/bin/ja/System.Spatial.resources.dll differ diff --git a/TinyFileManager.NET/bin/ko/Microsoft.Data.Edm.resources.dll b/TinyFileManager.NET/bin/ko/Microsoft.Data.Edm.resources.dll new file mode 100644 index 0000000..08e2ce2 Binary files /dev/null and b/TinyFileManager.NET/bin/ko/Microsoft.Data.Edm.resources.dll differ diff --git a/TinyFileManager.NET/bin/ko/Microsoft.Data.OData.resources.dll b/TinyFileManager.NET/bin/ko/Microsoft.Data.OData.resources.dll new file mode 100644 index 0000000..8604e7f Binary files /dev/null and b/TinyFileManager.NET/bin/ko/Microsoft.Data.OData.resources.dll differ diff --git a/TinyFileManager.NET/bin/ko/Microsoft.Data.Services.Client.resources.dll b/TinyFileManager.NET/bin/ko/Microsoft.Data.Services.Client.resources.dll new file mode 100644 index 0000000..bb8efec Binary files /dev/null and b/TinyFileManager.NET/bin/ko/Microsoft.Data.Services.Client.resources.dll differ diff --git a/TinyFileManager.NET/bin/ko/System.Spatial.resources.dll b/TinyFileManager.NET/bin/ko/System.Spatial.resources.dll new file mode 100644 index 0000000..7d36763 Binary files /dev/null and b/TinyFileManager.NET/bin/ko/System.Spatial.resources.dll differ diff --git a/TinyFileManager.NET/bin/ru/Microsoft.Data.Edm.resources.dll b/TinyFileManager.NET/bin/ru/Microsoft.Data.Edm.resources.dll new file mode 100644 index 0000000..65c0c9c Binary files /dev/null and b/TinyFileManager.NET/bin/ru/Microsoft.Data.Edm.resources.dll differ diff --git a/TinyFileManager.NET/bin/ru/Microsoft.Data.OData.resources.dll b/TinyFileManager.NET/bin/ru/Microsoft.Data.OData.resources.dll new file mode 100644 index 0000000..1ccc151 Binary files /dev/null and b/TinyFileManager.NET/bin/ru/Microsoft.Data.OData.resources.dll differ diff --git a/TinyFileManager.NET/bin/ru/Microsoft.Data.Services.Client.resources.dll b/TinyFileManager.NET/bin/ru/Microsoft.Data.Services.Client.resources.dll new file mode 100644 index 0000000..b3803d5 Binary files /dev/null and b/TinyFileManager.NET/bin/ru/Microsoft.Data.Services.Client.resources.dll differ diff --git a/TinyFileManager.NET/bin/ru/System.Spatial.resources.dll b/TinyFileManager.NET/bin/ru/System.Spatial.resources.dll new file mode 100644 index 0000000..4c5cd7b Binary files /dev/null and b/TinyFileManager.NET/bin/ru/System.Spatial.resources.dll differ diff --git a/TinyFileManager.NET/bin/zh-Hans/Microsoft.Data.Edm.resources.dll b/TinyFileManager.NET/bin/zh-Hans/Microsoft.Data.Edm.resources.dll new file mode 100644 index 0000000..c54fc2e Binary files /dev/null and b/TinyFileManager.NET/bin/zh-Hans/Microsoft.Data.Edm.resources.dll differ diff --git a/TinyFileManager.NET/bin/zh-Hans/Microsoft.Data.OData.resources.dll b/TinyFileManager.NET/bin/zh-Hans/Microsoft.Data.OData.resources.dll new file mode 100644 index 0000000..d57be56 Binary files /dev/null and b/TinyFileManager.NET/bin/zh-Hans/Microsoft.Data.OData.resources.dll differ diff --git a/TinyFileManager.NET/bin/zh-Hans/Microsoft.Data.Services.Client.resources.dll b/TinyFileManager.NET/bin/zh-Hans/Microsoft.Data.Services.Client.resources.dll new file mode 100644 index 0000000..596b07f Binary files /dev/null and b/TinyFileManager.NET/bin/zh-Hans/Microsoft.Data.Services.Client.resources.dll differ diff --git a/TinyFileManager.NET/bin/zh-Hans/System.Spatial.resources.dll b/TinyFileManager.NET/bin/zh-Hans/System.Spatial.resources.dll new file mode 100644 index 0000000..a2b1dfc Binary files /dev/null and b/TinyFileManager.NET/bin/zh-Hans/System.Spatial.resources.dll differ diff --git a/TinyFileManager.NET/bin/zh-Hant/Microsoft.Data.Edm.resources.dll b/TinyFileManager.NET/bin/zh-Hant/Microsoft.Data.Edm.resources.dll new file mode 100644 index 0000000..5255601 Binary files /dev/null and b/TinyFileManager.NET/bin/zh-Hant/Microsoft.Data.Edm.resources.dll differ diff --git a/TinyFileManager.NET/bin/zh-Hant/Microsoft.Data.OData.resources.dll b/TinyFileManager.NET/bin/zh-Hant/Microsoft.Data.OData.resources.dll new file mode 100644 index 0000000..d58e3ef Binary files /dev/null and b/TinyFileManager.NET/bin/zh-Hant/Microsoft.Data.OData.resources.dll differ diff --git a/TinyFileManager.NET/bin/zh-Hant/Microsoft.Data.Services.Client.resources.dll b/TinyFileManager.NET/bin/zh-Hant/Microsoft.Data.Services.Client.resources.dll new file mode 100644 index 0000000..1d15e3a Binary files /dev/null and b/TinyFileManager.NET/bin/zh-Hant/Microsoft.Data.Services.Client.resources.dll differ diff --git a/TinyFileManager.NET/bin/zh-Hant/System.Spatial.resources.dll b/TinyFileManager.NET/bin/zh-Hant/System.Spatial.resources.dll new file mode 100644 index 0000000..dca7e4b Binary files /dev/null and b/TinyFileManager.NET/bin/zh-Hant/System.Spatial.resources.dll differ diff --git a/TinyFileManager.NET/classes/AzureSource.cs b/TinyFileManager.NET/classes/AzureSource.cs new file mode 100644 index 0000000..4fb44ba --- /dev/null +++ b/TinyFileManager.NET/classes/AzureSource.cs @@ -0,0 +1,199 @@ +using Microsoft.WindowsAzure.Storage.Blob; +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Web; + +namespace TinyFileManager.NET +{ + public class AzureSource : Source + { + private CloudBlobClient blobClient; + private CloudBlobContainer blobContainer; + + public AzureSource(string currentPath, string currentLink, bool onlyImages, bool onlyVideos, string physicalPath, string selectFnString, string type) + :base (currentPath, currentLink, onlyImages, onlyVideos, physicalPath, selectFnString, type) + { + var storageAccount = Microsoft.WindowsAzure.Storage.CloudStorageAccount.Parse(clsConfig.azureBlobStore); + blobClient = storageAccount.CreateCloudBlobClient(); + blobContainer = blobClient.GetContainerReference(clsConfig.azureBlobContainer); + + } + + internal override ArrayList GetLinks() + { + var blobs = blobContainer.ListBlobs("files/"); + foreach (var blob in blobs) + { + + var fileItem = new TinyFileManager.NET.clsFileItem(); + string fileUrl = blob.Uri.ToString(); + fileItem.strName = Path.GetFileNameWithoutExtension(fileUrl); + fileItem.boolIsFolder = false; + //objFItem.intColNum = this.getNextColNum(); + fileItem.strPath = fileUrl; + string fileName = Path.GetFileName(fileUrl); + fileItem.boolIsImage = Helper.isImageFile(fileName); + fileItem.boolIsVideo = Helper.isVideoFile(fileName); + fileItem.boolIsMusic = Helper.isMusicFile(fileName); + fileItem.boolIsMisc = Helper.isMiscFile(fileName); + // get display class type + if (fileItem.boolIsImage) + { + fileItem.strClassType = "2"; + } + else + { + if (fileItem.boolIsMisc) + { + fileItem.strClassType = "3"; + } + else + { + if (fileItem.boolIsMusic) + { + fileItem.strClassType = "5"; + } + else + { + if (fileItem.boolIsVideo) + { + fileItem.strClassType = "4"; + } + else + { + fileItem.strClassType = "1"; + } + } + } + } + // get delete link + if (clsConfig.boolAllowDeleteFile) + { + fileItem.strDeleteLink = ""; + } + else + { + fileItem.strDeleteLink = ""; + } + // get thumbnail image + if (fileItem.boolIsImage) + { + fileItem.strThumbImage = clsConfig.azureBlobUrl + clsConfig.azureBlobContainer + "/thumbs/" + fileName; + } + else + { + if (File.Exists(Directory.GetParent(physicalPath).FullName + "\\img\\ico\\" + Path.GetExtension(fileUrl).TrimStart('.').ToUpper() + ".png")) + { + fileItem.strThumbImage = "img/ico/" + Path.GetExtension(fileUrl).TrimStart('.').ToUpper() + ".png"; + } + else + { + fileItem.strThumbImage = "img/ico/Default.png"; + } + } + + fileItem.strDownFormOpen = "
"; + fileItem.strDownBtn = ""; + if (fileItem.boolIsImage) + { + fileItem.strPreviewLink = ""; + } + else + { + fileItem.strPreviewLink = ""; + } + fileItem.strLink = "\"140x100\"

" + fileItem.strName + "

"; + + // check to see if it's the type of file we are looking at + if ((this.boolOnlyImage && fileItem.boolIsImage) || (this.boolOnlyVideo && fileItem.boolIsVideo) || (!this.boolOnlyImage && !this.boolOnlyVideo)) + { + this.arrLinks.Add(fileItem); + } + } + return arrLinks; + } + + internal override void UploadFile(HttpPostedFile fileUpload, string folderName) + { + //check file was submitted + if ((fileUpload != null) && (fileUpload.ContentLength > 0)) + { + var blobName = "files/" + fileUpload.FileName; + var blob = blobContainer.GetBlockBlobReference(blobName); + + //make a copy of the file stream so we can use it twice. + var stream = new MemoryStream(); + fileUpload.InputStream.CopyTo(stream); + stream.Position = 0; + + blob.UploadFromStream(stream); + + if (Helper.isImageFile(fileUpload.FileName)) + { + stream.Position = 0; + this.createThumbnail(stream, fileUpload.FileName); + } + } + } + private void createThumbnail(Stream stream, string fileName) + { + // open image and get dimensions in pixels + var image = System.Drawing.Image.FromStream(stream); + var objUnits = System.Drawing.GraphicsUnit.Pixel; + var objRect = image.GetBounds(ref objUnits); + + int intHeight = 0; + int intWidth = 0; + // what are we going to resize to, to fit inside 156x78 + Helper.getProportionalResize(Convert.ToInt32(objRect.Width), Convert.ToInt32(objRect.Height), ref intWidth, ref intHeight); + + // create thumbnail + var objCallback = new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback); + var thumb = image.GetThumbnailImage(intWidth, intHeight, objCallback, IntPtr.Zero); + + // finish up + + var blobName = "thumbs/" + fileName; + var blob = blobContainer.GetBlockBlobReference(blobName); + using (var thumbStream = new MemoryStream()) + { + thumb.Save(thumbStream, image.RawFormat); + thumbStream.Position = 0; + blob.UploadFromStream(thumbStream); + } + + image.Dispose(); + thumb.Dispose(); + + } // createThumbnail + private bool ThumbnailCallback() + { + return false; + } // ThumbnailCallback + + internal override void DeleteFile(string fileUrl) + { + try + { + var fileName = Path.GetFileName(fileUrl); + + //delete the main file + var blobName = "files/" +fileName; + var blob = blobContainer.GetBlockBlobReference(blobName); + blob.DeleteIfExists(); + + //delete the thumbnail + blobName = "thumbs/" + fileName; + blob = blobContainer.GetBlockBlobReference(blobName); + blob.DeleteIfExists(); + } + catch + { + //TODO: set error + } + } + } +} \ No newline at end of file diff --git a/TinyFileManager.NET/classes/DirectorySource.cs b/TinyFileManager.NET/classes/DirectorySource.cs new file mode 100644 index 0000000..c2ccca3 --- /dev/null +++ b/TinyFileManager.NET/classes/DirectorySource.cs @@ -0,0 +1,204 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Web; + +namespace TinyFileManager.NET +{ + public class DirectorySource: Source + { + public DirectorySource(string currentPath, string currentLink, bool onlyImages, bool onlyVideos, string physicalPath, string selectFnString, string type) + : base(currentPath, currentLink, onlyImages, onlyVideos, physicalPath, selectFnString, type) + { } + + internal override ArrayList GetLinks() + { + AddFolders(); + AddFiles(); + return arrLinks; + } + private void AddFiles() + { + // load files + var arrFiles = Directory.GetFiles(clsConfig.strUploadPath + this.strCurrPath); + foreach (string strF in arrFiles) + { + var objFItem = new TinyFileManager.NET.clsFileItem(); + objFItem.strName = Path.GetFileNameWithoutExtension(strF); + objFItem.boolIsFolder = false; + //objFItem.intColNum = this.getNextColNum(); + objFItem.strPath = this.strCurrPath + Path.GetFileName(strF); + objFItem.boolIsImage = Helper.isImageFile(Path.GetFileName(strF)); + objFItem.boolIsVideo = Helper.isVideoFile(Path.GetFileName(strF)); + objFItem.boolIsMusic = Helper.isMusicFile(Path.GetFileName(strF)); + objFItem.boolIsMisc = Helper.isMiscFile(Path.GetFileName(strF)); + // get display class type + if (objFItem.boolIsImage) + { + objFItem.strClassType = "2"; + } + else + { + if (objFItem.boolIsMisc) + { + objFItem.strClassType = "3"; + } + else + { + if (objFItem.boolIsMusic) + { + objFItem.strClassType = "5"; + } + else + { + if (objFItem.boolIsVideo) + { + objFItem.strClassType = "4"; + } + else + { + objFItem.strClassType = "1"; + } + } + } + } + // get delete link + if (clsConfig.boolAllowDeleteFile) + { + objFItem.strDeleteLink = ""; + } + else + { + objFItem.strDeleteLink = ""; + } + // get thumbnail image + if (objFItem.boolIsImage) + { + objFItem.strThumbImage = clsConfig.strThumbURL + "/" + objFItem.strPath.Replace('\\', '/'); + } + else + { + if (File.Exists(Directory.GetParent(physicalPath).FullName + "\\img\\ico\\" + Path.GetExtension(strF).TrimStart('.').ToUpper() + ".png")) + { + objFItem.strThumbImage = "img/ico/" + Path.GetExtension(strF).TrimStart('.').ToUpper() + ".png"; + } + else + { + objFItem.strThumbImage = "img/ico/Default.png"; + } + } + objFItem.strDownFormOpen = ""; + objFItem.strDownBtn = ""; + if (objFItem.boolIsImage) + { + objFItem.strPreviewLink = ""; + } + else + { + objFItem.strPreviewLink = ""; + } + objFItem.strLink = "\"140x100\"

" + objFItem.strName + "

"; + + // check to see if it's the type of file we are looking at + if ((this.boolOnlyImage && objFItem.boolIsImage) || (this.boolOnlyVideo && objFItem.boolIsVideo) || (!this.boolOnlyImage && !this.boolOnlyVideo)) + { + this.arrLinks.Add(objFItem); + } + } + } + private void AddFolders() + { + + //load folders + var arrFolders = Directory.GetDirectories(clsConfig.strUploadPath + this.strCurrPath); + foreach (string strF in arrFolders) + { + var objFItem = new TinyFileManager.NET.clsFileItem(); + objFItem.strName = Path.GetFileName(strF); + objFItem.boolIsFolder = true; + //objFItem.intColNum = this.getNextColNum(); + objFItem.strPath = this.strCurrPath + Path.GetFileName(strF); + objFItem.strClassType = "dir"; + if (clsConfig.boolAllowDeleteFolder) + { + objFItem.strDeleteLink = ""; + } + else + { + objFItem.strDeleteLink = ""; + } + objFItem.strThumbImage = "img/ico/folder.png"; + objFItem.strLink = "\"folder\"

" + objFItem.strName + "

"; + this.arrLinks.Add(objFItem); + } + } + + internal override void UploadFile(HttpPostedFile filUpload, string folderName) + { + string strTargetFile; + string strThumbFile; + + //check file was submitted + if ((filUpload != null) && (filUpload.ContentLength > 0)) + { + strTargetFile = clsConfig.strUploadPath + folderName + filUpload.FileName; + strThumbFile = clsConfig.strThumbPath + folderName + filUpload.FileName; + filUpload.SaveAs(strTargetFile); + + if (Helper.isImageFile(strTargetFile)) + { + this.createThumbnail(strTargetFile, strThumbFile); + } + } + } + private void createThumbnail(string strFilename, string strThumbFilename) + { + System.Drawing.Image.GetThumbnailImageAbort objCallback; + System.Drawing.Image objFSImage; + System.Drawing.Image objTNImage; + System.Drawing.RectangleF objRect; + System.Drawing.GraphicsUnit objUnits = System.Drawing.GraphicsUnit.Pixel; + int intHeight = 0; + int intWidth = 0; + + // open image and get dimensions in pixels + objFSImage = System.Drawing.Image.FromFile(strFilename); + objRect = objFSImage.GetBounds(ref objUnits); + + // what are we going to resize to, to fit inside 156x78 + Helper.getProportionalResize(Convert.ToInt32(objRect.Width), Convert.ToInt32(objRect.Height), ref intWidth, ref intHeight); + + // create thumbnail + objCallback = new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback); + objTNImage = objFSImage.GetThumbnailImage(intWidth, intHeight, objCallback, IntPtr.Zero); + + // finish up + objFSImage.Dispose(); + objTNImage.Save(strThumbFilename); + objTNImage.Dispose(); + + } // createThumbnail + private bool ThumbnailCallback() + { + return false; + } // ThumbnailCallback + + internal override void DeleteFile(string fileName) + { + try + { + File.Delete(clsConfig.strUploadPath + "\\" + fileName); + if (File.Exists(clsConfig.strThumbPath + "\\" + fileName)) + { + File.Delete(clsConfig.strThumbPath + "\\" + fileName); + } + } + catch + { + //TODO: set error + } + } + } +} \ No newline at end of file diff --git a/TinyFileManager.NET/classes/Helper.cs b/TinyFileManager.NET/classes/Helper.cs new file mode 100644 index 0000000..c450fea --- /dev/null +++ b/TinyFileManager.NET/classes/Helper.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Web; + +namespace TinyFileManager.NET +{ + public static class Helper + { + public static bool isImageFile(string strFilename) + { + int intPosition; + + intPosition = Array.IndexOf(clsConfig.arrAllowedImageExtensions, Path.GetExtension(strFilename).TrimStart('.')); + return (intPosition > -1); // if > -1, then it was found in the list of image file extensions + } // isImageFile + + public static bool isVideoFile(string strFilename) + { + int intPosition; + + intPosition = Array.IndexOf(clsConfig.arrAllowedVideoExtensions, Path.GetExtension(strFilename).TrimStart('.')); + return (intPosition > -1); // if > -1, then it was found in the list of video file extensions + } // isVideoFile + + public static bool isMusicFile(string strFilename) + { + int intPosition; + + intPosition = Array.IndexOf(clsConfig.arrAllowedMusicExtensions, Path.GetExtension(strFilename).TrimStart('.')); + return (intPosition > -1); // if > -1, then it was found in the list of music file extensions + } // isMusicFile + + public static bool isMiscFile(string strFilename) + { + int intPosition; + + intPosition = Array.IndexOf(clsConfig.arrAllowedMiscExtensions, Path.GetExtension(strFilename).TrimStart('.')); + return (intPosition > -1); // if > -1, then it was found in the list of misc file extensions + } // isMiscFile + + + public static void getProportionalResize(int intOldWidth, int intOldHeight, ref int intNewWidth, ref int intNewHeight) + { + int intHDiff = 0; + int intWDiff = 0; + decimal decProp = 0; + int intTargH = 78; + int intTargW = 156; + + if ((intOldHeight <= intTargH) && (intOldWidth <= intTargW)) + { + // no resize needed + intNewHeight = intOldHeight; + intNewWidth = intOldWidth; + return; + } + + //get the differences between desired and current height and width + intHDiff = intOldHeight - intTargH; + intWDiff = intOldWidth - intTargW; + + //whichever is the bigger difference is the chosen proportion + if (intHDiff > intWDiff) + { + decProp = (decimal)intTargH / (decimal)intOldHeight; + intNewHeight = intTargH; + intNewWidth = Convert.ToInt32(Math.Round(intOldWidth * decProp, 0)); + } + else + { + decProp = (decimal)intTargW / (decimal)intOldWidth; + intNewWidth = intTargW; + intNewHeight = Convert.ToInt32(Math.Round(intOldHeight * decProp, 0)); + } + } // getProportionalResize + } +} \ No newline at end of file diff --git a/TinyFileManager.NET/classes/Source.cs b/TinyFileManager.NET/classes/Source.cs new file mode 100644 index 0000000..f80c432 --- /dev/null +++ b/TinyFileManager.NET/classes/Source.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Web; + +namespace TinyFileManager.NET +{ + public abstract class Source + { + internal string strCurrPath; + internal string strCurrLink; + internal bool boolOnlyImage; + internal bool boolOnlyVideo; + internal ArrayList arrLinks = new ArrayList(); + internal string strApply; + internal string strType; + internal string physicalPath; + + public Source(string currentPath, string currentLink, bool onlyImages, bool onlyVideos, string physicalPath, string selectFnString, string type) + { + strCurrPath = currentPath; + strCurrLink = currentLink; + boolOnlyImage = onlyImages; + boolOnlyVideo = onlyVideos; + this.physicalPath = physicalPath; + strApply = selectFnString; + strType = type; + } + internal abstract ArrayList GetLinks(); + internal abstract void UploadFile(HttpPostedFile filUpload, string folderName); + internal abstract void DeleteFile(string fileName); + } +} diff --git a/TinyFileManager.NET/classes/clsConfig.cs b/TinyFileManager.NET/classes/clsConfig.cs index 32b3711..6edc98c 100644 --- a/TinyFileManager.NET/classes/clsConfig.cs +++ b/TinyFileManager.NET/classes/clsConfig.cs @@ -192,6 +192,64 @@ public static string strAllowedAllExtensions } } + /// + /// Gets the storage mode the file manager is set to. (defaults to directory mode). + /// + public static StorageModeType storageMode + { + get + { + var strMode = Properties.Settings.Default.StorageMode; + var mode = StorageModeType.Directory; + + if (strMode.ToLower() == "azure") mode = StorageModeType.Azure; + + return mode; + } + } + public enum StorageModeType + { + Azure, + Directory + } + + #region Azure info + + /// + /// The connection information to the azure blob store + /// + public static string azureBlobStore + { + get + { + return Properties.Settings.Default.AzureBlobStore; + } + } + + /// + /// The container in the azure blob store used for TFM + /// + public static string azureBlobContainer + { + get + { + return Properties.Settings.Default.AzureBlobContainer; + } + } + + /// + /// The public url used to get files from the the azure blob store + /// + public static string azureBlobUrl + { + get + { + return Properties.Settings.Default.AzureBlobUrl; + } + } + + #endregion + /// /// Returns document root /// @@ -288,7 +346,16 @@ public static bool boolAllowCreateFolder { get { - return Convert.ToBoolean(Properties.Settings.Default.AllowCreateFolder); + bool allow = false; + if (storageMode == StorageModeType.Azure) + { + allow = false; + } + else{ + allow = Convert.ToBoolean(Properties.Settings.Default.AllowCreateFolder); + } + + return allow; } } @@ -299,7 +366,17 @@ public static bool boolAllowDeleteFolder { get { - return Convert.ToBoolean(Properties.Settings.Default.AllowDeleteFolder); + bool allow = false; + if (storageMode == StorageModeType.Azure) + { + allow = false; + } + else + { + allow = Convert.ToBoolean(Properties.Settings.Default.AllowDeleteFolder); + } + + return allow; } } #endregion diff --git a/TinyFileManager.NET/classes/clsFileItem.cs b/TinyFileManager.NET/classes/clsFileItem.cs index 92e8dcb..4c9f4f3 100644 --- a/TinyFileManager.NET/classes/clsFileItem.cs +++ b/TinyFileManager.NET/classes/clsFileItem.cs @@ -22,5 +22,6 @@ public class clsFileItem public string strPreviewLink; public string strThumbImage; public string strDownFormOpen; + public string strDownBtn; } } \ No newline at end of file diff --git a/TinyFileManager.NET/dialog.aspx b/TinyFileManager.NET/dialog.aspx index e7ebc24..e94e5d1 100644 --- a/TinyFileManager.NET/dialog.aspx +++ b/TinyFileManager.NET/dialog.aspx @@ -128,7 +128,7 @@ // if file Response.Write(objF.strDownFormOpen); Response.Write("
"); - Response.Write(""); + Response.Write(objF.strDownBtn); Response.Write(objF.strPreviewLink); Response.Write(objF.strDeleteLink); Response.Write("
"); diff --git a/TinyFileManager.NET/dialog.aspx.cs b/TinyFileManager.NET/dialog.aspx.cs index 2c0a791..00662ce 100644 --- a/TinyFileManager.NET/dialog.aspx.cs +++ b/TinyFileManager.NET/dialog.aspx.cs @@ -77,6 +77,12 @@ protected void Page_Load(object sender, EventArgs e) //setup current link strCurrLink = "dialog.aspx?type=" + this.strType + "&editor=" + this.strEditor + "&lang=" + this.strLang; + Source source; + if (clsConfig.storageMode == clsConfig.StorageModeType.Azure) + source = new AzureSource(strCurrPath, strCurrLink, boolOnlyImage, boolOnlyVideo, Request.PhysicalPath, strApply, strType); + else // (clsConfig.storageMode == "directory") + source = new DirectorySource(strCurrPath, strCurrLink, boolOnlyImage, boolOnlyVideo, Request.PhysicalPath, strApply, strType); + switch (strCmd) { case "debugsettings": @@ -97,6 +103,9 @@ protected void Page_Load(object sender, EventArgs e) Response.Write("ThumbURL: " + clsConfig.strThumbURL + "
"); Response.Write("UploadPath: " + clsConfig.strUploadPath + "
"); Response.Write("UploadURL: " + clsConfig.strUploadURL + "
"); + Response.Write("AzureBlobStore: " + clsConfig.azureBlobStore + "
"); + Response.Write("AzureBlobContainer: " + clsConfig.azureBlobContainer + "
"); + Response.Write("AzureBlobUrl: " + clsConfig.azureBlobUrl + "
"); Response.End(); break; case "createfolder": @@ -120,21 +129,7 @@ protected void Page_Load(object sender, EventArgs e) case "upload": strFolder = Request.Form["folder"] + ""; HttpPostedFile filUpload = Request.Files["file"]; - string strTargetFile; - string strThumbFile; - - //check file was submitted - if ((filUpload != null) && (filUpload.ContentLength > 0)) - { - strTargetFile = clsConfig.strUploadPath + this.strFolder + filUpload.FileName; - strThumbFile = clsConfig.strThumbPath + this.strFolder + filUpload.FileName; - filUpload.SaveAs(strTargetFile); - - if (this.isImageFile(strTargetFile)) - { - this.createThumbnail(strTargetFile, strThumbFile); - } - } + source.UploadFile(filUpload, strFolder); // end response if (Request.Form["fback"] == "true") @@ -160,18 +155,7 @@ protected void Page_Load(object sender, EventArgs e) break; case "delfile": - try - { - File.Delete(clsConfig.strUploadPath + "\\" + this.strFile); - if (File.Exists(clsConfig.strThumbPath + "\\" + this.strFile)) - { - File.Delete(clsConfig.strThumbPath + "\\" + this.strFile); - } - } - catch - { - //TODO: set error - } + source.DeleteFile(strFile); goto default; case "delfolder": @@ -202,115 +186,8 @@ protected void Page_Load(object sender, EventArgs e) this.objFItem.strLink = "\"folder\"

..

"; this.arrLinks.Add(objFItem); } - - //load folders - arrFolders = Directory.GetDirectories(clsConfig.strUploadPath + this.strCurrPath); - foreach (string strF in arrFolders) - { - this.objFItem = new TinyFileManager.NET.clsFileItem(); - this.objFItem.strName = Path.GetFileName(strF); - this.objFItem.boolIsFolder = true; - this.objFItem.intColNum = this.getNextColNum(); - this.objFItem.strPath = this.strCurrPath + Path.GetFileName(strF); - this.objFItem.strClassType = "dir"; - if (clsConfig.boolAllowDeleteFolder) - { - this.objFItem.strDeleteLink = ""; - } - else - { - this.objFItem.strDeleteLink = ""; - } - this.objFItem.strThumbImage = "img/ico/folder.png"; - this.objFItem.strLink = "\"folder\"

" + this.objFItem.strName + "

"; - this.arrLinks.Add(objFItem); - } - - // load files - arrFiles = Directory.GetFiles(clsConfig.strUploadPath + this.strCurrPath); - foreach (string strF in arrFiles) - { - this.objFItem = new TinyFileManager.NET.clsFileItem(); - this.objFItem.strName = Path.GetFileNameWithoutExtension(strF); - this.objFItem.boolIsFolder = false; - this.objFItem.intColNum = this.getNextColNum(); - this.objFItem.strPath = this.strCurrPath + Path.GetFileName(strF); - this.objFItem.boolIsImage = this.isImageFile(Path.GetFileName(strF)); - this.objFItem.boolIsVideo = this.isVideoFile(Path.GetFileName(strF)); - this.objFItem.boolIsMusic = this.isMusicFile(Path.GetFileName(strF)); - this.objFItem.boolIsMisc = this.isMiscFile(Path.GetFileName(strF)); - // get display class type - if (this.objFItem.boolIsImage) - { - this.objFItem.strClassType = "2"; - } - else - { - if (this.objFItem.boolIsMisc) - { - this.objFItem.strClassType = "3"; - } - else - { - if (this.objFItem.boolIsMusic) - { - this.objFItem.strClassType = "5"; - } - else - { - if (this.objFItem.boolIsVideo) - { - this.objFItem.strClassType = "4"; - } - else - { - this.objFItem.strClassType = "1"; - } - } - } - } - // get delete link - if (clsConfig.boolAllowDeleteFile) - { - this.objFItem.strDeleteLink = ""; - } - else - { - this.objFItem.strDeleteLink = ""; - } - // get thumbnail image - if (this.objFItem.boolIsImage) - { - this.objFItem.strThumbImage = clsConfig.strThumbURL + "/" + this.objFItem.strPath.Replace('\\', '/'); - } - else - { - if (File.Exists(Directory.GetParent(Request.PhysicalPath).FullName + "\\img\\ico\\" + Path.GetExtension(strF).TrimStart('.').ToUpper() + ".png")) - { - this.objFItem.strThumbImage = "img/ico/" + Path.GetExtension(strF).TrimStart('.').ToUpper() + ".png"; - } - else - { - this.objFItem.strThumbImage = "img/ico/Default.png"; - } - } - this.objFItem.strDownFormOpen = ""; - if (this.objFItem.boolIsImage) - { - this.objFItem.strPreviewLink = ""; - } - else - { - this.objFItem.strPreviewLink = ""; - } - this.objFItem.strLink = "\"140x100\"

" + this.objFItem.strName + "

"; - - // check to see if it's the type of file we are looking at - if ((this.boolOnlyImage && this.objFItem.boolIsImage) || (this.boolOnlyVideo && this.objFItem.boolIsVideo) || (!this.boolOnlyImage && !this.boolOnlyVideo)) - { - this.arrLinks.Add(objFItem); - } - } // foreach + + this.arrLinks.AddRange(source.GetLinks()); break; } // switch @@ -347,107 +224,8 @@ public string getBreadCrumb() return strRet; } // getBreadCrumb - - private bool isImageFile(string strFilename) - { - int intPosition; - - intPosition = Array.IndexOf(clsConfig.arrAllowedImageExtensions, Path.GetExtension(strFilename).TrimStart('.')); - return (intPosition > -1); // if > -1, then it was found in the list of image file extensions - } // isImageFile - - private bool isVideoFile(string strFilename) - { - int intPosition; - - intPosition = Array.IndexOf(clsConfig.arrAllowedVideoExtensions, Path.GetExtension(strFilename).TrimStart('.')); - return (intPosition > -1); // if > -1, then it was found in the list of video file extensions - } // isVideoFile - - private bool isMusicFile(string strFilename) - { - int intPosition; - - intPosition = Array.IndexOf(clsConfig.arrAllowedMusicExtensions, Path.GetExtension(strFilename).TrimStart('.')); - return (intPosition > -1); // if > -1, then it was found in the list of music file extensions - } // isMusicFile - - private bool isMiscFile(string strFilename) - { - int intPosition; - - intPosition = Array.IndexOf(clsConfig.arrAllowedMiscExtensions, Path.GetExtension(strFilename).TrimStart('.')); - return (intPosition > -1); // if > -1, then it was found in the list of misc file extensions - } // isMiscFile - - private void createThumbnail(string strFilename, string strThumbFilename) - { - System.Drawing.Image.GetThumbnailImageAbort objCallback; - System.Drawing.Image objFSImage; - System.Drawing.Image objTNImage; - System.Drawing.RectangleF objRect; - System.Drawing.GraphicsUnit objUnits = System.Drawing.GraphicsUnit.Pixel; - int intHeight = 0; - int intWidth = 0; - - // open image and get dimensions in pixels - objFSImage = System.Drawing.Image.FromFile(strFilename); - objRect = objFSImage.GetBounds(ref objUnits); - - // what are we going to resize to, to fit inside 156x78 - getProportionalResize(Convert.ToInt32(objRect.Width), Convert.ToInt32(objRect.Height), ref intWidth, ref intHeight); - - // create thumbnail - objCallback = new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback); - objTNImage = objFSImage.GetThumbnailImage(intWidth, intHeight, objCallback, IntPtr.Zero); - - // finish up - objFSImage.Dispose(); - objTNImage.Save(strThumbFilename); - objTNImage.Dispose(); - - } // createThumbnail - - private void getProportionalResize(int intOldWidth, int intOldHeight, ref int intNewWidth, ref int intNewHeight) - { - int intHDiff = 0; - int intWDiff = 0; - decimal decProp = 0; - int intTargH = 78; - int intTargW = 156; - - if ((intOldHeight <= intTargH) && (intOldWidth <= intTargW)) - { - // no resize needed - intNewHeight = intOldHeight; - intNewWidth = intOldWidth; - return; - } - - //get the differences between desired and current height and width - intHDiff = intOldHeight - intTargH; - intWDiff = intOldWidth - intTargW; - - //whichever is the bigger difference is the chosen proportion - if (intHDiff > intWDiff) - { - decProp = (decimal)intTargH / (decimal)intOldHeight; - intNewHeight = intTargH; - intNewWidth = Convert.ToInt32(Math.Round(intOldWidth * decProp, 0)); - } - else - { - decProp = (decimal)intTargW / (decimal)intOldWidth; - intNewWidth = intTargW; - intNewHeight = Convert.ToInt32(Math.Round(intOldHeight * decProp, 0)); - } - } // getProportionalResize - - private bool ThumbnailCallback() - { - return false; - } // ThumbnailCallback - + + public string getEndOfLine(int intColNum) { if (intColNum == 6) diff --git a/TinyFileManager.NET/packages.config b/TinyFileManager.NET/packages.config new file mode 100644 index 0000000..b699cc7 --- /dev/null +++ b/TinyFileManager.NET/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file