public override object this[FieldDescriptor field] { get { if (field.IsExtension) { VerifyContainingType(field); object value = extensions[field]; if (value == null) { // Lacking an ExtensionRegistry, we have no way to determine the // extension's real type, so we return a DynamicMessage. // TODO(jonskeet): Work out what this means return(DynamicMessage.GetDefaultInstance(field.MessageType)); } else { return(value); } } else { return(base[field]); } } }
public void DynamicMessageDefaults() { reflectionTester.AssertClearViaReflection(DynamicMessage.GetDefaultInstance(TestAllTypes.Descriptor)); reflectionTester.AssertClearViaReflection(DynamicMessage.CreateBuilder(TestAllTypes.Descriptor).Build()); }