|
@@ -66,7 +66,10 @@ namespace Google.Protobuf.Reflection
|
|
|
|
|
|
internal FieldDescriptorProto Proto { get; }
|
|
internal FieldDescriptorProto Proto { get; }
|
|
|
|
|
|
- internal Extension Extension { get; }
|
|
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// An extension identifier for this field, or <c>null</c> if this field isn't an extension.
|
|
|
|
+ /// </summary>
|
|
|
|
+ public Extension Extension { get; }
|
|
|
|
|
|
internal FieldDescriptor(FieldDescriptorProto proto, FileDescriptor file,
|
|
internal FieldDescriptor(FieldDescriptorProto proto, FileDescriptor file,
|
|
MessageDescriptor parent, int index, string propertyName, Extension extension)
|
|
MessageDescriptor parent, int index, string propertyName, Extension extension)
|
|
@@ -201,19 +204,19 @@ namespace Google.Protobuf.Reflection
|
|
/// <summary>
|
|
/// <summary>
|
|
/// Returns <c>true</c> if this field is a packed, repeated field; <c>false</c> otherwise.
|
|
/// Returns <c>true</c> if this field is a packed, repeated field; <c>false</c> otherwise.
|
|
/// </summary>
|
|
/// </summary>
|
|
- public bool IsPacked
|
|
|
|
- {
|
|
|
|
- get
|
|
|
|
- {
|
|
|
|
- if (File.Syntax != Syntax.Proto3)
|
|
|
|
- {
|
|
|
|
- return Proto.Options?.Packed ?? false;
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- return !Proto.Options.HasPacked || Proto.Options.Packed;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ public bool IsPacked
|
|
|
|
+ {
|
|
|
|
+ get
|
|
|
|
+ {
|
|
|
|
+ if (File.Syntax != Syntax.Proto3)
|
|
|
|
+ {
|
|
|
|
+ return Proto.Options?.Packed ?? false;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ return !Proto.Options.HasPacked || Proto.Options.Packed;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
@@ -393,7 +396,7 @@ namespace Google.Protobuf.Reflection
|
|
}
|
|
}
|
|
|
|
|
|
private IFieldAccessor CreateAccessor()
|
|
private IFieldAccessor CreateAccessor()
|
|
- {
|
|
|
|
|
|
+ {
|
|
if (Extension != null)
|
|
if (Extension != null)
|
|
{
|
|
{
|
|
return new ExtensionAccessor(this);
|
|
return new ExtensionAccessor(this);
|