Google.Protobuf.Reflection.MessageOptions
public sealed class MessageOptions : IExtendableMessage<MessageOptions>, IMessage<MessageOptions>, IMessage, IEquatable<MessageOptions>, IDeepCloneable<MessageOptions>, IBufferMessage
Field number for the "deprecated" field.
Field number for the "deprecated_legacy_json_field_conflicts" field.
Field number for the "features" field.
Field number for the "map_entry" field.
Field number for the "message_set_wire_format" field.
Field number for the "no_standard_descriptor_accessor" field.
Field number for the "uninterpreted_option" field.
Is this message deprecated?
Depending on the target platform, this can emit Deprecated annotations
for the message, or it will be completely ignored; in the very least,
this is a formalization for deprecating messages.
Enable the legacy handling of JSON field name conflicts. This lowercases
and strips underscored from the fields before comparison in proto3 only.
The new behavior takes `json_name` into account and applies to proto2 as
well.
This should only be used as a temporary measure against broken builds due
to the change in behavior for JSON field name conflicts.
TODO This is legacy behavior we plan to remove once downstream
teams have had time to migrate.
Any features defined in the specific edition.
WARNING: This field should only be used by protobuf plugins or special
cases like the proto compiler. Other uses are discouraged and
developers should rely on the protoreflect APIs for their client language.
Gets whether the "deprecated" field is set
Gets whether the "deprecated_legacy_json_field_conflicts" field is set
Gets whether the "map_entry" field is set
Gets whether the "message_set_wire_format" field is set
Gets whether the "no_standard_descriptor_accessor" field is set
Whether the message is an automatically generated map entry type for the
maps field.
For maps fields:
map<KeyType, ValueType> map_field = 1;
The parsed descriptor looks like:
message MapFieldEntry {
option map_entry = true;
optional KeyType key = 1;
optional ValueType value = 2;
}
repeated MapFieldEntry map_field = 1;
Implementations may choose not to generate the map_entry=true message, but
use a native map in the target language to hold the keys and values.
The reflection APIs in such implementations still need to work as
if the field is a repeated message field.
NOTE: Do not set the option in .proto files. Always use the maps syntax
instead. The option should only be implicitly set by the proto compiler
parser.
Set true to use the old proto1 MessageSet wire format for extensions.
This is provided for backwards-compatibility with the MessageSet wire
format. You should not use this for any other reason: It's less
efficient, has fewer features, and is more complicated.
The message must be defined exactly as follows:
message Foo {
option message_set_wire_format = true;
extensions 4 to max;
}
Note that the message cannot have any defined fields; MessageSets only
have extensions.
All extensions of your type must be singular messages; e.g. they cannot
be int32s, enums, or repeated messages.
Because this is an option, the above two restrictions are not enforced by
the protocol compiler.
Disables the generation of the standard "descriptor()" accessor, which can
conflict with a field of the same name. This is meant to make migration
from proto1 easier; new code should avoid fields named "descriptor".
The parser stores options it doesn't recognize here. See above.
public MessageOptions()
Clears the value of the "deprecated" field
Clears the value of the "deprecated_legacy_json_field_conflicts" field
Clears the value of the "map_entry" field
Clears the value of the "message_set_wire_format" field
Clears the value of the "no_standard_descriptor_accessor" field
public RepeatedField<TValue> GetExtension<TValue>(RepeatedExtension<MessageOptions, TValue> extension)
public RepeatedField<TValue> GetOrInitializeExtension<TValue>(RepeatedExtension<MessageOptions, TValue> extension)