|
|
|
@ -66,7 +66,10 @@ namespace Google.Protobuf.Reflection |
|
|
|
|
|
|
|
|
|
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, |
|
|
|
|
MessageDescriptor parent, int index, string propertyName, Extension extension) |
|
|
|
@ -201,19 +204,19 @@ namespace Google.Protobuf.Reflection |
|
|
|
|
/// <summary> |
|
|
|
|
/// Returns <c>true</c> if this field is a packed, repeated field; <c>false</c> otherwise. |
|
|
|
|
/// </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> |
|
|
|
@ -393,7 +396,7 @@ namespace Google.Protobuf.Reflection |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private IFieldAccessor CreateAccessor() |
|
|
|
|
{ |
|
|
|
|
{ |
|
|
|
|
if (Extension != null) |
|
|
|
|
{ |
|
|
|
|
return new ExtensionAccessor(this); |
|
|
|
|