Class MessageParser<T> (3.23.0)

public sealed class MessageParser<T> : MessageParser where T : IMessage<T>

A parser for a specific message type.

Inheritance

object > MessageParser > MessageParser<T>

Namespace

Google.Protobuf

Assembly

Google.Protobuf.dll

Type Parameter

Name Description
T

The type of message to be parsed.

Remarks

This delegates most behavior to the MergeFrom(CodedInputStream) implementation within the original type, but provides convenient overloads to parse from a variety of sources.

Most applications will never need to create their own instances of this type; instead, use the static Parser property of a generated message type to obtain a parser for that type.

Constructors

MessageParser(Func<T>)

public MessageParser(Func<T> factory)

Creates a new parser.

Parameter
Name Description
factory Func

Function to invoke when a new, empty message is required.

Remarks

The factory method is effectively an optimization over using a generic constraint to require a parameterless constructor: delegates are significantly faster to execute.

Methods

ParseDelimitedFrom(Stream)

public T ParseDelimitedFrom(Stream input)

Parses a length-delimited message from the given stream.

Parameter
Name Description
input Stream

The stream to parse.

Returns
Type Description
T

The parsed message.

Remarks

The stream is expected to contain a length and then the data. Only the amount of data specified by the length will be consumed.

ParseFrom(ByteString)

public T ParseFrom(ByteString data)

Parses a message from the given byte string.

Parameter
Name Description
data ByteString

The data to parse.

Returns
Type Description
T

The parsed message.

ParseFrom(CodedInputStream)

public T ParseFrom(CodedInputStream input)

Parses a message from the given coded input stream.

Parameter
Name Description
input CodedInputStream

The stream to parse.

Returns
Type Description
T

The parsed message.

ParseFrom(ReadOnlySequence<byte>)

public T ParseFrom(ReadOnlySequence<byte> data)

Parses a message from the given sequence.

Parameter
Name Description
data ReadOnlySequencebyte

The data to parse.

Returns
Type Description
T

The parsed message.

ParseFrom(byte[])

public T ParseFrom(byte[] data)

Parses a message from a byte array.

Parameter
Name Description
data byte

The byte array containing the message. Must not be null.

Returns
Type Description
T

The newly parsed message.

ParseFrom(byte[], int, int)

public T ParseFrom(byte[] data, int offset, int length)

Parses a message from a byte array slice.

Parameters
Name Description
data byte

The byte array containing the message. Must not be null.

offset int

The offset of the slice to parse.

length int

The length of the slice to parse.

Returns
Type Description
T

The newly parsed message.

ParseFrom(Stream)

public T ParseFrom(Stream input)

Parses a message from the given stream.

Parameter
Name Description
input Stream

The stream to parse.

Returns
Type Description
T

The parsed message.

ParseFrom(ReadOnlySpan<byte>)

public T ParseFrom(ReadOnlySpan<byte> data)

Parses a message from the given span.

Parameter
Name Description
data ReadOnlySpanbyte

The data to parse.

Returns
Type Description
T

The parsed message.

ParseJson(string)

public T ParseJson(string json)

Parses a message from the given JSON.

Parameter
Name Description
json string

The JSON to parse.

Returns
Type Description
T

The parsed message.

Exceptions
Type Description
InvalidJsonException

The JSON does not comply with RFC 7159

InvalidProtocolBufferException

The JSON does not represent a Protocol Buffers message correctly

WithDiscardUnknownFields(bool)

public MessageParser<T> WithDiscardUnknownFields(bool discardUnknownFields)

Creates a new message parser which optionally discards unknown fields when parsing.

Parameter
Name Description
discardUnknownFields bool

Whether or not to discard unknown fields when parsing.

Returns
Type Description
MessageParser

A newly configured message parser.

WithExtensionRegistry(ExtensionRegistry)

public MessageParser<T> WithExtensionRegistry(ExtensionRegistry registry)

Creates a new message parser which registers extensions from the specified registry upon creating the message instance

Parameter
Name Description
registry ExtensionRegistry

The extensions to register

Returns
Type Description
MessageParser

A newly configured message parser.