public sealed class MessageParser<T> : MessageParser where T : IMessage<T>A parser for a specific message type.
Namespace
Google.ProtobufAssembly
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 | FuncFunction to invoke when a new, empty message is required. | 
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 | StreamThe stream to parse. | 
| Returns | |
|---|---|
| Type | Description | 
| T | The parsed message. | 
The stream is expected to contain a length and then the data. Only the amount of data specified by the length will be consumed.
ParseFrom(ByteString)
public T ParseFrom(ByteString data)Parses a message from the given byte string.
| Parameter | |
|---|---|
| Name | Description | 
| data | ByteStringThe 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 | CodedInputStreamThe 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 | ReadOnlySequencebyteThe 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 | byteThe 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 | byteThe byte array containing the message. Must not be null. | 
| offset | intThe offset of the slice to parse. | 
| length | intThe 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 | StreamThe 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 | ReadOnlySpanbyteThe 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 | stringThe 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 | boolWhether 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 | ExtensionRegistryThe extensions to register | 
| Returns | |
|---|---|
| Type | Description | 
| MessageParser | A newly configured message parser. |