Show / Hide Table of Contents

    Class DeserializationContext

    Provides access to the payload being deserialized when deserializing messages.

    Inheritance
    System.Object
    DeserializationContext
    Inherited Members
    System.Object.Equals(System.Object)
    System.Object.Equals(System.Object, System.Object)
    System.Object.GetHashCode()
    System.Object.GetType()
    System.Object.MemberwiseClone()
    System.Object.ReferenceEquals(System.Object, System.Object)
    System.Object.ToString()
    Namespace: Grpc.Core
    Assembly: Grpc.Core.dll
    Syntax
    public abstract class DeserializationContext

    Properties

    PayloadLength

    Get the total length of the payload in bytes.

    Declaration
    public abstract int PayloadLength { get; }
    Property Value
    Type Description
    System.Int32

    Methods

    PayloadAsNewBuffer()

    Gets the entire payload as a newly allocated byte array. Once the byte array is returned, the byte array becomes owned by the caller and won't be ever accessed or reused by gRPC again. NOTE: Obtaining the buffer as a newly allocated byte array is the simplest way of accessing the payload, but it can have important consequences in high-performance scenarios. In particular, using this method usually requires copying of the entire buffer one extra time. Also, allocating a new buffer each time can put excessive pressure on GC, especially if the payload is more than 86700 bytes large (which means the newly allocated buffer will be placed in LOH, and LOH object can only be garbage collected via a full ("stop the world") GC run). NOTE: Deserializers are expected not to call this method more than once per received message (as there is no practical reason for doing so) and DeserializationContext implementations are free to assume so.

    Declaration
    public virtual byte[] PayloadAsNewBuffer()
    Returns
    Type Description
    System.Byte[]

    byte array containing the entire payload.

    Back to top Generated by DocFX