Show / Hide Table of Contents

Class FieldOptions

Inheritance
System.Object
FieldOptions
Implements
IExtendableMessage<FieldOptions>
IMessage<FieldOptions>
IMessage
System.IEquatable<FieldOptions>
IDeepCloneable<FieldOptions>
Inherited Members
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetType()
System.Object.MemberwiseClone()
Namespace: Google.Protobuf.Reflection
Assembly: Google.Protobuf.dll
Syntax
public sealed class FieldOptions : IExtendableMessage<FieldOptions>, IMessage<FieldOptions>, IMessage, IEquatable<FieldOptions>, IDeepCloneable<FieldOptions>

Constructors

FieldOptions()

Declaration
public FieldOptions()

FieldOptions(FieldOptions)

Declaration
public FieldOptions(FieldOptions other)
Parameters
Type Name Description
FieldOptions other

Fields

CtypeFieldNumber

Field number for the "ctype" field.

Declaration
public const int CtypeFieldNumber = 1
Field Value
Type Description
System.Int32

DeprecatedFieldNumber

Field number for the "deprecated" field.

Declaration
public const int DeprecatedFieldNumber = 3
Field Value
Type Description
System.Int32

JstypeFieldNumber

Field number for the "jstype" field.

Declaration
public const int JstypeFieldNumber = 6
Field Value
Type Description
System.Int32

LazyFieldNumber

Field number for the "lazy" field.

Declaration
public const int LazyFieldNumber = 5
Field Value
Type Description
System.Int32

PackedFieldNumber

Field number for the "packed" field.

Declaration
public const int PackedFieldNumber = 2
Field Value
Type Description
System.Int32

UninterpretedOptionFieldNumber

Field number for the "uninterpreted_option" field.

Declaration
public const int UninterpretedOptionFieldNumber = 999
Field Value
Type Description
System.Int32

WeakFieldNumber

Field number for the "weak" field.

Declaration
public const int WeakFieldNumber = 10
Field Value
Type Description
System.Int32

Properties

Ctype

The ctype option instructs the C++ code generator to use a different representation of the field than it normally would. See the specific options below. This option is not yet implemented in the open source release -- sorry, we'll try to include it in a future version!

Declaration
public FieldOptions.Types.CType Ctype { get; set; }
Property Value
Type Description
FieldOptions.Types.CType

Deprecated

Is this field deprecated? Depending on the target platform, this can emit Deprecated annotations for accessors, or it will be completely ignored; in the very least, this is a formalization for deprecating fields.

Declaration
public bool Deprecated { get; set; }
Property Value
Type Description
System.Boolean

Descriptor

Declaration
public static MessageDescriptor Descriptor { get; }
Property Value
Type Description
MessageDescriptor

HasCtype

Gets whether the "ctype" field is set

Declaration
public bool HasCtype { get; }
Property Value
Type Description
System.Boolean

HasDeprecated

Gets whether the "deprecated" field is set

Declaration
public bool HasDeprecated { get; }
Property Value
Type Description
System.Boolean

HasJstype

Gets whether the "jstype" field is set

Declaration
public bool HasJstype { get; }
Property Value
Type Description
System.Boolean

HasLazy

Gets whether the "lazy" field is set

Declaration
public bool HasLazy { get; }
Property Value
Type Description
System.Boolean

HasPacked

Gets whether the "packed" field is set

Declaration
public bool HasPacked { get; }
Property Value
Type Description
System.Boolean

HasWeak

Gets whether the "weak" field is set

Declaration
public bool HasWeak { get; }
Property Value
Type Description
System.Boolean

Jstype

