Class FileOptions (3.27.1)

public sealed class FileOptions : IExtendableMessage<FileOptions>, IMessage<FileOptions>, IEquatable<FileOptions>, IDeepCloneable<FileOptions>, IBufferMessage, IMessage

Inheritance

object > FileOptions

Namespace

Google.Protobuf.Reflection

Assembly

Google.Protobuf.dll

Constructors

FileOptions()

public FileOptions()

FileOptions(FileOptions)

public FileOptions(FileOptions other)
Parameter
Name Description
other FileOptions

Fields

CcEnableArenasFieldNumber

public const int CcEnableArenasFieldNumber = 31

Field number for the "cc_enable_arenas" field.

Field Value
Type Description
int

CcGenericServicesFieldNumber

public const int CcGenericServicesFieldNumber = 16

Field number for the "cc_generic_services" field.

Field Value
Type Description
int

CsharpNamespaceFieldNumber

public const int CsharpNamespaceFieldNumber = 37

Field number for the "csharp_namespace" field.

Field Value
Type Description
int

DeprecatedFieldNumber

public const int DeprecatedFieldNumber = 23

Field number for the "deprecated" field.

Field Value
Type Description
int

FeaturesFieldNumber

public const int FeaturesFieldNumber = 50

Field number for the "features" field.

Field Value
Type Description
int

GoPackageFieldNumber

public const int GoPackageFieldNumber = 11

Field number for the "go_package" field.

Field Value
Type Description
int

JavaGenerateEqualsAndHashFieldNumber

public const int JavaGenerateEqualsAndHashFieldNumber = 20

Field number for the "java_generate_equals_and_hash" field.

Field Value
Type Description
int

JavaGenericServicesFieldNumber

public const int JavaGenericServicesFieldNumber = 17

Field number for the "java_generic_services" field.

Field Value
Type Description
int

JavaMultipleFilesFieldNumber

public const int JavaMultipleFilesFieldNumber = 10

Field number for the "java_multiple_files" field.

Field Value
Type Description
int

JavaOuterClassnameFieldNumber

public const int JavaOuterClassnameFieldNumber = 8

Field number for the "java_outer_classname" field.

Field Value
Type Description
int

JavaPackageFieldNumber

public const int JavaPackageFieldNumber = 1

Field number for the "java_package" field.

Field Value
Type Description
int

JavaStringCheckUtf8FieldNumber

public const int JavaStringCheckUtf8FieldNumber = 27

Field number for the "java_string_check_utf8" field.

Field Value
Type Description
int

ObjcClassPrefixFieldNumber

public const int ObjcClassPrefixFieldNumber = 36

Field number for the "objc_class_prefix" field.

Field Value
Type Description
int

OptimizeForFieldNumber

public const int OptimizeForFieldNumber = 9

Field number for the "optimize_for" field.

Field Value
Type Description
int

PhpClassPrefixFieldNumber

public const int PhpClassPrefixFieldNumber = 40

Field number for the "php_class_prefix" field.

Field Value
Type Description
int

PhpMetadataNamespaceFieldNumber

public const int PhpMetadataNamespaceFieldNumber = 44

Field number for the "php_metadata_namespace" field.

Field Value
Type Description
int

PhpNamespaceFieldNumber

public const int PhpNamespaceFieldNumber = 41

Field number for the "php_namespace" field.

Field Value
Type Description
int

PyGenericServicesFieldNumber

public const int PyGenericServicesFieldNumber = 18

Field number for the "py_generic_services" field.

Field Value
Type Description
int

RubyPackageFieldNumber

public const int RubyPackageFieldNumber = 45

Field number for the "ruby_package" field.

Field Value
Type Description
int

SwiftPrefixFieldNumber

public const int SwiftPrefixFieldNumber = 39

Field number for the "swift_prefix" field.

Field Value
Type Description
int

UninterpretedOptionFieldNumber

public const int UninterpretedOptionFieldNumber = 999

Field number for the "uninterpreted_option" field.

Field Value
Type Description
int

Properties

CcEnableArenas

public bool CcEnableArenas { get; set; }

Enables the use of arenas for the proto messages in this file. This applies only to generated classes for C++.

Property Value
Type Description
bool

CcGenericServices

public bool CcGenericServices { get; set; }

Should generic services be generated in each language? "Generic" services are not specific to any particular RPC system. They are generated by the main code generators in each language (without additional plugins). Generic services were the only kind of service generation supported by early versions of google.protobuf.

