This information is typically only available for dynamically loaded descriptors,
for example within a protoc plugin where the full descriptors, including source info,
are passed to the code by protoc.
The index of this descriptor within its parent descriptor.
Remarks
This returns the index of this descriptor within its parent, for
this descriptor's type. (There can be duplicate values for different
types, e.g. one enum type with index 0 and one message type with index 0.)
Name
public abstract string Name { get; }
Returns the name of the entity (field, message etc) being described.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eDescriptorBase is a fundamental class within the Google.Protobuf.Reflection namespace, serving as the base for nearly all descriptor types.\u003c/p\u003e\n"],["\u003cp\u003eThe class inherits from the base object class, and implements the IDescriptor interface, while also providing access to several inherited members such as Equals, GetHashCode, and ToString.\u003c/p\u003e\n"],["\u003cp\u003eSeveral types derive from DescriptorBase, including EnumDescriptor, FieldDescriptor, and MessageDescriptor, showcasing its role as a core component.\u003c/p\u003e\n"],["\u003cp\u003eKey properties of DescriptorBase include Declaration, File, FullName, Index, and Name, which provide detailed information about the descriptor's context and attributes.\u003c/p\u003e\n"],["\u003cp\u003eThe latest available version of DescriptorBase is 3.27.1, with older versions such as 3.23.0 and 3.15.8 also available for use.\u003c/p\u003e\n"]]],[],null,["# Class DescriptorBase (3.27.1)\n\nVersion latestkeyboard_arrow_down\n\n- [3.27.1 (latest)](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.Reflection.DescriptorBase)\n- [3.23.0](/dotnet/docs/reference/Google.Protobuf/3.23.0/Google.Protobuf.Reflection.DescriptorBase)\n- [3.15.8](/dotnet/docs/reference/Google.Protobuf/3.15.8/Google.Protobuf.Reflection.DescriptorBase) \n\n public abstract class DescriptorBase : IDescriptor\n\nBase class for nearly all descriptors, providing common functionality. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e DescriptorBase \n\nImplements\n----------\n\n[IDescriptor](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.Reflection.IDescriptor) \n\nInherited Members\n-----------------\n\n[object.Equals(object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)) \n[object.Equals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)) \n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.MemberwiseClone()](https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone) \n[object.ReferenceEquals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.referenceequals) \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring) \n\nDerived Types\n-------------\n\n[EnumDescriptor](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.Reflection.EnumDescriptor) \n[EnumValueDescriptor](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.Reflection.EnumValueDescriptor) \n[FieldDescriptor](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.Reflection.FieldDescriptor) \n[MessageDescriptor](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.Reflection.MessageDescriptor) \n[MethodDescriptor](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.Reflection.MethodDescriptor) \n[OneofDescriptor](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.Reflection.OneofDescriptor) \n[ServiceDescriptor](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.Reflection.ServiceDescriptor)\n\nNamespace\n---------\n\n[Google.Protobuf.Reflection](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.Reflection)\n\nAssembly\n--------\n\nGoogle.Protobuf.dll\n\nProperties\n----------\n\n### Declaration\n\n public DescriptorDeclaration Declaration { get; }\n\nThe declaration information about the descriptor, or null if no declaration information\nis available for this descriptor.\n\n**Remarks** \nThis information is typically only available for dynamically loaded descriptors,\nfor example within a protoc plugin where the full descriptors, including source info,\nare passed to the code by protoc.\n\n### File\n\n public FileDescriptor File { get; }\n\n### FullName\n\n public string FullName { get; }\n\nThe fully qualified name of the descriptor's target.\n\n### Index\n\n public int Index { get; }\n\n**Remarks** \nThis returns the index of this descriptor within its parent, for\nthis descriptor's type. (There can be duplicate values for different\ntypes, e.g. one enum type with index 0 and one message type with index 0.)\n\n### Name\n\n public abstract string Name { get; }\n\nReturns the name of the entity (field, message etc) being described."]]