The jstype option determines the JavaScript type used for values of the field. The option is permitted only for 64 bit integral and fixed types (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING is represented as JavaScript string, which avoids loss of precision that can happen when a large value is converted to a floating point JavaScript. Specifying JS_NUMBER for the jstype causes the generated JavaScript code to use the JavaScript "number" type. The behavior of the default option JS_NORMAL is implementation dependent.

This option is an enum to permit additional types to be added, e.g. goog.math.Integer.

Declaration
public FieldOptions.Types.JSType Jstype { get; set; }
Property Value
Type Description
FieldOptions.Types.JSType

Lazy

Should this field be parsed lazily? Lazy applies only to message-type fields. It means that when the outer message is initially parsed, the inner message's contents will not be parsed but instead stored in encoded form. The inner message will actually be parsed when it is first accessed.

This is only a hint. Implementations are free to choose whether to use eager or lazy parsing regardless of the value of this option. However, setting this option true suggests that the protocol author believes that using lazy parsing on this field is worth the additional bookkeeping overhead typically needed to implement it.

This option does not affect the public interface of any generated code; all method signatures remain the same. Furthermore, thread-safety of the interface is not affected by this option; const methods remain safe to call from multiple threads concurrently, while non-const methods continue to require exclusive access.

Note that implementations may choose not to check required fields within a lazy sub-message. That is, calling IsInitialized() on the outer message may return true even if the inner message has missing required fields. This is necessary because otherwise the inner message would have to be parsed in order to perform the check, defeating the purpose of lazy parsing. An implementation which chooses not to check required fields must be consistent about it. That is, for any particular sub-message, the implementation must either always check its required fields, or never check its required fields, regardless of whether or not the message has been parsed.

Declaration
public bool Lazy { get; set; }
Property Value
Type Description
System.Boolean

Packed

The packed option can be enabled for repeated primitive fields to enable a more efficient representation on the wire. Rather than repeatedly writing the tag and type for each element, the entire array is encoded as a single length-delimited blob. In proto3, only explicit setting it to false will avoid using packed encoding.

Declaration
public bool Packed { get; set; }
Property Value
Type Description
System.Boolean

Parser

Declaration
public static MessageParser<FieldOptions> Parser { get; }
Property Value
Type Description
MessageParser<FieldOptions>

UninterpretedOption

The parser stores options it doesn't recognize here. See above.

Declaration
public RepeatedField<UninterpretedOption> UninterpretedOption { get; }
Property Value
Type Description
RepeatedField<UninterpretedOption>

Weak

For Google-internal migration only. Do not use.

Declaration
public bool Weak { get; set; }
Property Value
Type Description
System.Boolean

Methods

CalculateSize()

Declaration
public int CalculateSize()
Returns
Type Description
System.Int32
Implements
IMessage.CalculateSize()

ClearCtype()

Clears the value of the "ctype" field

Declaration
public void ClearCtype()

ClearDeprecated()

Clears the value of the "deprecated" field

Declaration
public void ClearDeprecated()

ClearExtension<TValue>(Extension<FieldOptions, TValue>)

Declaration
public void ClearExtension<TValue>(Extension<FieldOptions, TValue> extension)
Parameters
Type Name Description
Extension<FieldOptions, TValue> extension
Type Parameters
Name Description
TValue
Implements
IExtendableMessage<T>.ClearExtension<TValue>(Extension<T, TValue>)

ClearExtension<TValue>(RepeatedExtension<FieldOptions, TValue>)

Declaration
public void ClearExtension<TValue>(RepeatedExtension<FieldOptions, TValue> extension)
Parameters
Type Name Description
RepeatedExtension<FieldOptions, TValue> extension
Type Parameters
Name Description
TValue
Implements
IExtendableMessage<T>.ClearExtension<TValue>(RepeatedExtension<T, TValue>)

ClearJstype()

Clears the value of the "jstype" field

Declaration
public void ClearJstype()

ClearLazy()

Clears the value of the "lazy" field

Declaration
public void ClearLazy()

ClearPacked()

Clears the value of the "packed" field

Declaration
public void ClearPacked()

ClearWeak()

Clears the value of the "weak" field

Declaration
public void ClearWeak()

Clone()

Declaration
public FieldOptions Clone()
Returns
Type Description
FieldOptions
Implements
IDeepCloneable<T>.Clone()

Equals(FieldOptions)

Declaration
public bool Equals(FieldOptions other)
Parameters
Type Name Description
FieldOptions other
Returns
Type Description
System.Boolean
Implements
System.IEquatable<T>.Equals(T)

Equals(Object)

Declaration
public override bool Equals(object other)
Parameters
Type Name Description
System.Object other
Returns
Type Description
System.Boolean
Overrides
System.Object.Equals(System.Object)

GetExtension<TValue>(Extension<FieldOptions, TValue>)

Declaration
public TValue GetExtension<TValue>(Extension<FieldOptions, TValue> extension)
Parameters
Type Name Description
Extension<FieldOptions, TValue> extension
Returns
Type Description
TValue
Type Parameters
Name Description
TValue
Implements
IExtendableMessage<T>.GetExtension<TValue>(Extension<T, TValue>)

GetExtension<TValue>(RepeatedExtension<FieldOptions, TValue>)

Declaration
public RepeatedField<TValue> GetExtension<TValue>(RepeatedExtension<FieldOptions, TValue> extension)
Parameters
Type Name Description
RepeatedExtension<FieldOptions, TValue> extension
Returns
Type Description
RepeatedField<TValue>
Type Parameters
Name Description
TValue
Implements
IExtendableMessage<T>.GetExtension<TValue>(RepeatedExtension<T, TValue>)

GetHashCode()

Declaration
public override int GetHashCode()
Returns
Type Description
System.Int32
Overrides
System.Object.GetHashCode()

GetOrInitializeExtension<TValue>(RepeatedExtension<FieldOptions, TValue>)

Declaration
public RepeatedField<TValue> GetOrInitializeExtension<TValue>(RepeatedExtension<FieldOptions, TValue> extension)
Parameters
Type Name Description
RepeatedExtension<FieldOptions, TValue> extension
Returns
Type Description
RepeatedField<TValue>
Type Parameters
Name Description
TValue
Implements
IExtendableMessage<T>.GetOrInitializeExtension<TValue>(RepeatedExtension<T, TValue>)

HasExtension<TValue>(Extension<FieldOptions, TValue>)

Declaration
public bool HasExtension<TValue>(Extension<FieldOptions, TValue> extension)
Parameters
Type Name Description
Extension<FieldOptions, TValue> extension
Returns
Type Description
System.Boolean
Type Parameters
Name Description
TValue
Implements
IExtendableMessage<T>.HasExtension<TValue>(Extension<T, TValue>)

MergeFrom(CodedInputStream)

Declaration
public void MergeFrom(CodedInputStream input)
Parameters
Type Name Description
CodedInputStream input
Implements
IMessage.MergeFrom(CodedInputStream)

MergeFrom(FieldOptions)

Declaration
public void MergeFrom(FieldOptions other)
Parameters
Type Name Description
FieldOptions other
Implements
IMessage<T>.MergeFrom(T)

SetExtension<TValue>(Extension<FieldOptions, TValue>, TValue)

Declaration
public void SetExtension<TValue>(Extension<FieldOptions, TValue> extension, TValue value)
Parameters
Type Name Description
Extension<FieldOptions, TValue> extension
TValue value
Type Parameters
Name Description
TValue
Implements
IExtendableMessage<T>.SetExtension<TValue>(Extension<T, TValue>, TValue)

ToString()

Declaration
public override string ToString()
Returns
Type Description
System.String
Overrides
System.Object.ToString()

WriteTo(CodedOutputStream)

Declaration
public void WriteTo(CodedOutputStream output)
Parameters
Type Name Description
CodedOutputStream output
Implements
IMessage.WriteTo(CodedOutputStream)

Explicit Interface Implementations

IMessage.Descriptor

Declaration
MessageDescriptor IMessage.Descriptor { get; }
Returns
Type Description
MessageDescriptor
Implements
IMessage.Descriptor

Extension Methods

MessageExtensions.MergeFrom(IMessage, Byte[])
MessageExtensions.MergeFrom(IMessage, Byte[], Int32, Int32)
MessageExtensions.MergeFrom(IMessage, ByteString)
MessageExtensions.MergeFrom(IMessage, Stream)
MessageExtensions.MergeDelimitedFrom(IMessage, Stream)
MessageExtensions.ToByteArray(IMessage)
MessageExtensions.WriteTo(IMessage, Stream)
MessageExtensions.WriteDelimitedTo(IMessage, Stream)
MessageExtensions.ToByteString(IMessage)
MessageExtensions.IsInitialized(IMessage)
Back to top