Generic services are now considered deprecated in favor of using plugins that generate code specific to your particular RPC system. Therefore, these default to false. Old code which depends on generic services should explicitly set them to true.

Property Value
Type Description
bool

CsharpNamespace

public string CsharpNamespace { get; set; }

Namespace for generated classes; defaults to the package.

Property Value
Type Description
string

Deprecated

public bool Deprecated { get; set; }

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

Property Value
Type Description
bool

Descriptor

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

Features

public FeatureSet Features { get; set; }

Any features defined in the specific edition.

Property Value
Type Description
FeatureSet

GoPackage

public string GoPackage { get; set; }

Sets the Go package where structs generated from this .proto will be placed. If omitted, the Go package will be derived from the following:

  • The basename of the package import path, if provided.
  • Otherwise, the package statement in the .proto file, if present.
  • Otherwise, the basename of the .proto file, without extension.
Property Value
Type Description
string

HasCcEnableArenas

public bool HasCcEnableArenas { get; }

Gets whether the "cc_enable_arenas" field is set

Property Value
Type Description
bool

HasCcGenericServices

public bool HasCcGenericServices { get; }

Gets whether the "cc_generic_services" field is set

Property Value
Type Description
bool

HasCsharpNamespace

public bool HasCsharpNamespace { get; }

Gets whether the "csharp_namespace" field is set

Property Value
Type Description
bool

HasDeprecated

public bool HasDeprecated { get; }

Gets whether the "deprecated" field is set

Property Value
Type Description
bool

HasGoPackage

public bool HasGoPackage { get; }

Gets whether the "go_package" field is set

Property Value
Type Description
bool

HasJavaGenerateEqualsAndHash

[Obsolete]
public bool HasJavaGenerateEqualsAndHash { get; }

Gets whether the "java_generate_equals_and_hash" field is set

Property Value
Type Description
bool

HasJavaGenericServices

public bool HasJavaGenericServices { get; }

Gets whether the "java_generic_services" field is set

Property Value
Type Description
bool

HasJavaMultipleFiles

public bool HasJavaMultipleFiles { get; }

Gets whether the "java_multiple_files" field is set

Property Value
Type Description
bool

HasJavaOuterClassname

public bool HasJavaOuterClassname { get; }

Gets whether the "java_outer_classname" field is set

Property Value
Type Description
bool

HasJavaPackage

public bool HasJavaPackage { get; }

Gets whether the "java_package" field is set

Property Value
Type Description
bool

HasJavaStringCheckUtf8

public bool HasJavaStringCheckUtf8 { get; }

Gets whether the "java_string_check_utf8" field is set

Property Value
Type Description
bool

HasObjcClassPrefix

public bool HasObjcClassPrefix { get; }

Gets whether the "objc_class_prefix" field is set

Property Value
Type Description
bool

HasOptimizeFor

public bool HasOptimizeFor { get; }

Gets whether the "optimize_for" field is set

Property Value
Type Description
bool

HasPhpClassPrefix

public bool HasPhpClassPrefix { get; }

Gets whether the "php_class_prefix" field is set

Property Value
Type Description
bool

HasPhpMetadataNamespace

public bool HasPhpMetadataNamespace { get; }

Gets whether the "php_metadata_namespace" field is set

Property Value
Type Description
bool

HasPhpNamespace

public bool HasPhpNamespace { get; }

Gets whether the "php_namespace" field is set

Property Value
Type Description
bool

HasPyGenericServices

public bool HasPyGenericServices { get; }

Gets whether the "py_generic_services" field is set

Property Value
Type Description
bool

HasRubyPackage

public bool HasRubyPackage { get; }

Gets whether the "ruby_package" field is set

Property Value
Type Description
bool

HasSwiftPrefix

public bool HasSwiftPrefix { get; }

Gets whether the "swift_prefix" field is set

Property Value
Type Description
bool

JavaGenerateEqualsAndHash

[Obsolete]
public bool JavaGenerateEqualsAndHash { get; set; }

This option does nothing.

Property Value
Type Description
bool

JavaGenericServices

public bool JavaGenericServices { get; set; }
Property Value
Type Description
bool

JavaMultipleFiles

public bool JavaMultipleFiles { get; set; }

If enabled, then the Java code generator will generate a separate .java file for each top-level message, enum, and service defined in the .proto file. Thus, these types will not be nested inside the wrapper class named by java_outer_classname. However, the wrapper class will still be generated to contain the file's getDescriptor() method as well as any top-level extensions defined in the file.

