Extra information provided by generated code when initializing a message or file descriptor.
These are constructed as required, and are not long-lived. Hand-written code should
never need to use this type.
Creates a GeneratedClrTypeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names.
Each array parameter may be null, to indicate a lack of values.
The parameter order is designed to make it feasible to format the generated code readably.
Creates a GeneratedClrTypeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names.
Each array parameter may be null, to indicate a lack of values.
The parameter order is designed to make it feasible to format the generated code readably.
public GeneratedClrTypeInfo[] NestedTypes { get; }
The reflection information for types within this file/message descriptor. Elements may be null
if there is no corresponding generated type, e.g. for map entry types.
Irrelevant for file descriptors; the CLR property "base" names (in message descriptor oneof order)
for oneofs in the message for message descriptors. It is expected that for a oneof name of "Foo",
there will be a "FooCase" property and a "ClearFoo" method.
[[["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\u003e\u003ccode\u003eGeneratedClrTypeInfo\u003c/code\u003e is a class used internally by generated code to provide extra information for initializing message or file descriptors.\u003c/p\u003e\n"],["\u003cp\u003eThe class offers multiple constructors to handle message and file descriptors, allowing for parameters like CLR type, message parser, property names, oneof names, nested enums, extensions, and nested types.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eGeneratedClrTypeInfo\u003c/code\u003e includes properties such as \u003ccode\u003eClrType\u003c/code\u003e, \u003ccode\u003eExtensions\u003c/code\u003e, \u003ccode\u003eNestedEnums\u003c/code\u003e, \u003ccode\u003eNestedTypes\u003c/code\u003e, \u003ccode\u003eOneofNames\u003c/code\u003e, \u003ccode\u003eParser\u003c/code\u003e, and \u003ccode\u003ePropertyNames\u003c/code\u003e to access specific descriptor information.\u003c/p\u003e\n"],["\u003cp\u003eThe class inherits members from the \u003ccode\u003eobject\u003c/code\u003e class, including methods for equality, hash code generation, type retrieval, reference equality, and string representation.\u003c/p\u003e\n"],["\u003cp\u003eThis type is found within the \u003ccode\u003eGoogle.Protobuf.Reflection\u003c/code\u003e namespace and the \u003ccode\u003eGoogle.Protobuf.dll\u003c/code\u003e assembly.\u003c/p\u003e\n"]]],[],null,["# Class GeneratedClrTypeInfo (3.27.1)\n\nVersion latestkeyboard_arrow_down\n\n- [3.27.1 (latest)](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.Reflection.GeneratedClrTypeInfo)\n- [3.23.0](/dotnet/docs/reference/Google.Protobuf/3.23.0/Google.Protobuf.Reflection.GeneratedClrTypeInfo)\n- [3.15.8](/dotnet/docs/reference/Google.Protobuf/3.15.8/Google.Protobuf.Reflection.GeneratedClrTypeInfo) \n\n public sealed class GeneratedClrTypeInfo\n\nExtra information provided by generated code when initializing a message or file descriptor.\nThese are constructed as required, and are not long-lived. Hand-written code should\nnever need to use this type. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e GeneratedClrTypeInfo \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.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\nNamespace\n---------\n\n[Google.Protobuf.Reflection](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.Reflection)\n\nAssembly\n--------\n\nGoogle.Protobuf.dll\n\nConstructors\n------------\n\n### GeneratedClrTypeInfo(Type, MessageParser, string\\[\\], string\\[\\], Type\\[\\], Extension\\[\\], GeneratedClrTypeInfo\\[\\])\n\n public GeneratedClrTypeInfo(Type clrType, MessageParser parser, string[] propertyNames, string[] oneofNames, Type[] nestedEnums, Extension[] extensions, GeneratedClrTypeInfo[] nestedTypes)\n\nCreates a GeneratedClrTypeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names.\nEach array parameter may be null, to indicate a lack of values.\nThe parameter order is designed to make it feasible to format the generated code readably.\n\n### GeneratedClrTypeInfo(Type, MessageParser, string\\[\\], string\\[\\], Type\\[\\], GeneratedClrTypeInfo\\[\\])\n\n public GeneratedClrTypeInfo(Type clrType, MessageParser parser, string[] propertyNames, string[] oneofNames, Type[] nestedEnums, GeneratedClrTypeInfo[] nestedTypes)\n\nCreates a GeneratedClrTypeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names.\nEach array parameter may be null, to indicate a lack of values.\nThe parameter order is designed to make it feasible to format the generated code readably.\n\n### GeneratedClrTypeInfo(Type\\[\\], Extension\\[\\], GeneratedClrTypeInfo\\[\\])\n\n public GeneratedClrTypeInfo(Type[] nestedEnums, Extension[] extensions, GeneratedClrTypeInfo[] nestedTypes)\n\nCreates a GeneratedClrTypeInfo for a file descriptor, with only types, enums, and extensions.\n\n### GeneratedClrTypeInfo(Type\\[\\], GeneratedClrTypeInfo\\[\\])\n\n public GeneratedClrTypeInfo(Type[] nestedEnums, GeneratedClrTypeInfo[] nestedTypes)\n\nCreates a GeneratedClrTypeInfo for a file descriptor, with only types and enums.\n\nProperties\n----------\n\n### ClrType\n\n public Type ClrType { get; }\n\nIrrelevant for file descriptors; the CLR type for the message for message descriptors.\n\n### Extensions\n\n public Extension[] Extensions { get; }\n\nThe extensions defined within this file/message descriptor\n\n### NestedEnums\n\n public Type[] NestedEnums { get; }\n\nThe CLR types for enums within this file/message descriptor.\n\n### NestedTypes\n\n public GeneratedClrTypeInfo[] NestedTypes { get; }\n\nThe reflection information for types within this file/message descriptor. Elements may be null\nif there is no corresponding generated type, e.g. for map entry types.\n\n### OneofNames\n\n public string[] OneofNames { get; }\n\nIrrelevant for file descriptors; the CLR property \"base\" names (in message descriptor oneof order)\nfor oneofs in the message for message descriptors. It is expected that for a oneof name of \"Foo\",\nthere will be a \"FooCase\" property and a \"ClearFoo\" method.\n\n### Parser\n\n public MessageParser Parser { get; }\n\nIrrelevant for file descriptors; the parser for message descriptors.\n\n### PropertyNames\n\n public string[] PropertyNames { get; }\n\nIrrelevant for file descriptors; the CLR property names (in message descriptor field order)\nfor fields in the message for message descriptors."]]