Class FieldDescriptor
Descriptor for a field or extension within a message in a .proto file.
Inherited Members
Namespace: Google.Protobuf.Reflection
Assembly: Google.Protobuf.dll
Syntax
public sealed class FieldDescriptor : DescriptorBase, IDescriptor, IComparable<FieldDescriptor>
Properties
Accessor
Returns the accessor for this field.
Declaration
public IFieldAccessor Accessor { get; }
Property Value
| Type | Description |
|---|---|
| IFieldAccessor |
Remarks
While a FieldDescriptor describes the field, it does not provide any way of obtaining or changing the value of the field within a specific message; that is the responsibility of the accessor.
In descriptors for generated code, the value returned by this property will be non-null for all regular fields. However, if a message containing a map field is introspected, the list of nested messages will include an auto-generated nested key/value pair message for the field. This is not represented in any generated type, and the value of the map field itself is represented by a dictionary in the reflection API. There are never instances of those "hidden" messages, so no accessor is provided and this property will return null.
In dynamically loaded descriptors, the value returned by this property will current be null; if and when dynamic messages are supported, it will return a suitable accessor to work with them.
ContainingOneof
Returns the oneof containing this field, or null if it is not part of a oneof.
Declaration
public OneofDescriptor ContainingOneof { get; }
Property Value
| Type | Description |
|---|---|
| OneofDescriptor |
ContainingType
Get the field's containing message type.
Declaration
public MessageDescriptor ContainingType { get; }
Property Value
| Type | Description |
|---|---|
| MessageDescriptor |
CustomOptions
The (possibly empty) set of custom options for this field.
Declaration
public CustomOptions CustomOptions { get; }
Property Value
| Type | Description |
|---|---|
| CustomOptions |
EnumType
For enum fields, returns the field's type.
Declaration
public EnumDescriptor EnumType { get; }
Property Value
| Type | Description |
|---|---|
| EnumDescriptor |
FieldNumber
Returns the field number declared in the proto file.
Declaration
public int FieldNumber { get; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
FieldType
Returns the type of the field.
Declaration
public FieldType FieldType { get; }
Property Value
| Type | Description |
|---|---|
| FieldType |
IsMap
Returns true if this field is a map field; false otherwise.
Declaration
public bool IsMap { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
IsPacked
Returns true if this field is a packed, repeated field; false otherwise.
Declaration
public bool IsPacked { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
IsRepeated
Returns true if this field is a repeated field; false otherwise.
Declaration
public bool IsRepeated { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
IsRequired
Returns true if this field is a required field; false otherwise.
Declaration
public bool IsRequired { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
JsonName
The effective JSON name for this field. This is usually the lower-camel-cased form of the field name,
but can be overridden using the json_name option in the .proto file.
Declaration
public string JsonName { get; }
Property Value
| Type | Description |
|---|---|
| System.String |
MessageType
For embedded message and group fields, returns the field's type.
Declaration
public MessageDescriptor MessageType { get; }
Property Value
| Type | Description |
|---|---|
| MessageDescriptor |
Name
The brief name of the descriptor's target.
Declaration
public override string Name { get; }
Property Value
| Type | Description |
|---|---|
| System.String |
Overrides
Methods
CompareTo(FieldDescriptor)
Compares this descriptor with another one, ordering in "canonical" order
which simply means ascending order by field number. other
must be a field of the same type, i.e. the ContainingType of
both fields must be the same.
Declaration
public int CompareTo(FieldDescriptor other)
Parameters
| Type | Name | Description |
|---|---|---|
| FieldDescriptor | other |
Returns
| Type | Description |
|---|---|
| System.Int32 |