Property Value
Type Description
bool

JavaOuterClassname

public string JavaOuterClassname { get; set; }

Controls the name of the wrapper Java class generated for the .proto file. That class will always contain the .proto file's getDescriptor() method as well as any top-level extensions defined in the .proto file. If java_multiple_files is disabled, then all the other classes from the .proto file will be nested inside the single wrapper outer class.

Property Value
Type Description
string

JavaPackage

public string JavaPackage { get; set; }

Sets the Java package where classes generated from this .proto will be placed. By default, the proto package is used, but this is often inappropriate because proto packages do not normally start with backwards domain names.

Property Value
Type Description
string

JavaStringCheckUtf8

public bool JavaStringCheckUtf8 { get; set; }

A proto2 file can set this to true to opt in to UTF-8 checking for Java, which will throw an exception if invalid UTF-8 is parsed from the wire or assigned to a string field.

TODO: clarify exactly what kinds of field types this option applies to, and update these docs accordingly.

Proto3 files already perform these checks. Setting the option explicitly to false has no effect: it cannot be used to opt proto3 files out of UTF-8 checks.

Property Value
Type Description
bool

ObjcClassPrefix

public string ObjcClassPrefix { get; set; }

Sets the objective c class prefix which is prepended to all objective c generated classes from this .proto. There is no default.

Property Value
Type Description
string

OptimizeFor

public FileOptions.Types.OptimizeMode OptimizeFor { get; set; }
Property Value
Type Description
FileOptionsTypesOptimizeMode

Parser

public static MessageParser<FileOptions> Parser { get; }
Property Value
Type Description
MessageParserFileOptions

PhpClassPrefix

public string PhpClassPrefix { get; set; }

Sets the php class prefix which is prepended to all php generated classes from this .proto. Default is empty.

Property Value
Type Description
string

PhpMetadataNamespace

public string PhpMetadataNamespace { get; set; }

Use this option to change the namespace of php generated metadata classes. Default is empty. When this option is empty, the proto file name will be used for determining the namespace.

Property Value
Type Description
string

PhpNamespace

public string PhpNamespace { get; set; }

Use this option to change the namespace of php generated classes. Default is empty. When this option is empty, the package name will be used for determining the namespace.

Property Value
Type Description
string

PyGenericServices

public bool PyGenericServices { get; set; }
Property Value
Type Description
bool

RubyPackage

public string RubyPackage { get; set; }

Use this option to change the package of ruby generated classes. Default is empty. When this option is not set, the package name will be used for determining the ruby package.

Property Value
Type Description
string

SwiftPrefix

public string SwiftPrefix { get; set; }

By default Swift generators will take the proto package and CamelCase it replacing '.' with underscore and use that to prefix the types/symbols defined. When this options is provided, they will use this value instead to prefix the types/symbols defined.

Property Value
Type Description
string

UninterpretedOption

public RepeatedField<UninterpretedOption> UninterpretedOption { get; }

The parser stores options it doesn't recognize here. See the documentation for the "Options" section above.

Property Value
Type Description
RepeatedFieldUninterpretedOption

Methods

CalculateSize()

public int CalculateSize()

Calculates the size of this message in Protocol Buffer wire format, in bytes.

Returns
Type Description
int

The number of bytes required to write this message to a coded output stream.

ClearCcEnableArenas()

public void ClearCcEnableArenas()

Clears the value of the "cc_enable_arenas" field

ClearCcGenericServices()

public void ClearCcGenericServices()

Clears the value of the "cc_generic_services" field

ClearCsharpNamespace()

public void ClearCsharpNamespace()

Clears the value of the "csharp_namespace" field

ClearDeprecated()

public void ClearDeprecated()

Clears the value of the "deprecated" field

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

public void ClearExtension<TValue>(Extension<FileOptions, TValue> extension)

Clears the value of the specified extension

Parameter
Name Description
extension ExtensionFileOptions
Type Parameter
Name Description
TValue

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

public void ClearExtension<TValue>(RepeatedExtension<FileOptions, TValue> extension)

Clears the value of the specified repeated extension

Parameter
Name Description
extension RepeatedExtensionFileOptions
Type Parameter
Name Description
TValue

ClearGoPackage()

public void ClearGoPackage()

Clears the value of the "go_package" field

ClearJavaGenerateEqualsAndHash()

