=> obj.Options?.MapEntry ?? false; // don't write this type - use a dictionary instead /// <summary> /// Emit code representing a message type /// </summary> protected virtual void WriteMessage(GeneratorContext ctx, DescriptorProto obj) { object state = null; if (ShouldOmitMessage(ctx, obj, ref state)) { return; } WriteMessageHeader(ctx, obj, ref state); var oneOfs = OneOfStub.Build(ctx, obj); if (WriteContructorHeader(ctx, obj, ref state)) { foreach (var inner in obj.Fields) { WriteInitField(ctx, inner, ref state, oneOfs); } WriteConstructorFooter(ctx, obj, ref state); } foreach (var inner in obj.Fields) { WriteField(ctx, inner, ref state, oneOfs); } if (oneOfs != null) { foreach (var stub in oneOfs) { WriteOneOf(ctx, stub); } } foreach (var inner in obj.NestedTypes) { WriteMessage(ctx, inner); } foreach (var inner in obj.EnumTypes) { WriteEnum(ctx, inner); } if (obj.Extensions.Count != 0) { object extState = null; WriteExtensionsHeader(ctx, obj, ref extState); foreach (var ext in obj.Extensions) { WriteExtension(ctx, ext); } WriteExtensionsFooter(ctx, obj, ref extState); } WriteMessageFooter(ctx, obj, ref state); }
=> obj.Options?.MapEntry ?? false; // don't write this type - use a dictionary instead /// <summary> /// Emit code representing a message type /// </summary> protected virtual void WriteMessage(GeneratorContext ctx, DescriptorProto obj) { object state = null; if (ShouldOmitMessage(ctx, obj, ref state)) { return; } WriteMessageHeader(ctx, obj, ref state); var oneOfs = OneOfStub.Build(ctx, obj); ctx.WriteLine("#region 属性"); foreach (var inner in obj.Fields) { WriteField(ctx, inner, ref state, oneOfs); } ctx.WriteLine("#endregion"); ctx.WriteLine("#region 定义"); foreach (var inner in obj.NestedTypes) { WriteMessage(ctx, inner); } foreach (var inner in obj.EnumTypes) { WriteEnum(ctx, inner); } if (obj.Extensions.Count != 0) { object extState = null; WriteExtensionsHeader(ctx, obj, ref extState); foreach (var ext in obj.Extensions) { WriteExtension(ctx, ext); } WriteExtensionsFooter(ctx, obj, ref extState); } ctx.WriteLine("#endregion"); ctx.WriteLine("#region 读取写入"); WriteReadFun(ctx, obj, oneOfs); WriteWriteFun(ctx, obj, oneOfs); ctx.WriteLine("#endregion"); WriteMessageFooter(ctx, obj, ref state); }