[Obsolete]
public void ClearJavaGenerateEqualsAndHash()

Clears the value of the "java_generate_equals_and_hash" field

ClearJavaGenericServices()

public void ClearJavaGenericServices()

Clears the value of the "java_generic_services" field

ClearJavaMultipleFiles()

public void ClearJavaMultipleFiles()

Clears the value of the "java_multiple_files" field

ClearJavaOuterClassname()

public void ClearJavaOuterClassname()

Clears the value of the "java_outer_classname" field

ClearJavaPackage()

public void ClearJavaPackage()

Clears the value of the "java_package" field

ClearJavaStringCheckUtf8()

public void ClearJavaStringCheckUtf8()

Clears the value of the "java_string_check_utf8" field

ClearObjcClassPrefix()

public void ClearObjcClassPrefix()

Clears the value of the "objc_class_prefix" field

ClearOptimizeFor()

public void ClearOptimizeFor()

Clears the value of the "optimize_for" field

ClearPhpClassPrefix()

public void ClearPhpClassPrefix()

Clears the value of the "php_class_prefix" field

ClearPhpMetadataNamespace()

public void ClearPhpMetadataNamespace()

Clears the value of the "php_metadata_namespace" field

ClearPhpNamespace()

public void ClearPhpNamespace()

Clears the value of the "php_namespace" field

ClearPyGenericServices()

public void ClearPyGenericServices()

Clears the value of the "py_generic_services" field

ClearRubyPackage()

public void ClearRubyPackage()

Clears the value of the "ruby_package" field

ClearSwiftPrefix()

public void ClearSwiftPrefix()

Clears the value of the "swift_prefix" field

Clone()

public FileOptions Clone()

Creates a deep clone of this object.

Returns
Type Description
FileOptions

A deep clone of this object.

Equals(FileOptions)

public bool Equals(FileOptions other)
Parameter
Name Description
other FileOptions
Returns
Type Description
bool

Equals(object)

public override bool Equals(object other)
Parameter
Name Description
other object
Returns
Type Description
bool
Overrides

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

public TValue GetExtension<TValue>(Extension<FileOptions, TValue> extension)

Gets the value of the specified extension

Parameter
Name Description
extension ExtensionFileOptions
Returns
Type Description
TValue
Type Parameter
Name Description
TValue

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

public RepeatedField<TValue> GetExtension<TValue>(RepeatedExtension<FileOptions, TValue> extension)

Gets the value of the specified repeated extension or null if the extension isn't registered in this set. For a version of this method that never returns null, use GetOrInitializeExtension<TValue>(RepeatedExtension<T, TValue>)

Parameter
Name Description
extension RepeatedExtensionFileOptions
Returns
Type Description
RepeatedField
Type Parameter
Name Description
TValue

GetHashCode()

public override int GetHashCode()
Returns
Type Description
int
Overrides

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

public RepeatedField<TValue> GetOrInitializeExtension<TValue>(RepeatedExtension<FileOptions, TValue> extension)

Gets the value of the specified repeated extension, registering it if it hasn't already been registered.

Parameter
Name Description
extension RepeatedExtensionFileOptions
Returns
Type Description
RepeatedField
Type Parameter
Name Description
TValue

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

public bool HasExtension<TValue>(Extension<FileOptions, TValue> extension)

Gets whether the value of the specified extension is set

Parameter
Name Description
extension ExtensionFileOptions
Returns
Type Description
bool
Type Parameter
Name Description
TValue

MergeFrom(CodedInputStream)

public void MergeFrom(CodedInputStream input)

Merges the data from the specified coded input stream with the current message.

Parameter
Name Description
input CodedInputStream
Remarks

See the user guide for precise merge semantics.

MergeFrom(FileOptions)

public void MergeFrom(FileOptions other)

Merges the given message into this one.

Parameter
Name Description
other FileOptions
Remarks

See the user guide for precise merge semantics.

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

public void SetExtension<TValue>(Extension<FileOptions, TValue> extension, TValue value)

Sets the value of the specified extension

Parameters
Name Description
extension ExtensionFileOptions
value TValue
Type Parameter
Name Description
TValue

ToString()

public override string ToString()
Returns
Type Description
string
Overrides

WriteTo(CodedOutputStream)

public void WriteTo(CodedOutputStream output)

Writes the data to the given coded output stream.

Parameter
Name Description
output CodedOutputStream

Coded output stream to write the data to. Must not be null.

Extension Methods