diff --git a/src/FM.GrpcDashboard/Readme.md b/src/FM.GrpcDashboard/Readme.md
new file mode 100644
index 0000000..53a3396
--- /dev/null
+++ b/src/FM.GrpcDashboard/Readme.md
@@ -0,0 +1,23 @@
+# 使用两种方法对接DashBoard
+## 方法1:实现FMGrpcExtensions.proto协议
+### dotnet对接GrpcDashBoard
+使用FM.Grpc.Extensions或者FM.Droplet
+
+### 其它语言对接GrpcDashBoard
+需要自己实现FMGrpcExtensions.proto协议
+
+## 方法2:使用GrpcReflection
+### dotnet对接GrpcDashBoard
+netcore1.x-2.x
+https://github.com/grpc/grpc/blob/master/doc/csharp/server_reflection.md
+netcore3.x-5.x
+https://docs.microsoft.com/en-us/aspnet/core/grpc/test-tools?view=aspnetcore-3.0
+
+### java对接GrpcDashBoard
+https://github.com/grpc/grpc-java/blob/master/documentation/server-reflection-tutorial.md
+
+### golang对接GrpcDashBoard
+https://github.com/grpc/grpc-go/blob/master/Documentation/server-reflection-tutorial.md
+
+### python对接GrpcDashBoard
+https://github.com/grpc/grpc/blob/master/doc/python/server_reflection.md
diff --git a/src/FM.GrpcDashboard/dockerfile b/src/FM.GrpcDashboard/dockerfile
index 3fcad14..3142c8a 100644
--- a/src/FM.GrpcDashboard/dockerfile
+++ b/src/FM.GrpcDashboard/dockerfile
@@ -1,4 +1,5 @@
FROM microsoft/aspnetcore:2.0.0
WORKDIR /app
-COPY ./ /app
+COPY ./ /app
+COPY ./grpcurl /usr/bin/
ENTRYPOINT ["dotnet", "FM.GrpcDashboard.dll"]
\ No newline at end of file
diff --git a/src/FM.GrpcDashboard/makefile b/src/FM.GrpcDashboard/makefile
new file mode 100644
index 0000000..0191b56
--- /dev/null
+++ b/src/FM.GrpcDashboard/makefile
@@ -0,0 +1,34 @@
+#sln init
+PROJECT = FM.GrpcDashboard
+SOLUTION_NAME = ${PROJECT_NAME}.sln
+
+#service build
+SRV_NAME = cs-grpc_dashboard-web
+CURRENT_VERSION := `head -1 CHANGELOG `
+TIME = $(shell date +%y%m%d%H%M)
+
+SRV_FULL_NAME := $(SRV_NAME):$(CURRENT_VERSION).$(TIME)
+
+build:clean
+ dotnet publish ./src/$(PROJECT)/$(PROJECT).csproj -c Release -o ./dist
+
+clean:
+ rm -rf dist/
+
+# 仅编译镜像,不推
+build-image:build
+ cp Dockerfile ./dist/Dockerfile
+ docker build -f ./dist/Dockerfile --no-cache --rm -t $(SRV_FULL_NAME) ./dist
+
+# 发布项目
+publish:build-image
+ docker tag $(SRV_FULL_NAME) $(DH_URL)$(SRV_FULL_NAME)
+ docker login -u $(DH_USER) -p $(DH_PASS) $(DH_URL) && docker push $(DH_URL)$(SRV_FULL_NAME)
+
+test:
+ echo $(DH_USER)
+ echo $(DH_PASS)
+ echo $(DH_URL)
+
+.PHONY: gen build build-image publish clean test
+
diff --git a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Common/JsonSerialization.cs b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Common/JsonSerialization.cs
index 05d92eb..9d236ca 100644
--- a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Common/JsonSerialization.cs
+++ b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Common/JsonSerialization.cs
@@ -8,18 +8,20 @@ public static class JsonSerialization
///
/// 使用json序列化为字符串
///
+ ///
/// 默认null,即使用json.net默认的序列化机制,如:"\/Date(1439335800000+0800)\/"
+ ///
///
public static string ToJson(this object input, string dateTimeFormat = "yyyy-MM-dd HH:mm:ss", bool ignoreNullValue = true)
{
var settings = new JsonSerializerSettings()
{
ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
- PreserveReferencesHandling = PreserveReferencesHandling.Objects
+ PreserveReferencesHandling = PreserveReferencesHandling.None
};
if (ignoreNullValue)
{
- settings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
+ settings.NullValueHandling = NullValueHandling.Ignore;
};
if (!string.IsNullOrWhiteSpace(dateTimeFormat))
@@ -30,7 +32,7 @@ public static string ToJson(this object input, string dateTimeFormat = "yyyy-MM-
};
settings.Converters = jsonConverter;
}
- var format = Newtonsoft.Json.Formatting.Indented;
+ var format = Formatting.Indented;
var json = JsonConvert.SerializeObject(input, format, settings);
return json;
}
@@ -41,6 +43,7 @@ public static string ToJson(this object input, string dateTimeFormat = "yyyy-MM-
///
///
/// 默认null,即使用json.net默认的序列化机制
+ ///
///
public static T TryFromJson(this string input, string dateTimeFormat = "yyyy-MM-dd HH:mm:ss", bool ignoreNullValue = true)
{
@@ -69,7 +72,7 @@ public static T FromJson(this string input, string dateTimeFormat = "yyyy-MM-
};
if (ignoreNullValue)
{
- settings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
+ settings.NullValueHandling = NullValueHandling.Ignore;
}
if (!string.IsNullOrWhiteSpace(dateTimeFormat))
diff --git a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Common/ProtobufSerialization.cs b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Common/ProtobufSerialization.cs
new file mode 100644
index 0000000..4d1397e
--- /dev/null
+++ b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Common/ProtobufSerialization.cs
@@ -0,0 +1,41 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+using ProtoBuf;
+
+namespace System
+{
+ ///
+ /// ProtobufExtensions
+ ///
+ public class ProtobufExtensions
+ {
+ ///
+ /// 序列化
+ ///
+ ///
+ ///
+ ///
+ public static byte[] Serialize(T input)
+ {
+ using (MemoryStream memoryStream = new MemoryStream())
+ {
+ Serializer.Serialize((Stream)memoryStream, input);
+ return memoryStream.ToArray();
+ }
+ }
+
+ ///
+ /// 反序列化
+ ///
+ ///
+ ///
+ ///
+ public static T Deserialize(byte[] data)
+ {
+ using (MemoryStream memoryStream = new MemoryStream(data))
+ return Serializer.Deserialize((Stream)memoryStream);
+ }
+ }
+}
diff --git a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Common/ShellHelper.cs b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Common/ShellHelper.cs
new file mode 100644
index 0000000..af151d2
--- /dev/null
+++ b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Common/ShellHelper.cs
@@ -0,0 +1,75 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+
+namespace System
+{
+ public static class ShellHelper
+ {
+ public static string Bash(this string cmd)
+ {
+ var escapedArgs = cmd.Replace("\"", "\\\"");
+
+ var process = new Process()
+ {
+ StartInfo = new ProcessStartInfo
+ {
+ FileName = "bash",
+ Arguments = $"-c \"{escapedArgs}\" 2>&1",
+ RedirectStandardOutput = true,
+ RedirectStandardError = true,
+ UseShellExecute = false,
+ CreateNoWindow = true,
+ }
+ };
+ process.Start();
+ string result = process.StandardOutput.ReadToEnd();
+ string error = process.StandardError.ReadToEnd();
+
+ process.WaitForExit();
+ return !string.IsNullOrWhiteSpace(result) ? result : error;
+ }
+
+ public static string Cmd(this string cmd)
+ {
+ var escapedArgs = cmd.Replace("\"", "\\\"");
+
+ var process = new Process()
+ {
+ StartInfo = new ProcessStartInfo
+ {
+ FileName = "cmd",
+ Arguments = $"/c \"{escapedArgs}\" 2>&1",
+ RedirectStandardOutput = true,
+ UseShellExecute = false,
+ CreateNoWindow = true,
+ }
+ };
+ process.Start();
+ string result = process.StandardOutput.ReadToEnd();
+
+ process.WaitForExit();
+ return result;
+ }
+
+ public static string Execute(this string exeFileName, string arguments)
+ {
+ var process = new Process()
+ {
+ StartInfo = new ProcessStartInfo
+ {
+ FileName = exeFileName,
+ Arguments = arguments,
+ RedirectStandardOutput = true,
+ UseShellExecute = false,
+ CreateNoWindow = true,
+ }
+ };
+ process.Start();
+ string result = process.StandardOutput.ReadToEnd();
+ process.WaitForExit();
+ return result;
+ }
+ }
+}
diff --git a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/FM.GrpcDashboard.csproj b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/FM.GrpcDashboard.csproj
index 39edeaf..55ed7fe 100644
--- a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/FM.GrpcDashboard.csproj
+++ b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/FM.GrpcDashboard.csproj
@@ -12,9 +12,10 @@
-
+
+
diff --git a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/GrpcClient/FMGrpcExtensions.proto b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/GrpcClient/FMGrpcExtensions.proto
new file mode 100644
index 0000000..ab52888
--- /dev/null
+++ b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/GrpcClient/FMGrpcExtensions.proto
@@ -0,0 +1,67 @@
+syntax = "proto3";
+option csharp_namespace = "Grpc";
+package grpc;
+
+
+service BaseService {
+ //服务基本信息(方法列表)
+ rpc Info(InfoRQ) returns(InfoRS);
+ //服务方法的详细信息
+ rpc MethodInfo(MethodInfoRQ) returns(MethodInfoRS);
+ //服务方法调用
+ rpc MethodInvoke(MethodInvokeRQ) returns(MethodInvokeRS);
+
+ //添加删除截流的method
+ rpc AddDelThrottle(AddDelThrottleRQ) returns(CmdRS);
+ //添加删除是否允许保存响应的method
+ rpc AddDelSaveResponseEnable(AddDelSaveResponseEnableRQ) returns(CmdRS);
+}
+
+message AddDelThrottleRQ {
+ string MethodName = 1;
+ bool IsDel = 2;
+}
+
+message AddDelSaveResponseEnableRQ {
+ string MethodName = 1;
+ bool IsDel = 2;
+}
+
+message InfoRQ {
+ string MethodName = 1;
+}
+
+message MethodInfoRQ {
+ string FullName = 1;
+}
+
+message MethodInvokeRQ {
+ string FullName = 1;
+ string RequestJson = 2;
+}
+
+message CmdRS {
+ bool Result = 1;
+ string Message = 2;
+}
+
+message InfoRS {
+ string IpAndPort = 1;
+ int64 StartTime = 2;
+ repeated MethodInfo MethodInfos = 3;
+}
+
+message MethodInfo {
+ bool IsThrottled = 1;
+ string Name = 2;
+ bool SaveResponseEnable = 3;
+}
+
+message MethodInfoRS {
+ string RequestJson = 1;
+ string ResponseJson = 2;
+}
+
+message MethodInvokeRS {
+ string ResponseJson = 1;
+}
\ No newline at end of file
diff --git a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/GrpcClient/Reflection/Descriptor.cs b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/GrpcClient/Reflection/Descriptor.cs
new file mode 100644
index 0000000..b7ce86a
--- /dev/null
+++ b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/GrpcClient/Reflection/Descriptor.cs
@@ -0,0 +1,1327 @@
+//
+// This file was generated by a tool; you should avoid making direct changes.
+// Consider using 'partial classes' to extend these types
+// Input: my.proto
+//
+
+#region Designer generated code
+#pragma warning disable CS0612, CS0618, CS1591, CS3021, IDE0079, IDE1006, RCS1036, RCS1057, RCS1085, RCS1192
+namespace Google.Protobuf.Reflection
+{
+
+ [global::ProtoBuf.ProtoContract()]
+ public partial class FileDescriptorSet : global::ProtoBuf.IExtensible
+ {
+ private global::ProtoBuf.IExtension __pbn__extensionData;
+ global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
+ => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
+
+ [global::ProtoBuf.ProtoMember(1, Name = @"file")]
+ public global::System.Collections.Generic.List Files { get; } = new global::System.Collections.Generic.List();
+
+ }
+
+ [global::ProtoBuf.ProtoContract()]
+ public partial class FileDescriptorProto : global::ProtoBuf.IExtensible
+ {
+ private global::ProtoBuf.IExtension __pbn__extensionData;
+ global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
+ => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
+
+ [global::ProtoBuf.ProtoMember(1, Name = @"name")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string Name
+ {
+ get => __pbn__Name ?? "";
+ set => __pbn__Name = value;
+ }
+ public bool ShouldSerializeName() => __pbn__Name != null;
+ public void ResetName() => __pbn__Name = null;
+ private string __pbn__Name;
+
+ [global::ProtoBuf.ProtoMember(2, Name = @"package")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string Package
+ {
+ get => __pbn__Package ?? "";
+ set => __pbn__Package = value;
+ }
+ public bool ShouldSerializePackage() => __pbn__Package != null;
+ public void ResetPackage() => __pbn__Package = null;
+ private string __pbn__Package;
+
+ [global::ProtoBuf.ProtoMember(3, Name = @"dependency")]
+ public global::System.Collections.Generic.List Dependencies { get; } = new global::System.Collections.Generic.List();
+
+ [global::ProtoBuf.ProtoMember(10, Name = @"public_dependency")]
+ public int[] PublicDependencies { get; set; }
+
+ [global::ProtoBuf.ProtoMember(11, Name = @"weak_dependency")]
+ public int[] WeakDependencies { get; set; }
+
+ [global::ProtoBuf.ProtoMember(4, Name = @"message_type")]
+ public global::System.Collections.Generic.List MessageTypes { get; } = new global::System.Collections.Generic.List();
+
+ [global::ProtoBuf.ProtoMember(5, Name = @"enum_type")]
+ public global::System.Collections.Generic.List EnumTypes { get; } = new global::System.Collections.Generic.List();
+
+ [global::ProtoBuf.ProtoMember(6, Name = @"service")]
+ public global::System.Collections.Generic.List Services { get; } = new global::System.Collections.Generic.List();
+
+ [global::ProtoBuf.ProtoMember(7, Name = @"extension")]
+ public global::System.Collections.Generic.List Extensions { get; } = new global::System.Collections.Generic.List();
+
+ [global::ProtoBuf.ProtoMember(8, Name = @"options")]
+ public FileOptions Options { get; set; }
+
+ [global::ProtoBuf.ProtoMember(9, Name = @"source_code_info")]
+ public SourceCodeInfo SourceCodeInfo { get; set; }
+
+ [global::ProtoBuf.ProtoMember(12, Name = @"syntax")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string Syntax
+ {
+ get => __pbn__Syntax ?? "";
+ set => __pbn__Syntax = value;
+ }
+ public bool ShouldSerializeSyntax() => __pbn__Syntax != null;
+ public void ResetSyntax() => __pbn__Syntax = null;
+ private string __pbn__Syntax;
+
+ }
+
+ [global::ProtoBuf.ProtoContract()]
+ public partial class DescriptorProto : global::ProtoBuf.IExtensible
+ {
+ private global::ProtoBuf.IExtension __pbn__extensionData;
+ global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
+ => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
+
+ [global::ProtoBuf.ProtoMember(1, Name = @"name")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string Name
+ {
+ get => __pbn__Name ?? "";
+ set => __pbn__Name = value;
+ }
+ public bool ShouldSerializeName() => __pbn__Name != null;
+ public void ResetName() => __pbn__Name = null;
+ private string __pbn__Name;
+
+ [global::ProtoBuf.ProtoMember(2, Name = @"field")]
+ public global::System.Collections.Generic.List Fields { get; } = new global::System.Collections.Generic.List();
+
+ [global::ProtoBuf.ProtoMember(6, Name = @"extension")]
+ public global::System.Collections.Generic.List Extensions { get; } = new global::System.Collections.Generic.List();
+
+ [global::ProtoBuf.ProtoMember(3, Name = @"nested_type")]
+ public global::System.Collections.Generic.List NestedTypes { get; } = new global::System.Collections.Generic.List();
+
+ [global::ProtoBuf.ProtoMember(4, Name = @"enum_type")]
+ public global::System.Collections.Generic.List EnumTypes { get; } = new global::System.Collections.Generic.List();
+
+ [global::ProtoBuf.ProtoMember(5, Name = @"extension_range")]
+ public global::System.Collections.Generic.List ExtensionRanges { get; } = new global::System.Collections.Generic.List();
+
+ [global::ProtoBuf.ProtoMember(8, Name = @"oneof_decl")]
+ public global::System.Collections.Generic.List OneofDecls { get; } = new global::System.Collections.Generic.List();
+
+ [global::ProtoBuf.ProtoMember(7, Name = @"options")]
+ public MessageOptions Options { get; set; }
+
+ [global::ProtoBuf.ProtoMember(9, Name = @"reserved_range")]
+ public global::System.Collections.Generic.List ReservedRanges { get; } = new global::System.Collections.Generic.List();
+
+ [global::ProtoBuf.ProtoMember(10, Name = @"reserved_name")]
+ public global::System.Collections.Generic.List ReservedNames { get; } = new global::System.Collections.Generic.List();
+
+ [global::ProtoBuf.ProtoContract()]
+ public partial class ExtensionRange : global::ProtoBuf.IExtensible
+ {
+ private global::ProtoBuf.IExtension __pbn__extensionData;
+ global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
+ => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
+
+ [global::ProtoBuf.ProtoMember(1, Name = @"start")]
+ public int Start
+ {
+ get => __pbn__Start.GetValueOrDefault();
+ set => __pbn__Start = value;
+ }
+ public bool ShouldSerializeStart() => __pbn__Start != null;
+ public void ResetStart() => __pbn__Start = null;
+ private int? __pbn__Start;
+
+ [global::ProtoBuf.ProtoMember(2, Name = @"end")]
+ public int End
+ {
+ get => __pbn__End.GetValueOrDefault();
+ set => __pbn__End = value;
+ }
+ public bool ShouldSerializeEnd() => __pbn__End != null;
+ public void ResetEnd() => __pbn__End = null;
+ private int? __pbn__End;
+
+ [global::ProtoBuf.ProtoMember(3, Name = @"options")]
+ public ExtensionRangeOptions Options { get; set; }
+
+ }
+
+ [global::ProtoBuf.ProtoContract()]
+ public partial class ReservedRange : global::ProtoBuf.IExtensible
+ {
+ private global::ProtoBuf.IExtension __pbn__extensionData;
+ global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
+ => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
+
+ [global::ProtoBuf.ProtoMember(1, Name = @"start")]
+ public int Start
+ {
+ get => __pbn__Start.GetValueOrDefault();
+ set => __pbn__Start = value;
+ }
+ public bool ShouldSerializeStart() => __pbn__Start != null;
+ public void ResetStart() => __pbn__Start = null;
+ private int? __pbn__Start;
+
+ [global::ProtoBuf.ProtoMember(2, Name = @"end")]
+ public int End
+ {
+ get => __pbn__End.GetValueOrDefault();
+ set => __pbn__End = value;
+ }
+ public bool ShouldSerializeEnd() => __pbn__End != null;
+ public void ResetEnd() => __pbn__End = null;
+ private int? __pbn__End;
+
+ }
+
+ }
+
+ [global::ProtoBuf.ProtoContract()]
+ public partial class ExtensionRangeOptions : global::ProtoBuf.IExtensible
+ {
+ private global::ProtoBuf.IExtension __pbn__extensionData;
+ global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
+ => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
+
+ [global::ProtoBuf.ProtoMember(999, Name = @"uninterpreted_option")]
+ public global::System.Collections.Generic.List UninterpretedOptions { get; } = new global::System.Collections.Generic.List();
+
+ }
+
+ [global::ProtoBuf.ProtoContract()]
+ public partial class FieldDescriptorProto : global::ProtoBuf.IExtensible
+ {
+ private global::ProtoBuf.IExtension __pbn__extensionData;
+ global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
+ => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
+
+ [global::ProtoBuf.ProtoMember(1, Name = @"name")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string Name
+ {
+ get => __pbn__Name ?? "";
+ set => __pbn__Name = value;
+ }
+ public bool ShouldSerializeName() => __pbn__Name != null;
+ public void ResetName() => __pbn__Name = null;
+ private string __pbn__Name;
+
+ [global::ProtoBuf.ProtoMember(3, Name = @"number")]
+ public int Number
+ {
+ get => __pbn__Number.GetValueOrDefault();
+ set => __pbn__Number = value;
+ }
+ public bool ShouldSerializeNumber() => __pbn__Number != null;
+ public void ResetNumber() => __pbn__Number = null;
+ private int? __pbn__Number;
+
+ [global::ProtoBuf.ProtoMember(4)]
+ [global::System.ComponentModel.DefaultValue(Label.LabelOptional)]
+ public Label label
+ {
+ get => __pbn__label ?? Label.LabelOptional;
+ set => __pbn__label = value;
+ }
+ public bool ShouldSerializelabel() => __pbn__label != null;
+ public void Resetlabel() => __pbn__label = null;
+ private Label? __pbn__label;
+
+ [global::ProtoBuf.ProtoMember(5)]
+ [global::System.ComponentModel.DefaultValue(Type.TypeDouble)]
+ public Type type
+ {
+ get => __pbn__type ?? Type.TypeDouble;
+ set => __pbn__type = value;
+ }
+ public bool ShouldSerializetype() => __pbn__type != null;
+ public void Resettype() => __pbn__type = null;
+ private Type? __pbn__type;
+
+ [global::ProtoBuf.ProtoMember(6, Name = @"type_name")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string TypeName
+ {
+ get => __pbn__TypeName ?? "";
+ set => __pbn__TypeName = value;
+ }
+ public bool ShouldSerializeTypeName() => __pbn__TypeName != null;
+ public void ResetTypeName() => __pbn__TypeName = null;
+ private string __pbn__TypeName;
+
+ [global::ProtoBuf.ProtoMember(2, Name = @"extendee")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string Extendee
+ {
+ get => __pbn__Extendee ?? "";
+ set => __pbn__Extendee = value;
+ }
+ public bool ShouldSerializeExtendee() => __pbn__Extendee != null;
+ public void ResetExtendee() => __pbn__Extendee = null;
+ private string __pbn__Extendee;
+
+ [global::ProtoBuf.ProtoMember(7, Name = @"default_value")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string DefaultValue
+ {
+ get => __pbn__DefaultValue ?? "";
+ set => __pbn__DefaultValue = value;
+ }
+ public bool ShouldSerializeDefaultValue() => __pbn__DefaultValue != null;
+ public void ResetDefaultValue() => __pbn__DefaultValue = null;
+ private string __pbn__DefaultValue;
+
+ [global::ProtoBuf.ProtoMember(9, Name = @"oneof_index")]
+ public int OneofIndex
+ {
+ get => __pbn__OneofIndex.GetValueOrDefault();
+ set => __pbn__OneofIndex = value;
+ }
+ public bool ShouldSerializeOneofIndex() => __pbn__OneofIndex != null;
+ public void ResetOneofIndex() => __pbn__OneofIndex = null;
+ private int? __pbn__OneofIndex;
+
+ [global::ProtoBuf.ProtoMember(10, Name = @"json_name")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string JsonName
+ {
+ get => __pbn__JsonName ?? "";
+ set => __pbn__JsonName = value;
+ }
+ public bool ShouldSerializeJsonName() => __pbn__JsonName != null;
+ public void ResetJsonName() => __pbn__JsonName = null;
+ private string __pbn__JsonName;
+
+ [global::ProtoBuf.ProtoMember(8, Name = @"options")]
+ public FieldOptions Options { get; set; }
+
+ [global::ProtoBuf.ProtoMember(17, Name = @"proto3_optional")]
+ public bool Proto3Optional
+ {
+ get => __pbn__Proto3Optional.GetValueOrDefault();
+ set => __pbn__Proto3Optional = value;
+ }
+ public bool ShouldSerializeProto3Optional() => __pbn__Proto3Optional != null;
+ public void ResetProto3Optional() => __pbn__Proto3Optional = null;
+ private bool? __pbn__Proto3Optional;
+
+ [global::ProtoBuf.ProtoContract()]
+ public enum Type
+ {
+ [global::ProtoBuf.ProtoEnum(Name = @"TYPE_DOUBLE")]
+ TypeDouble = 1,
+ [global::ProtoBuf.ProtoEnum(Name = @"TYPE_FLOAT")]
+ TypeFloat = 2,
+ [global::ProtoBuf.ProtoEnum(Name = @"TYPE_INT64")]
+ TypeInt64 = 3,
+ [global::ProtoBuf.ProtoEnum(Name = @"TYPE_UINT64")]
+ TypeUint64 = 4,
+ [global::ProtoBuf.ProtoEnum(Name = @"TYPE_INT32")]
+ TypeInt32 = 5,
+ [global::ProtoBuf.ProtoEnum(Name = @"TYPE_FIXED64")]
+ TypeFixed64 = 6,
+ [global::ProtoBuf.ProtoEnum(Name = @"TYPE_FIXED32")]
+ TypeFixed32 = 7,
+ [global::ProtoBuf.ProtoEnum(Name = @"TYPE_BOOL")]
+ TypeBool = 8,
+ [global::ProtoBuf.ProtoEnum(Name = @"TYPE_STRING")]
+ TypeString = 9,
+ [global::ProtoBuf.ProtoEnum(Name = @"TYPE_GROUP")]
+ TypeGroup = 10,
+ [global::ProtoBuf.ProtoEnum(Name = @"TYPE_MESSAGE")]
+ TypeMessage = 11,
+ [global::ProtoBuf.ProtoEnum(Name = @"TYPE_BYTES")]
+ TypeBytes = 12,
+ [global::ProtoBuf.ProtoEnum(Name = @"TYPE_UINT32")]
+ TypeUint32 = 13,
+ [global::ProtoBuf.ProtoEnum(Name = @"TYPE_ENUM")]
+ TypeEnum = 14,
+ [global::ProtoBuf.ProtoEnum(Name = @"TYPE_SFIXED32")]
+ TypeSfixed32 = 15,
+ [global::ProtoBuf.ProtoEnum(Name = @"TYPE_SFIXED64")]
+ TypeSfixed64 = 16,
+ [global::ProtoBuf.ProtoEnum(Name = @"TYPE_SINT32")]
+ TypeSint32 = 17,
+ [global::ProtoBuf.ProtoEnum(Name = @"TYPE_SINT64")]
+ TypeSint64 = 18,
+ }
+
+ [global::ProtoBuf.ProtoContract()]
+ public enum Label
+ {
+ [global::ProtoBuf.ProtoEnum(Name = @"LABEL_OPTIONAL")]
+ LabelOptional = 1,
+ [global::ProtoBuf.ProtoEnum(Name = @"LABEL_REQUIRED")]
+ LabelRequired = 2,
+ [global::ProtoBuf.ProtoEnum(Name = @"LABEL_REPEATED")]
+ LabelRepeated = 3,
+ }
+
+ }
+
+ [global::ProtoBuf.ProtoContract()]
+ public partial class OneofDescriptorProto : global::ProtoBuf.IExtensible
+ {
+ private global::ProtoBuf.IExtension __pbn__extensionData;
+ global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
+ => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
+
+ [global::ProtoBuf.ProtoMember(1, Name = @"name")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string Name
+ {
+ get => __pbn__Name ?? "";
+ set => __pbn__Name = value;
+ }
+ public bool ShouldSerializeName() => __pbn__Name != null;
+ public void ResetName() => __pbn__Name = null;
+ private string __pbn__Name;
+
+ [global::ProtoBuf.ProtoMember(2, Name = @"options")]
+ public OneofOptions Options { get; set; }
+
+ }
+
+ [global::ProtoBuf.ProtoContract()]
+ public partial class EnumDescriptorProto : global::ProtoBuf.IExtensible
+ {
+ private global::ProtoBuf.IExtension __pbn__extensionData;
+ global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
+ => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
+
+ [global::ProtoBuf.ProtoMember(1, Name = @"name")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string Name
+ {
+ get => __pbn__Name ?? "";
+ set => __pbn__Name = value;
+ }
+ public bool ShouldSerializeName() => __pbn__Name != null;
+ public void ResetName() => __pbn__Name = null;
+ private string __pbn__Name;
+
+ [global::ProtoBuf.ProtoMember(2, Name = @"value")]
+ public global::System.Collections.Generic.List Values { get; } = new global::System.Collections.Generic.List();
+
+ [global::ProtoBuf.ProtoMember(3, Name = @"options")]
+ public EnumOptions Options { get; set; }
+
+ [global::ProtoBuf.ProtoMember(4, Name = @"reserved_range")]
+ public global::System.Collections.Generic.List ReservedRanges { get; } = new global::System.Collections.Generic.List();
+
+ [global::ProtoBuf.ProtoMember(5, Name = @"reserved_name")]
+ public global::System.Collections.Generic.List ReservedNames { get; } = new global::System.Collections.Generic.List();
+
+ [global::ProtoBuf.ProtoContract()]
+ public partial class EnumReservedRange : global::ProtoBuf.IExtensible
+ {
+ private global::ProtoBuf.IExtension __pbn__extensionData;
+ global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
+ => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
+
+ [global::ProtoBuf.ProtoMember(1, Name = @"start")]
+ public int Start
+ {
+ get => __pbn__Start.GetValueOrDefault();
+ set => __pbn__Start = value;
+ }
+ public bool ShouldSerializeStart() => __pbn__Start != null;
+ public void ResetStart() => __pbn__Start = null;
+ private int? __pbn__Start;
+
+ [global::ProtoBuf.ProtoMember(2, Name = @"end")]
+ public int End
+ {
+ get => __pbn__End.GetValueOrDefault();
+ set => __pbn__End = value;
+ }
+ public bool ShouldSerializeEnd() => __pbn__End != null;
+ public void ResetEnd() => __pbn__End = null;
+ private int? __pbn__End;
+
+ }
+
+ }
+
+ [global::ProtoBuf.ProtoContract()]
+ public partial class EnumValueDescriptorProto : global::ProtoBuf.IExtensible
+ {
+ private global::ProtoBuf.IExtension __pbn__extensionData;
+ global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
+ => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
+
+ [global::ProtoBuf.ProtoMember(1, Name = @"name")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string Name
+ {
+ get => __pbn__Name ?? "";
+ set => __pbn__Name = value;
+ }
+ public bool ShouldSerializeName() => __pbn__Name != null;
+ public void ResetName() => __pbn__Name = null;
+ private string __pbn__Name;
+
+ [global::ProtoBuf.ProtoMember(2, Name = @"number")]
+ public int Number
+ {
+ get => __pbn__Number.GetValueOrDefault();
+ set => __pbn__Number = value;
+ }
+ public bool ShouldSerializeNumber() => __pbn__Number != null;
+ public void ResetNumber() => __pbn__Number = null;
+ private int? __pbn__Number;
+
+ [global::ProtoBuf.ProtoMember(3, Name = @"options")]
+ public EnumValueOptions Options { get; set; }
+
+ }
+
+ [global::ProtoBuf.ProtoContract()]
+ public partial class ServiceDescriptorProto : global::ProtoBuf.IExtensible
+ {
+ private global::ProtoBuf.IExtension __pbn__extensionData;
+ global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
+ => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
+
+ [global::ProtoBuf.ProtoMember(1, Name = @"name")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string Name
+ {
+ get => __pbn__Name ?? "";
+ set => __pbn__Name = value;
+ }
+ public bool ShouldSerializeName() => __pbn__Name != null;
+ public void ResetName() => __pbn__Name = null;
+ private string __pbn__Name;
+
+ [global::ProtoBuf.ProtoMember(2, Name = @"method")]
+ public global::System.Collections.Generic.List Methods { get; } = new global::System.Collections.Generic.List();
+
+ [global::ProtoBuf.ProtoMember(3, Name = @"options")]
+ public ServiceOptions Options { get; set; }
+
+ }
+
+ [global::ProtoBuf.ProtoContract()]
+ public partial class MethodDescriptorProto : global::ProtoBuf.IExtensible
+ {
+ private global::ProtoBuf.IExtension __pbn__extensionData;
+ global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
+ => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
+
+ [global::ProtoBuf.ProtoMember(1, Name = @"name")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string Name
+ {
+ get => __pbn__Name ?? "";
+ set => __pbn__Name = value;
+ }
+ public bool ShouldSerializeName() => __pbn__Name != null;
+ public void ResetName() => __pbn__Name = null;
+ private string __pbn__Name;
+
+ [global::ProtoBuf.ProtoMember(2, Name = @"input_type")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string InputType
+ {
+ get => __pbn__InputType ?? "";
+ set => __pbn__InputType = value;
+ }
+ public bool ShouldSerializeInputType() => __pbn__InputType != null;
+ public void ResetInputType() => __pbn__InputType = null;
+ private string __pbn__InputType;
+
+ [global::ProtoBuf.ProtoMember(3, Name = @"output_type")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string OutputType
+ {
+ get => __pbn__OutputType ?? "";
+ set => __pbn__OutputType = value;
+ }
+ public bool ShouldSerializeOutputType() => __pbn__OutputType != null;
+ public void ResetOutputType() => __pbn__OutputType = null;
+ private string __pbn__OutputType;
+
+ [global::ProtoBuf.ProtoMember(4, Name = @"options")]
+ public MethodOptions Options { get; set; }
+
+ [global::ProtoBuf.ProtoMember(5, Name = @"client_streaming")]
+ [global::System.ComponentModel.DefaultValue(false)]
+ public bool ClientStreaming
+ {
+ get => __pbn__ClientStreaming ?? false;
+ set => __pbn__ClientStreaming = value;
+ }
+ public bool ShouldSerializeClientStreaming() => __pbn__ClientStreaming != null;
+ public void ResetClientStreaming() => __pbn__ClientStreaming = null;
+ private bool? __pbn__ClientStreaming;
+
+ [global::ProtoBuf.ProtoMember(6, Name = @"server_streaming")]
+ [global::System.ComponentModel.DefaultValue(false)]
+ public bool ServerStreaming
+ {
+ get => __pbn__ServerStreaming ?? false;
+ set => __pbn__ServerStreaming = value;
+ }
+ public bool ShouldSerializeServerStreaming() => __pbn__ServerStreaming != null;
+ public void ResetServerStreaming() => __pbn__ServerStreaming = null;
+ private bool? __pbn__ServerStreaming;
+
+ }
+
+ [global::ProtoBuf.ProtoContract()]
+ public partial class FileOptions : global::ProtoBuf.IExtensible
+ {
+ private global::ProtoBuf.IExtension __pbn__extensionData;
+ global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
+ => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
+
+ [global::ProtoBuf.ProtoMember(1, Name = @"java_package")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string JavaPackage
+ {
+ get => __pbn__JavaPackage ?? "";
+ set => __pbn__JavaPackage = value;
+ }
+ public bool ShouldSerializeJavaPackage() => __pbn__JavaPackage != null;
+ public void ResetJavaPackage() => __pbn__JavaPackage = null;
+ private string __pbn__JavaPackage;
+
+ [global::ProtoBuf.ProtoMember(8, Name = @"java_outer_classname")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string JavaOuterClassname
+ {
+ get => __pbn__JavaOuterClassname ?? "";
+ set => __pbn__JavaOuterClassname = value;
+ }
+ public bool ShouldSerializeJavaOuterClassname() => __pbn__JavaOuterClassname != null;
+ public void ResetJavaOuterClassname() => __pbn__JavaOuterClassname = null;
+ private string __pbn__JavaOuterClassname;
+
+ [global::ProtoBuf.ProtoMember(10, Name = @"java_multiple_files")]
+ [global::System.ComponentModel.DefaultValue(false)]
+ public bool JavaMultipleFiles
+ {
+ get => __pbn__JavaMultipleFiles ?? false;
+ set => __pbn__JavaMultipleFiles = value;
+ }
+ public bool ShouldSerializeJavaMultipleFiles() => __pbn__JavaMultipleFiles != null;
+ public void ResetJavaMultipleFiles() => __pbn__JavaMultipleFiles = null;
+ private bool? __pbn__JavaMultipleFiles;
+
+ [global::ProtoBuf.ProtoMember(20, Name = @"java_generate_equals_and_hash")]
+ [global::System.Obsolete]
+ public bool JavaGenerateEqualsAndHash
+ {
+ get => __pbn__JavaGenerateEqualsAndHash.GetValueOrDefault();
+ set => __pbn__JavaGenerateEqualsAndHash = value;
+ }
+ public bool ShouldSerializeJavaGenerateEqualsAndHash() => __pbn__JavaGenerateEqualsAndHash != null;
+ public void ResetJavaGenerateEqualsAndHash() => __pbn__JavaGenerateEqualsAndHash = null;
+ private bool? __pbn__JavaGenerateEqualsAndHash;
+
+ [global::ProtoBuf.ProtoMember(27, Name = @"java_string_check_utf8")]
+ [global::System.ComponentModel.DefaultValue(false)]
+ public bool JavaStringCheckUtf8
+ {
+ get => __pbn__JavaStringCheckUtf8 ?? false;
+ set => __pbn__JavaStringCheckUtf8 = value;
+ }
+ public bool ShouldSerializeJavaStringCheckUtf8() => __pbn__JavaStringCheckUtf8 != null;
+ public void ResetJavaStringCheckUtf8() => __pbn__JavaStringCheckUtf8 = null;
+ private bool? __pbn__JavaStringCheckUtf8;
+
+ [global::ProtoBuf.ProtoMember(9, Name = @"optimize_for")]
+ [global::System.ComponentModel.DefaultValue(OptimizeMode.Speed)]
+ public OptimizeMode OptimizeFor
+ {
+ get => __pbn__OptimizeFor ?? OptimizeMode.Speed;
+ set => __pbn__OptimizeFor = value;
+ }
+ public bool ShouldSerializeOptimizeFor() => __pbn__OptimizeFor != null;
+ public void ResetOptimizeFor() => __pbn__OptimizeFor = null;
+ private OptimizeMode? __pbn__OptimizeFor;
+
+ [global::ProtoBuf.ProtoMember(11, Name = @"go_package")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string GoPackage
+ {
+ get => __pbn__GoPackage ?? "";
+ set => __pbn__GoPackage = value;
+ }
+ public bool ShouldSerializeGoPackage() => __pbn__GoPackage != null;
+ public void ResetGoPackage() => __pbn__GoPackage = null;
+ private string __pbn__GoPackage;
+
+ [global::ProtoBuf.ProtoMember(16, Name = @"cc_generic_services")]
+ [global::System.ComponentModel.DefaultValue(false)]
+ public bool CcGenericServices
+ {
+ get => __pbn__CcGenericServices ?? false;
+ set => __pbn__CcGenericServices = value;
+ }
+ public bool ShouldSerializeCcGenericServices() => __pbn__CcGenericServices != null;
+ public void ResetCcGenericServices() => __pbn__CcGenericServices = null;
+ private bool? __pbn__CcGenericServices;
+
+ [global::ProtoBuf.ProtoMember(17, Name = @"java_generic_services")]
+ [global::System.ComponentModel.DefaultValue(false)]
+ public bool JavaGenericServices
+ {
+ get => __pbn__JavaGenericServices ?? false;
+ set => __pbn__JavaGenericServices = value;
+ }
+ public bool ShouldSerializeJavaGenericServices() => __pbn__JavaGenericServices != null;
+ public void ResetJavaGenericServices() => __pbn__JavaGenericServices = null;
+ private bool? __pbn__JavaGenericServices;
+
+ [global::ProtoBuf.ProtoMember(18, Name = @"py_generic_services")]
+ [global::System.ComponentModel.DefaultValue(false)]
+ public bool PyGenericServices
+ {
+ get => __pbn__PyGenericServices ?? false;
+ set => __pbn__PyGenericServices = value;
+ }
+ public bool ShouldSerializePyGenericServices() => __pbn__PyGenericServices != null;
+ public void ResetPyGenericServices() => __pbn__PyGenericServices = null;
+ private bool? __pbn__PyGenericServices;
+
+ [global::ProtoBuf.ProtoMember(42, Name = @"php_generic_services")]
+ [global::System.ComponentModel.DefaultValue(false)]
+ public bool PhpGenericServices
+ {
+ get => __pbn__PhpGenericServices ?? false;
+ set => __pbn__PhpGenericServices = value;
+ }
+ public bool ShouldSerializePhpGenericServices() => __pbn__PhpGenericServices != null;
+ public void ResetPhpGenericServices() => __pbn__PhpGenericServices = null;
+ private bool? __pbn__PhpGenericServices;
+
+ [global::ProtoBuf.ProtoMember(23, Name = @"deprecated")]
+ [global::System.ComponentModel.DefaultValue(false)]
+ public bool Deprecated
+ {
+ get => __pbn__Deprecated ?? false;
+ set => __pbn__Deprecated = value;
+ }
+ public bool ShouldSerializeDeprecated() => __pbn__Deprecated != null;
+ public void ResetDeprecated() => __pbn__Deprecated = null;
+ private bool? __pbn__Deprecated;
+
+ [global::ProtoBuf.ProtoMember(31, Name = @"cc_enable_arenas")]
+ [global::System.ComponentModel.DefaultValue(true)]
+ public bool CcEnableArenas
+ {
+ get => __pbn__CcEnableArenas ?? true;
+ set => __pbn__CcEnableArenas = value;
+ }
+ public bool ShouldSerializeCcEnableArenas() => __pbn__CcEnableArenas != null;
+ public void ResetCcEnableArenas() => __pbn__CcEnableArenas = null;
+ private bool? __pbn__CcEnableArenas;
+
+ [global::ProtoBuf.ProtoMember(36, Name = @"objc_class_prefix")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string ObjcClassPrefix
+ {
+ get => __pbn__ObjcClassPrefix ?? "";
+ set => __pbn__ObjcClassPrefix = value;
+ }
+ public bool ShouldSerializeObjcClassPrefix() => __pbn__ObjcClassPrefix != null;
+ public void ResetObjcClassPrefix() => __pbn__ObjcClassPrefix = null;
+ private string __pbn__ObjcClassPrefix;
+
+ [global::ProtoBuf.ProtoMember(37, Name = @"csharp_namespace")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string CsharpNamespace
+ {
+ get => __pbn__CsharpNamespace ?? "";
+ set => __pbn__CsharpNamespace = value;
+ }
+ public bool ShouldSerializeCsharpNamespace() => __pbn__CsharpNamespace != null;
+ public void ResetCsharpNamespace() => __pbn__CsharpNamespace = null;
+ private string __pbn__CsharpNamespace;
+
+ [global::ProtoBuf.ProtoMember(39, Name = @"swift_prefix")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string SwiftPrefix
+ {
+ get => __pbn__SwiftPrefix ?? "";
+ set => __pbn__SwiftPrefix = value;
+ }
+ public bool ShouldSerializeSwiftPrefix() => __pbn__SwiftPrefix != null;
+ public void ResetSwiftPrefix() => __pbn__SwiftPrefix = null;
+ private string __pbn__SwiftPrefix;
+
+ [global::ProtoBuf.ProtoMember(40, Name = @"php_class_prefix")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string PhpClassPrefix
+ {
+ get => __pbn__PhpClassPrefix ?? "";
+ set => __pbn__PhpClassPrefix = value;
+ }
+ public bool ShouldSerializePhpClassPrefix() => __pbn__PhpClassPrefix != null;
+ public void ResetPhpClassPrefix() => __pbn__PhpClassPrefix = null;
+ private string __pbn__PhpClassPrefix;
+
+ [global::ProtoBuf.ProtoMember(41, Name = @"php_namespace")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string PhpNamespace
+ {
+ get => __pbn__PhpNamespace ?? "";
+ set => __pbn__PhpNamespace = value;
+ }
+ public bool ShouldSerializePhpNamespace() => __pbn__PhpNamespace != null;
+ public void ResetPhpNamespace() => __pbn__PhpNamespace = null;
+ private string __pbn__PhpNamespace;
+
+ [global::ProtoBuf.ProtoMember(44, Name = @"php_metadata_namespace")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string PhpMetadataNamespace
+ {
+ get => __pbn__PhpMetadataNamespace ?? "";
+ set => __pbn__PhpMetadataNamespace = value;
+ }
+ public bool ShouldSerializePhpMetadataNamespace() => __pbn__PhpMetadataNamespace != null;
+ public void ResetPhpMetadataNamespace() => __pbn__PhpMetadataNamespace = null;
+ private string __pbn__PhpMetadataNamespace;
+
+ [global::ProtoBuf.ProtoMember(45, Name = @"ruby_package")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string RubyPackage
+ {
+ get => __pbn__RubyPackage ?? "";
+ set => __pbn__RubyPackage = value;
+ }
+ public bool ShouldSerializeRubyPackage() => __pbn__RubyPackage != null;
+ public void ResetRubyPackage() => __pbn__RubyPackage = null;
+ private string __pbn__RubyPackage;
+
+ [global::ProtoBuf.ProtoMember(999, Name = @"uninterpreted_option")]
+ public global::System.Collections.Generic.List UninterpretedOptions { get; } = new global::System.Collections.Generic.List();
+
+ [global::ProtoBuf.ProtoContract()]
+ public enum OptimizeMode
+ {
+ [global::ProtoBuf.ProtoEnum(Name = @"SPEED")]
+ Speed = 1,
+ [global::ProtoBuf.ProtoEnum(Name = @"CODE_SIZE")]
+ CodeSize = 2,
+ [global::ProtoBuf.ProtoEnum(Name = @"LITE_RUNTIME")]
+ LiteRuntime = 3,
+ }
+
+ }
+
+ [global::ProtoBuf.ProtoContract()]
+ public partial class MessageOptions : global::ProtoBuf.IExtensible
+ {
+ private global::ProtoBuf.IExtension __pbn__extensionData;
+ global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
+ => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
+
+ [global::ProtoBuf.ProtoMember(1, Name = @"message_set_wire_format")]
+ [global::System.ComponentModel.DefaultValue(false)]
+ public bool MessageSetWireFormat
+ {
+ get => __pbn__MessageSetWireFormat ?? false;
+ set => __pbn__MessageSetWireFormat = value;
+ }
+ public bool ShouldSerializeMessageSetWireFormat() => __pbn__MessageSetWireFormat != null;
+ public void ResetMessageSetWireFormat() => __pbn__MessageSetWireFormat = null;
+ private bool? __pbn__MessageSetWireFormat;
+
+ [global::ProtoBuf.ProtoMember(2, Name = @"no_standard_descriptor_accessor")]
+ [global::System.ComponentModel.DefaultValue(false)]
+ public bool NoStandardDescriptorAccessor
+ {
+ get => __pbn__NoStandardDescriptorAccessor ?? false;
+ set => __pbn__NoStandardDescriptorAccessor = value;
+ }
+ public bool ShouldSerializeNoStandardDescriptorAccessor() => __pbn__NoStandardDescriptorAccessor != null;
+ public void ResetNoStandardDescriptorAccessor() => __pbn__NoStandardDescriptorAccessor = null;
+ private bool? __pbn__NoStandardDescriptorAccessor;
+
+ [global::ProtoBuf.ProtoMember(3, Name = @"deprecated")]
+ [global::System.ComponentModel.DefaultValue(false)]
+ public bool Deprecated
+ {
+ get => __pbn__Deprecated ?? false;
+ set => __pbn__Deprecated = value;
+ }
+ public bool ShouldSerializeDeprecated() => __pbn__Deprecated != null;
+ public void ResetDeprecated() => __pbn__Deprecated = null;
+ private bool? __pbn__Deprecated;
+
+ [global::ProtoBuf.ProtoMember(7, Name = @"map_entry")]
+ public bool MapEntry
+ {
+ get => __pbn__MapEntry.GetValueOrDefault();
+ set => __pbn__MapEntry = value;
+ }
+ public bool ShouldSerializeMapEntry() => __pbn__MapEntry != null;
+ public void ResetMapEntry() => __pbn__MapEntry = null;
+ private bool? __pbn__MapEntry;
+
+ [global::ProtoBuf.ProtoMember(999, Name = @"uninterpreted_option")]
+ public global::System.Collections.Generic.List UninterpretedOptions { get; } = new global::System.Collections.Generic.List();
+
+ }
+
+ [global::ProtoBuf.ProtoContract()]
+ public partial class FieldOptions : global::ProtoBuf.IExtensible
+ {
+ private global::ProtoBuf.IExtension __pbn__extensionData;
+ global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
+ => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
+
+ [global::ProtoBuf.ProtoMember(1, Name = @"ctype")]
+ [global::System.ComponentModel.DefaultValue(CType.String)]
+ public CType Ctype
+ {
+ get => __pbn__Ctype ?? CType.String;
+ set => __pbn__Ctype = value;
+ }
+ public bool ShouldSerializeCtype() => __pbn__Ctype != null;
+ public void ResetCtype() => __pbn__Ctype = null;
+ private CType? __pbn__Ctype;
+
+ [global::ProtoBuf.ProtoMember(2, Name = @"packed")]
+ public bool Packed
+ {
+ get => __pbn__Packed.GetValueOrDefault();
+ set => __pbn__Packed = value;
+ }
+ public bool ShouldSerializePacked() => __pbn__Packed != null;
+ public void ResetPacked() => __pbn__Packed = null;
+ private bool? __pbn__Packed;
+
+ [global::ProtoBuf.ProtoMember(6, Name = @"jstype")]
+ [global::System.ComponentModel.DefaultValue(JSType.JsNormal)]
+ public JSType Jstype
+ {
+ get => __pbn__Jstype ?? JSType.JsNormal;
+ set => __pbn__Jstype = value;
+ }
+ public bool ShouldSerializeJstype() => __pbn__Jstype != null;
+ public void ResetJstype() => __pbn__Jstype = null;
+ private JSType? __pbn__Jstype;
+
+ [global::ProtoBuf.ProtoMember(5, Name = @"lazy")]
+ [global::System.ComponentModel.DefaultValue(false)]
+ public bool Lazy
+ {
+ get => __pbn__Lazy ?? false;
+ set => __pbn__Lazy = value;
+ }
+ public bool ShouldSerializeLazy() => __pbn__Lazy != null;
+ public void ResetLazy() => __pbn__Lazy = null;
+ private bool? __pbn__Lazy;
+
+ [global::ProtoBuf.ProtoMember(3, Name = @"deprecated")]
+ [global::System.ComponentModel.DefaultValue(false)]
+ public bool Deprecated
+ {
+ get => __pbn__Deprecated ?? false;
+ set => __pbn__Deprecated = value;
+ }
+ public bool ShouldSerializeDeprecated() => __pbn__Deprecated != null;
+ public void ResetDeprecated() => __pbn__Deprecated = null;
+ private bool? __pbn__Deprecated;
+
+ [global::ProtoBuf.ProtoMember(10, Name = @"weak")]
+ [global::System.ComponentModel.DefaultValue(false)]
+ public bool Weak
+ {
+ get => __pbn__Weak ?? false;
+ set => __pbn__Weak = value;
+ }
+ public bool ShouldSerializeWeak() => __pbn__Weak != null;
+ public void ResetWeak() => __pbn__Weak = null;
+ private bool? __pbn__Weak;
+
+ [global::ProtoBuf.ProtoMember(999, Name = @"uninterpreted_option")]
+ public global::System.Collections.Generic.List UninterpretedOptions { get; } = new global::System.Collections.Generic.List();
+
+ [global::ProtoBuf.ProtoContract()]
+ public enum CType
+ {
+ [global::ProtoBuf.ProtoEnum(Name = @"STRING")]
+ String = 0,
+ [global::ProtoBuf.ProtoEnum(Name = @"CORD")]
+ Cord = 1,
+ [global::ProtoBuf.ProtoEnum(Name = @"STRING_PIECE")]
+ StringPiece = 2,
+ }
+
+ [global::ProtoBuf.ProtoContract()]
+ public enum JSType
+ {
+ [global::ProtoBuf.ProtoEnum(Name = @"JS_NORMAL")]
+ JsNormal = 0,
+ [global::ProtoBuf.ProtoEnum(Name = @"JS_STRING")]
+ JsString = 1,
+ [global::ProtoBuf.ProtoEnum(Name = @"JS_NUMBER")]
+ JsNumber = 2,
+ }
+
+ }
+
+ [global::ProtoBuf.ProtoContract()]
+ public partial class OneofOptions : global::ProtoBuf.IExtensible
+ {
+ private global::ProtoBuf.IExtension __pbn__extensionData;
+ global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
+ => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
+
+ [global::ProtoBuf.ProtoMember(999, Name = @"uninterpreted_option")]
+ public global::System.Collections.Generic.List UninterpretedOptions { get; } = new global::System.Collections.Generic.List();
+
+ }
+
+ [global::ProtoBuf.ProtoContract()]
+ public partial class EnumOptions : global::ProtoBuf.IExtensible
+ {
+ private global::ProtoBuf.IExtension __pbn__extensionData;
+ global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
+ => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
+
+ [global::ProtoBuf.ProtoMember(2, Name = @"allow_alias")]
+ public bool AllowAlias
+ {
+ get => __pbn__AllowAlias.GetValueOrDefault();
+ set => __pbn__AllowAlias = value;
+ }
+ public bool ShouldSerializeAllowAlias() => __pbn__AllowAlias != null;
+ public void ResetAllowAlias() => __pbn__AllowAlias = null;
+ private bool? __pbn__AllowAlias;
+
+ [global::ProtoBuf.ProtoMember(3, Name = @"deprecated")]
+ [global::System.ComponentModel.DefaultValue(false)]
+ public bool Deprecated
+ {
+ get => __pbn__Deprecated ?? false;
+ set => __pbn__Deprecated = value;
+ }
+ public bool ShouldSerializeDeprecated() => __pbn__Deprecated != null;
+ public void ResetDeprecated() => __pbn__Deprecated = null;
+ private bool? __pbn__Deprecated;
+
+ [global::ProtoBuf.ProtoMember(999, Name = @"uninterpreted_option")]
+ public global::System.Collections.Generic.List UninterpretedOptions { get; } = new global::System.Collections.Generic.List();
+
+ }
+
+ [global::ProtoBuf.ProtoContract()]
+ public partial class EnumValueOptions : global::ProtoBuf.IExtensible
+ {
+ private global::ProtoBuf.IExtension __pbn__extensionData;
+ global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
+ => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
+
+ [global::ProtoBuf.ProtoMember(1, Name = @"deprecated")]
+ [global::System.ComponentModel.DefaultValue(false)]
+ public bool Deprecated
+ {
+ get => __pbn__Deprecated ?? false;
+ set => __pbn__Deprecated = value;
+ }
+ public bool ShouldSerializeDeprecated() => __pbn__Deprecated != null;
+ public void ResetDeprecated() => __pbn__Deprecated = null;
+ private bool? __pbn__Deprecated;
+
+ [global::ProtoBuf.ProtoMember(999, Name = @"uninterpreted_option")]
+ public global::System.Collections.Generic.List UninterpretedOptions { get; } = new global::System.Collections.Generic.List();
+
+ }
+
+ [global::ProtoBuf.ProtoContract()]
+ public partial class ServiceOptions : global::ProtoBuf.IExtensible
+ {
+ private global::ProtoBuf.IExtension __pbn__extensionData;
+ global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
+ => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
+
+ [global::ProtoBuf.ProtoMember(33, Name = @"deprecated")]
+ [global::System.ComponentModel.DefaultValue(false)]
+ public bool Deprecated
+ {
+ get => __pbn__Deprecated ?? false;
+ set => __pbn__Deprecated = value;
+ }
+ public bool ShouldSerializeDeprecated() => __pbn__Deprecated != null;
+ public void ResetDeprecated() => __pbn__Deprecated = null;
+ private bool? __pbn__Deprecated;
+
+ [global::ProtoBuf.ProtoMember(999, Name = @"uninterpreted_option")]
+ public global::System.Collections.Generic.List UninterpretedOptions { get; } = new global::System.Collections.Generic.List();
+
+ }
+
+ [global::ProtoBuf.ProtoContract()]
+ public partial class MethodOptions : global::ProtoBuf.IExtensible
+ {
+ private global::ProtoBuf.IExtension __pbn__extensionData;
+ global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
+ => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
+
+ [global::ProtoBuf.ProtoMember(33, Name = @"deprecated")]
+ [global::System.ComponentModel.DefaultValue(false)]
+ public bool Deprecated
+ {
+ get => __pbn__Deprecated ?? false;
+ set => __pbn__Deprecated = value;
+ }
+ public bool ShouldSerializeDeprecated() => __pbn__Deprecated != null;
+ public void ResetDeprecated() => __pbn__Deprecated = null;
+ private bool? __pbn__Deprecated;
+
+ [global::ProtoBuf.ProtoMember(34)]
+ [global::System.ComponentModel.DefaultValue(IdempotencyLevel.IdempotencyUnknown)]
+ public IdempotencyLevel idempotency_level
+ {
+ get => __pbn__idempotency_level ?? IdempotencyLevel.IdempotencyUnknown;
+ set => __pbn__idempotency_level = value;
+ }
+ public bool ShouldSerializeidempotency_level() => __pbn__idempotency_level != null;
+ public void Resetidempotency_level() => __pbn__idempotency_level = null;
+ private IdempotencyLevel? __pbn__idempotency_level;
+
+ [global::ProtoBuf.ProtoMember(999, Name = @"uninterpreted_option")]
+ public global::System.Collections.Generic.List UninterpretedOptions { get; } = new global::System.Collections.Generic.List();
+
+ [global::ProtoBuf.ProtoContract()]
+ public enum IdempotencyLevel
+ {
+ [global::ProtoBuf.ProtoEnum(Name = @"IDEMPOTENCY_UNKNOWN")]
+ IdempotencyUnknown = 0,
+ [global::ProtoBuf.ProtoEnum(Name = @"NO_SIDE_EFFECTS")]
+ NoSideEffects = 1,
+ [global::ProtoBuf.ProtoEnum(Name = @"IDEMPOTENT")]
+ Idempotent = 2,
+ }
+
+ }
+
+ [global::ProtoBuf.ProtoContract()]
+ public partial class UninterpretedOption : global::ProtoBuf.IExtensible
+ {
+ private global::ProtoBuf.IExtension __pbn__extensionData;
+ global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
+ => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
+
+ [global::ProtoBuf.ProtoMember(2, Name = @"name")]
+ public global::System.Collections.Generic.List Names { get; } = new global::System.Collections.Generic.List();
+
+ [global::ProtoBuf.ProtoMember(3, Name = @"identifier_value")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string IdentifierValue
+ {
+ get => __pbn__IdentifierValue ?? "";
+ set => __pbn__IdentifierValue = value;
+ }
+ public bool ShouldSerializeIdentifierValue() => __pbn__IdentifierValue != null;
+ public void ResetIdentifierValue() => __pbn__IdentifierValue = null;
+ private string __pbn__IdentifierValue;
+
+ [global::ProtoBuf.ProtoMember(4, Name = @"positive_int_value")]
+ public ulong PositiveIntValue
+ {
+ get => __pbn__PositiveIntValue.GetValueOrDefault();
+ set => __pbn__PositiveIntValue = value;
+ }
+ public bool ShouldSerializePositiveIntValue() => __pbn__PositiveIntValue != null;
+ public void ResetPositiveIntValue() => __pbn__PositiveIntValue = null;
+ private ulong? __pbn__PositiveIntValue;
+
+ [global::ProtoBuf.ProtoMember(5, Name = @"negative_int_value")]
+ public long NegativeIntValue
+ {
+ get => __pbn__NegativeIntValue.GetValueOrDefault();
+ set => __pbn__NegativeIntValue = value;
+ }
+ public bool ShouldSerializeNegativeIntValue() => __pbn__NegativeIntValue != null;
+ public void ResetNegativeIntValue() => __pbn__NegativeIntValue = null;
+ private long? __pbn__NegativeIntValue;
+
+ [global::ProtoBuf.ProtoMember(6, Name = @"double_value")]
+ public double DoubleValue
+ {
+ get => __pbn__DoubleValue.GetValueOrDefault();
+ set => __pbn__DoubleValue = value;
+ }
+ public bool ShouldSerializeDoubleValue() => __pbn__DoubleValue != null;
+ public void ResetDoubleValue() => __pbn__DoubleValue = null;
+ private double? __pbn__DoubleValue;
+
+ [global::ProtoBuf.ProtoMember(7, Name = @"string_value")]
+ public byte[] StringValue
+ {
+ get => __pbn__StringValue;
+ set => __pbn__StringValue = value;
+ }
+ public bool ShouldSerializeStringValue() => __pbn__StringValue != null;
+ public void ResetStringValue() => __pbn__StringValue = null;
+ private byte[] __pbn__StringValue;
+
+ [global::ProtoBuf.ProtoMember(8, Name = @"aggregate_value")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string AggregateValue
+ {
+ get => __pbn__AggregateValue ?? "";
+ set => __pbn__AggregateValue = value;
+ }
+ public bool ShouldSerializeAggregateValue() => __pbn__AggregateValue != null;
+ public void ResetAggregateValue() => __pbn__AggregateValue = null;
+ private string __pbn__AggregateValue;
+
+ [global::ProtoBuf.ProtoContract()]
+ public partial class NamePart : global::ProtoBuf.IExtensible
+ {
+ private global::ProtoBuf.IExtension __pbn__extensionData;
+ global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
+ => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
+
+ [global::ProtoBuf.ProtoMember(1, IsRequired = true)]
+ public string name_part { get; set; }
+
+ [global::ProtoBuf.ProtoMember(2, Name = @"is_extension", IsRequired = true)]
+ public bool IsExtension { get; set; }
+
+ }
+
+ }
+
+ [global::ProtoBuf.ProtoContract()]
+ public partial class SourceCodeInfo : global::ProtoBuf.IExtensible
+ {
+ private global::ProtoBuf.IExtension __pbn__extensionData;
+ global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
+ => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
+
+ [global::ProtoBuf.ProtoMember(1, Name = @"location")]
+ public global::System.Collections.Generic.List Locations { get; } = new global::System.Collections.Generic.List();
+
+ [global::ProtoBuf.ProtoContract()]
+ public partial class Location : global::ProtoBuf.IExtensible
+ {
+ private global::ProtoBuf.IExtension __pbn__extensionData;
+ global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
+ => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
+
+ [global::ProtoBuf.ProtoMember(1, Name = @"path", IsPacked = true)]
+ public int[] Paths { get; set; }
+
+ [global::ProtoBuf.ProtoMember(2, Name = @"span", IsPacked = true)]
+ public int[] Spans { get; set; }
+
+ [global::ProtoBuf.ProtoMember(3, Name = @"leading_comments")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string LeadingComments
+ {
+ get => __pbn__LeadingComments ?? "";
+ set => __pbn__LeadingComments = value;
+ }
+ public bool ShouldSerializeLeadingComments() => __pbn__LeadingComments != null;
+ public void ResetLeadingComments() => __pbn__LeadingComments = null;
+ private string __pbn__LeadingComments;
+
+ [global::ProtoBuf.ProtoMember(4, Name = @"trailing_comments")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string TrailingComments
+ {
+ get => __pbn__TrailingComments ?? "";
+ set => __pbn__TrailingComments = value;
+ }
+ public bool ShouldSerializeTrailingComments() => __pbn__TrailingComments != null;
+ public void ResetTrailingComments() => __pbn__TrailingComments = null;
+ private string __pbn__TrailingComments;
+
+ [global::ProtoBuf.ProtoMember(6, Name = @"leading_detached_comments")]
+ public global::System.Collections.Generic.List LeadingDetachedComments { get; } = new global::System.Collections.Generic.List();
+
+ }
+
+ }
+
+ [global::ProtoBuf.ProtoContract()]
+ public partial class GeneratedCodeInfo : global::ProtoBuf.IExtensible
+ {
+ private global::ProtoBuf.IExtension __pbn__extensionData;
+ global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
+ => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
+
+ [global::ProtoBuf.ProtoMember(1, Name = @"annotation")]
+ public global::System.Collections.Generic.List Annotations { get; } = new global::System.Collections.Generic.List();
+
+ [global::ProtoBuf.ProtoContract()]
+ public partial class Annotation : global::ProtoBuf.IExtensible
+ {
+ private global::ProtoBuf.IExtension __pbn__extensionData;
+ global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
+ => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
+
+ [global::ProtoBuf.ProtoMember(1, Name = @"path", IsPacked = true)]
+ public int[] Paths { get; set; }
+
+ [global::ProtoBuf.ProtoMember(2, Name = @"source_file")]
+ [global::System.ComponentModel.DefaultValue("")]
+ public string SourceFile
+ {
+ get => __pbn__SourceFile ?? "";
+ set => __pbn__SourceFile = value;
+ }
+ public bool ShouldSerializeSourceFile() => __pbn__SourceFile != null;
+ public void ResetSourceFile() => __pbn__SourceFile = null;
+ private string __pbn__SourceFile;
+
+ [global::ProtoBuf.ProtoMember(3, Name = @"begin")]
+ public int Begin
+ {
+ get => __pbn__Begin.GetValueOrDefault();
+ set => __pbn__Begin = value;
+ }
+ public bool ShouldSerializeBegin() => __pbn__Begin != null;
+ public void ResetBegin() => __pbn__Begin = null;
+ private int? __pbn__Begin;
+
+ [global::ProtoBuf.ProtoMember(4, Name = @"end")]
+ public int End
+ {
+ get => __pbn__End.GetValueOrDefault();
+ set => __pbn__End = value;
+ }
+ public bool ShouldSerializeEnd() => __pbn__End != null;
+ public void ResetEnd() => __pbn__End = null;
+ private int? __pbn__End;
+
+ }
+
+ }
+
+}
+
+#pragma warning restore CS0612, CS0618, CS1591, CS3021, IDE0079, IDE1006, RCS1036, RCS1057, RCS1085, RCS1192
+#endregion
+
diff --git a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/GrpcClient/Reflection/Reflection.cs b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/GrpcClient/Reflection/Reflection.cs
new file mode 100644
index 0000000..b371c75
--- /dev/null
+++ b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/GrpcClient/Reflection/Reflection.cs
@@ -0,0 +1,1669 @@
+//
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: reflection.proto
+//
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.Protobuf;
+using pbc = global::Google.Protobuf.Collections;
+using pbr = global::Google.Protobuf.Reflection;
+using scg = global::System.Collections.Generic;
+namespace Grpc.Reflection.V1Alpha {
+
+ /// Holder for reflection information generated from reflection.proto
+ public static partial class ReflectionReflection {
+
+ #region Descriptor
+ /// File descriptor for reflection.proto
+ public static pbr::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbr::FileDescriptor descriptor;
+
+ static ReflectionReflection() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "ChByZWZsZWN0aW9uLnByb3RvEhdncnBjLnJlZmxlY3Rpb24udjFhbHBoYSKK",
+ "AgoXU2VydmVyUmVmbGVjdGlvblJlcXVlc3QSDAoEaG9zdBgBIAEoCRIaChBm",
+ "aWxlX2J5X2ZpbGVuYW1lGAMgASgJSAASIAoWZmlsZV9jb250YWluaW5nX3N5",
+ "bWJvbBgEIAEoCUgAEk4KGWZpbGVfY29udGFpbmluZ19leHRlbnNpb24YBSAB",
+ "KAsyKS5ncnBjLnJlZmxlY3Rpb24udjFhbHBoYS5FeHRlbnNpb25SZXF1ZXN0",
+ "SAASJwodYWxsX2V4dGVuc2lvbl9udW1iZXJzX29mX3R5cGUYBiABKAlIABIX",
+ "Cg1saXN0X3NlcnZpY2VzGAcgASgJSABCEQoPbWVzc2FnZV9yZXF1ZXN0IkUK",
+ "EEV4dGVuc2lvblJlcXVlc3QSFwoPY29udGFpbmluZ190eXBlGAEgASgJEhgK",
+ "EGV4dGVuc2lvbl9udW1iZXIYAiABKAUi0QMKGFNlcnZlclJlZmxlY3Rpb25S",
+ "ZXNwb25zZRISCgp2YWxpZF9ob3N0GAEgASgJEkoKEG9yaWdpbmFsX3JlcXVl",
+ "c3QYAiABKAsyMC5ncnBjLnJlZmxlY3Rpb24udjFhbHBoYS5TZXJ2ZXJSZWZs",
+ "ZWN0aW9uUmVxdWVzdBJTChhmaWxlX2Rlc2NyaXB0b3JfcmVzcG9uc2UYBCAB",
+ "KAsyLy5ncnBjLnJlZmxlY3Rpb24udjFhbHBoYS5GaWxlRGVzY3JpcHRvclJl",
+ "c3BvbnNlSAASWgoeYWxsX2V4dGVuc2lvbl9udW1iZXJzX3Jlc3BvbnNlGAUg",
+ "ASgLMjAuZ3JwYy5yZWZsZWN0aW9uLnYxYWxwaGEuRXh0ZW5zaW9uTnVtYmVy",
+ "UmVzcG9uc2VIABJOChZsaXN0X3NlcnZpY2VzX3Jlc3BvbnNlGAYgASgLMiwu",
+ "Z3JwYy5yZWZsZWN0aW9uLnYxYWxwaGEuTGlzdFNlcnZpY2VSZXNwb25zZUgA",
+ "EkAKDmVycm9yX3Jlc3BvbnNlGAcgASgLMiYuZ3JwYy5yZWZsZWN0aW9uLnYx",
+ "YWxwaGEuRXJyb3JSZXNwb25zZUgAQhIKEG1lc3NhZ2VfcmVzcG9uc2UiNwoW",
+ "RmlsZURlc2NyaXB0b3JSZXNwb25zZRIdChVmaWxlX2Rlc2NyaXB0b3JfcHJv",
+ "dG8YASADKAwiSwoXRXh0ZW5zaW9uTnVtYmVyUmVzcG9uc2USFgoOYmFzZV90",
+ "eXBlX25hbWUYASABKAkSGAoQZXh0ZW5zaW9uX251bWJlchgCIAMoBSJQChNM",
+ "aXN0U2VydmljZVJlc3BvbnNlEjkKB3NlcnZpY2UYASADKAsyKC5ncnBjLnJl",
+ "ZmxlY3Rpb24udjFhbHBoYS5TZXJ2aWNlUmVzcG9uc2UiHwoPU2VydmljZVJl",
+ "c3BvbnNlEgwKBG5hbWUYASABKAkiOgoNRXJyb3JSZXNwb25zZRISCgplcnJv",
+ "cl9jb2RlGAEgASgFEhUKDWVycm9yX21lc3NhZ2UYAiABKAkykwEKEFNlcnZl",
+ "clJlZmxlY3Rpb24SfwoUU2VydmVyUmVmbGVjdGlvbkluZm8SMC5ncnBjLnJl",
+ "ZmxlY3Rpb24udjFhbHBoYS5TZXJ2ZXJSZWZsZWN0aW9uUmVxdWVzdBoxLmdy",
+ "cGMucmVmbGVjdGlvbi52MWFscGhhLlNlcnZlclJlZmxlY3Rpb25SZXNwb25z",
+ "ZSgBMAFiBnByb3RvMw=="));
+ descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+ new pbr::FileDescriptor[] { },
+ new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
+ new pbr::GeneratedClrTypeInfo(typeof(global::Grpc.Reflection.V1Alpha.ServerReflectionRequest), global::Grpc.Reflection.V1Alpha.ServerReflectionRequest.Parser, new[]{ "Host", "FileByFilename", "FileContainingSymbol", "FileContainingExtension", "AllExtensionNumbersOfType", "ListServices" }, new[]{ "MessageRequest" }, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::Grpc.Reflection.V1Alpha.ExtensionRequest), global::Grpc.Reflection.V1Alpha.ExtensionRequest.Parser, new[]{ "ContainingType", "ExtensionNumber" }, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::Grpc.Reflection.V1Alpha.ServerReflectionResponse), global::Grpc.Reflection.V1Alpha.ServerReflectionResponse.Parser, new[]{ "ValidHost", "OriginalRequest", "FileDescriptorResponse", "AllExtensionNumbersResponse", "ListServicesResponse", "ErrorResponse" }, new[]{ "MessageResponse" }, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::Grpc.Reflection.V1Alpha.FileDescriptorResponse), global::Grpc.Reflection.V1Alpha.FileDescriptorResponse.Parser, new[]{ "FileDescriptorProto" }, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::Grpc.Reflection.V1Alpha.ExtensionNumberResponse), global::Grpc.Reflection.V1Alpha.ExtensionNumberResponse.Parser, new[]{ "BaseTypeName", "ExtensionNumber" }, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::Grpc.Reflection.V1Alpha.ListServiceResponse), global::Grpc.Reflection.V1Alpha.ListServiceResponse.Parser, new[]{ "Service" }, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::Grpc.Reflection.V1Alpha.ServiceResponse), global::Grpc.Reflection.V1Alpha.ServiceResponse.Parser, new[]{ "Name" }, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::Grpc.Reflection.V1Alpha.ErrorResponse), global::Grpc.Reflection.V1Alpha.ErrorResponse.Parser, new[]{ "ErrorCode", "ErrorMessage" }, null, null, null)
+ }));
+ }
+ #endregion
+
+ }
+ #region Messages
+ ///
+ /// The message sent by the client when calling ServerReflectionInfo method.
+ ///
+ public sealed partial class ServerReflectionRequest : pb::IMessage {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ServerReflectionRequest());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Grpc.Reflection.V1Alpha.ReflectionReflection.Descriptor.MessageTypes[0]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ServerReflectionRequest() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ServerReflectionRequest(ServerReflectionRequest other) : this() {
+ host_ = other.host_;
+ switch (other.MessageRequestCase) {
+ case MessageRequestOneofCase.FileByFilename:
+ FileByFilename = other.FileByFilename;
+ break;
+ case MessageRequestOneofCase.FileContainingSymbol:
+ FileContainingSymbol = other.FileContainingSymbol;
+ break;
+ case MessageRequestOneofCase.FileContainingExtension:
+ FileContainingExtension = other.FileContainingExtension.Clone();
+ break;
+ case MessageRequestOneofCase.AllExtensionNumbersOfType:
+ AllExtensionNumbersOfType = other.AllExtensionNumbersOfType;
+ break;
+ case MessageRequestOneofCase.ListServices:
+ ListServices = other.ListServices;
+ break;
+ }
+
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ServerReflectionRequest Clone() {
+ return new ServerReflectionRequest(this);
+ }
+
+ /// Field number for the "host" field.
+ public const int HostFieldNumber = 1;
+ private string host_ = "";
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string Host {
+ get { return host_; }
+ set {
+ host_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+
+ /// Field number for the "file_by_filename" field.
+ public const int FileByFilenameFieldNumber = 3;
+ ///
+ /// Find a proto file by the file name.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string FileByFilename {
+ get { return messageRequestCase_ == MessageRequestOneofCase.FileByFilename ? (string) messageRequest_ : ""; }
+ set {
+ messageRequest_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ messageRequestCase_ = MessageRequestOneofCase.FileByFilename;
+ }
+ }
+
+ /// Field number for the "file_containing_symbol" field.
+ public const int FileContainingSymbolFieldNumber = 4;
+ ///
+ /// Find the proto file that declares the given fully-qualified symbol name.
+ /// This field should be a fully-qualified symbol name
+ /// (e.g. <package>.<service>[.<method>] or <package>.<type>).
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string FileContainingSymbol {
+ get { return messageRequestCase_ == MessageRequestOneofCase.FileContainingSymbol ? (string) messageRequest_ : ""; }
+ set {
+ messageRequest_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ messageRequestCase_ = MessageRequestOneofCase.FileContainingSymbol;
+ }
+ }
+
+ /// Field number for the "file_containing_extension" field.
+ public const int FileContainingExtensionFieldNumber = 5;
+ ///
+ /// Find the proto file which defines an extension extending the given
+ /// message type with the given field number.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public global::Grpc.Reflection.V1Alpha.ExtensionRequest FileContainingExtension {
+ get { return messageRequestCase_ == MessageRequestOneofCase.FileContainingExtension ? (global::Grpc.Reflection.V1Alpha.ExtensionRequest) messageRequest_ : null; }
+ set {
+ messageRequest_ = value;
+ messageRequestCase_ = value == null ? MessageRequestOneofCase.None : MessageRequestOneofCase.FileContainingExtension;
+ }
+ }
+
+ /// Field number for the "all_extension_numbers_of_type" field.
+ public const int AllExtensionNumbersOfTypeFieldNumber = 6;
+ ///
+ /// Finds the tag numbers used by all known extensions of the given message
+ /// type, and appends them to ExtensionNumberResponse in an undefined order.
+ /// Its corresponding method is best-effort: it's not guaranteed that the
+ /// reflection service will implement this method, and it's not guaranteed
+ /// that this method will provide all extensions. Returns
+ /// StatusCode::UNIMPLEMENTED if it's not implemented.
+ /// This field should be a fully-qualified type name. The format is
+ /// <package>.<type>
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string AllExtensionNumbersOfType {
+ get { return messageRequestCase_ == MessageRequestOneofCase.AllExtensionNumbersOfType ? (string) messageRequest_ : ""; }
+ set {
+ messageRequest_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ messageRequestCase_ = MessageRequestOneofCase.AllExtensionNumbersOfType;
+ }
+ }
+
+ /// Field number for the "list_services" field.
+ public const int ListServicesFieldNumber = 7;
+ ///
+ /// List the full names of registered services. The content will not be
+ /// checked.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string ListServices {
+ get { return messageRequestCase_ == MessageRequestOneofCase.ListServices ? (string) messageRequest_ : ""; }
+ set {
+ messageRequest_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ messageRequestCase_ = MessageRequestOneofCase.ListServices;
+ }
+ }
+
+ private object messageRequest_;
+ /// Enum of possible cases for the "message_request" oneof.
+ public enum MessageRequestOneofCase {
+ None = 0,
+ FileByFilename = 3,
+ FileContainingSymbol = 4,
+ FileContainingExtension = 5,
+ AllExtensionNumbersOfType = 6,
+ ListServices = 7,
+ }
+ private MessageRequestOneofCase messageRequestCase_ = MessageRequestOneofCase.None;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public MessageRequestOneofCase MessageRequestCase {
+ get { return messageRequestCase_; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void ClearMessageRequest() {
+ messageRequestCase_ = MessageRequestOneofCase.None;
+ messageRequest_ = null;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as ServerReflectionRequest);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(ServerReflectionRequest other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (Host != other.Host) return false;
+ if (FileByFilename != other.FileByFilename) return false;
+ if (FileContainingSymbol != other.FileContainingSymbol) return false;
+ if (!object.Equals(FileContainingExtension, other.FileContainingExtension)) return false;
+ if (AllExtensionNumbersOfType != other.AllExtensionNumbersOfType) return false;
+ if (ListServices != other.ListServices) return false;
+ if (MessageRequestCase != other.MessageRequestCase) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (Host.Length != 0) hash ^= Host.GetHashCode();
+ if (messageRequestCase_ == MessageRequestOneofCase.FileByFilename) hash ^= FileByFilename.GetHashCode();
+ if (messageRequestCase_ == MessageRequestOneofCase.FileContainingSymbol) hash ^= FileContainingSymbol.GetHashCode();
+ if (messageRequestCase_ == MessageRequestOneofCase.FileContainingExtension) hash ^= FileContainingExtension.GetHashCode();
+ if (messageRequestCase_ == MessageRequestOneofCase.AllExtensionNumbersOfType) hash ^= AllExtensionNumbersOfType.GetHashCode();
+ if (messageRequestCase_ == MessageRequestOneofCase.ListServices) hash ^= ListServices.GetHashCode();
+ hash ^= (int) messageRequestCase_;
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output) {
+ if (Host.Length != 0) {
+ output.WriteRawTag(10);
+ output.WriteString(Host);
+ }
+ if (messageRequestCase_ == MessageRequestOneofCase.FileByFilename) {
+ output.WriteRawTag(26);
+ output.WriteString(FileByFilename);
+ }
+ if (messageRequestCase_ == MessageRequestOneofCase.FileContainingSymbol) {
+ output.WriteRawTag(34);
+ output.WriteString(FileContainingSymbol);
+ }
+ if (messageRequestCase_ == MessageRequestOneofCase.FileContainingExtension) {
+ output.WriteRawTag(42);
+ output.WriteMessage(FileContainingExtension);
+ }
+ if (messageRequestCase_ == MessageRequestOneofCase.AllExtensionNumbersOfType) {
+ output.WriteRawTag(50);
+ output.WriteString(AllExtensionNumbersOfType);
+ }
+ if (messageRequestCase_ == MessageRequestOneofCase.ListServices) {
+ output.WriteRawTag(58);
+ output.WriteString(ListServices);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize() {
+ int size = 0;
+ if (Host.Length != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(Host);
+ }
+ if (messageRequestCase_ == MessageRequestOneofCase.FileByFilename) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(FileByFilename);
+ }
+ if (messageRequestCase_ == MessageRequestOneofCase.FileContainingSymbol) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(FileContainingSymbol);
+ }
+ if (messageRequestCase_ == MessageRequestOneofCase.FileContainingExtension) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(FileContainingExtension);
+ }
+ if (messageRequestCase_ == MessageRequestOneofCase.AllExtensionNumbersOfType) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(AllExtensionNumbersOfType);
+ }
+ if (messageRequestCase_ == MessageRequestOneofCase.ListServices) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(ListServices);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(ServerReflectionRequest other) {
+ if (other == null) {
+ return;
+ }
+ if (other.Host.Length != 0) {
+ Host = other.Host;
+ }
+ switch (other.MessageRequestCase) {
+ case MessageRequestOneofCase.FileByFilename:
+ FileByFilename = other.FileByFilename;
+ break;
+ case MessageRequestOneofCase.FileContainingSymbol:
+ FileContainingSymbol = other.FileContainingSymbol;
+ break;
+ case MessageRequestOneofCase.FileContainingExtension:
+ if (FileContainingExtension == null) {
+ FileContainingExtension = new global::Grpc.Reflection.V1Alpha.ExtensionRequest();
+ }
+ FileContainingExtension.MergeFrom(other.FileContainingExtension);
+ break;
+ case MessageRequestOneofCase.AllExtensionNumbersOfType:
+ AllExtensionNumbersOfType = other.AllExtensionNumbersOfType;
+ break;
+ case MessageRequestOneofCase.ListServices:
+ ListServices = other.ListServices;
+ break;
+ }
+
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 10: {
+ Host = input.ReadString();
+ break;
+ }
+ case 26: {
+ FileByFilename = input.ReadString();
+ break;
+ }
+ case 34: {
+ FileContainingSymbol = input.ReadString();
+ break;
+ }
+ case 42: {
+ global::Grpc.Reflection.V1Alpha.ExtensionRequest subBuilder = new global::Grpc.Reflection.V1Alpha.ExtensionRequest();
+ if (messageRequestCase_ == MessageRequestOneofCase.FileContainingExtension) {
+ subBuilder.MergeFrom(FileContainingExtension);
+ }
+ input.ReadMessage(subBuilder);
+ FileContainingExtension = subBuilder;
+ break;
+ }
+ case 50: {
+ AllExtensionNumbersOfType = input.ReadString();
+ break;
+ }
+ case 58: {
+ ListServices = input.ReadString();
+ break;
+ }
+ }
+ }
+ }
+
+ }
+
+ ///
+ /// The type name and extension number sent by the client when requesting
+ /// file_containing_extension.
+ ///
+ public sealed partial class ExtensionRequest : pb::IMessage {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ExtensionRequest());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Grpc.Reflection.V1Alpha.ReflectionReflection.Descriptor.MessageTypes[1]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ExtensionRequest() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ExtensionRequest(ExtensionRequest other) : this() {
+ containingType_ = other.containingType_;
+ extensionNumber_ = other.extensionNumber_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ExtensionRequest Clone() {
+ return new ExtensionRequest(this);
+ }
+
+ /// Field number for the "containing_type" field.
+ public const int ContainingTypeFieldNumber = 1;
+ private string containingType_ = "";
+ ///
+ /// Fully-qualified type name. The format should be <package>.<type>
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string ContainingType {
+ get { return containingType_; }
+ set {
+ containingType_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+
+ /// Field number for the "extension_number" field.
+ public const int ExtensionNumberFieldNumber = 2;
+ private int extensionNumber_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int ExtensionNumber {
+ get { return extensionNumber_; }
+ set {
+ extensionNumber_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as ExtensionRequest);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(ExtensionRequest other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (ContainingType != other.ContainingType) return false;
+ if (ExtensionNumber != other.ExtensionNumber) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (ContainingType.Length != 0) hash ^= ContainingType.GetHashCode();
+ if (ExtensionNumber != 0) hash ^= ExtensionNumber.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output) {
+ if (ContainingType.Length != 0) {
+ output.WriteRawTag(10);
+ output.WriteString(ContainingType);
+ }
+ if (ExtensionNumber != 0) {
+ output.WriteRawTag(16);
+ output.WriteInt32(ExtensionNumber);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize() {
+ int size = 0;
+ if (ContainingType.Length != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(ContainingType);
+ }
+ if (ExtensionNumber != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(ExtensionNumber);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(ExtensionRequest other) {
+ if (other == null) {
+ return;
+ }
+ if (other.ContainingType.Length != 0) {
+ ContainingType = other.ContainingType;
+ }
+ if (other.ExtensionNumber != 0) {
+ ExtensionNumber = other.ExtensionNumber;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 10: {
+ ContainingType = input.ReadString();
+ break;
+ }
+ case 16: {
+ ExtensionNumber = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+ }
+
+ ///
+ /// The message sent by the server to answer ServerReflectionInfo method.
+ ///
+ public sealed partial class ServerReflectionResponse : pb::IMessage {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ServerReflectionResponse());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Grpc.Reflection.V1Alpha.ReflectionReflection.Descriptor.MessageTypes[2]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ServerReflectionResponse() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ServerReflectionResponse(ServerReflectionResponse other) : this() {
+ validHost_ = other.validHost_;
+ originalRequest_ = other.originalRequest_ != null ? other.originalRequest_.Clone() : null;
+ switch (other.MessageResponseCase) {
+ case MessageResponseOneofCase.FileDescriptorResponse:
+ FileDescriptorResponse = other.FileDescriptorResponse.Clone();
+ break;
+ case MessageResponseOneofCase.AllExtensionNumbersResponse:
+ AllExtensionNumbersResponse = other.AllExtensionNumbersResponse.Clone();
+ break;
+ case MessageResponseOneofCase.ListServicesResponse:
+ ListServicesResponse = other.ListServicesResponse.Clone();
+ break;
+ case MessageResponseOneofCase.ErrorResponse:
+ ErrorResponse = other.ErrorResponse.Clone();
+ break;
+ }
+
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ServerReflectionResponse Clone() {
+ return new ServerReflectionResponse(this);
+ }
+
+ /// Field number for the "valid_host" field.
+ public const int ValidHostFieldNumber = 1;
+ private string validHost_ = "";
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string ValidHost {
+ get { return validHost_; }
+ set {
+ validHost_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+
+ /// Field number for the "original_request" field.
+ public const int OriginalRequestFieldNumber = 2;
+ private global::Grpc.Reflection.V1Alpha.ServerReflectionRequest originalRequest_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public global::Grpc.Reflection.V1Alpha.ServerReflectionRequest OriginalRequest {
+ get { return originalRequest_; }
+ set {
+ originalRequest_ = value;
+ }
+ }
+
+ /// Field number for the "file_descriptor_response" field.
+ public const int FileDescriptorResponseFieldNumber = 4;
+ ///
+ /// This message is used to answer file_by_filename, file_containing_symbol,
+ /// file_containing_extension requests with transitive dependencies. As
+ /// the repeated label is not allowed in oneof fields, we use a
+ /// FileDescriptorResponse message to encapsulate the repeated fields.
+ /// The reflection service is allowed to avoid sending FileDescriptorProtos
+ /// that were previously sent in response to earlier requests in the stream.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public global::Grpc.Reflection.V1Alpha.FileDescriptorResponse FileDescriptorResponse {
+ get { return messageResponseCase_ == MessageResponseOneofCase.FileDescriptorResponse ? (global::Grpc.Reflection.V1Alpha.FileDescriptorResponse) messageResponse_ : null; }
+ set {
+ messageResponse_ = value;
+ messageResponseCase_ = value == null ? MessageResponseOneofCase.None : MessageResponseOneofCase.FileDescriptorResponse;
+ }
+ }
+
+ /// Field number for the "all_extension_numbers_response" field.
+ public const int AllExtensionNumbersResponseFieldNumber = 5;
+ ///
+ /// This message is used to answer all_extension_numbers_of_type requst.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public global::Grpc.Reflection.V1Alpha.ExtensionNumberResponse AllExtensionNumbersResponse {
+ get { return messageResponseCase_ == MessageResponseOneofCase.AllExtensionNumbersResponse ? (global::Grpc.Reflection.V1Alpha.ExtensionNumberResponse) messageResponse_ : null; }
+ set {
+ messageResponse_ = value;
+ messageResponseCase_ = value == null ? MessageResponseOneofCase.None : MessageResponseOneofCase.AllExtensionNumbersResponse;
+ }
+ }
+
+ /// Field number for the "list_services_response" field.
+ public const int ListServicesResponseFieldNumber = 6;
+ ///
+ /// This message is used to answer list_services request.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public global::Grpc.Reflection.V1Alpha.ListServiceResponse ListServicesResponse {
+ get { return messageResponseCase_ == MessageResponseOneofCase.ListServicesResponse ? (global::Grpc.Reflection.V1Alpha.ListServiceResponse) messageResponse_ : null; }
+ set {
+ messageResponse_ = value;
+ messageResponseCase_ = value == null ? MessageResponseOneofCase.None : MessageResponseOneofCase.ListServicesResponse;
+ }
+ }
+
+ /// Field number for the "error_response" field.
+ public const int ErrorResponseFieldNumber = 7;
+ ///
+ /// This message is used when an error occurs.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public global::Grpc.Reflection.V1Alpha.ErrorResponse ErrorResponse {
+ get { return messageResponseCase_ == MessageResponseOneofCase.ErrorResponse ? (global::Grpc.Reflection.V1Alpha.ErrorResponse) messageResponse_ : null; }
+ set {
+ messageResponse_ = value;
+ messageResponseCase_ = value == null ? MessageResponseOneofCase.None : MessageResponseOneofCase.ErrorResponse;
+ }
+ }
+
+ private object messageResponse_;
+ /// Enum of possible cases for the "message_response" oneof.
+ public enum MessageResponseOneofCase {
+ None = 0,
+ FileDescriptorResponse = 4,
+ AllExtensionNumbersResponse = 5,
+ ListServicesResponse = 6,
+ ErrorResponse = 7,
+ }
+ private MessageResponseOneofCase messageResponseCase_ = MessageResponseOneofCase.None;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public MessageResponseOneofCase MessageResponseCase {
+ get { return messageResponseCase_; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void ClearMessageResponse() {
+ messageResponseCase_ = MessageResponseOneofCase.None;
+ messageResponse_ = null;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as ServerReflectionResponse);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(ServerReflectionResponse other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (ValidHost != other.ValidHost) return false;
+ if (!object.Equals(OriginalRequest, other.OriginalRequest)) return false;
+ if (!object.Equals(FileDescriptorResponse, other.FileDescriptorResponse)) return false;
+ if (!object.Equals(AllExtensionNumbersResponse, other.AllExtensionNumbersResponse)) return false;
+ if (!object.Equals(ListServicesResponse, other.ListServicesResponse)) return false;
+ if (!object.Equals(ErrorResponse, other.ErrorResponse)) return false;
+ if (MessageResponseCase != other.MessageResponseCase) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (ValidHost.Length != 0) hash ^= ValidHost.GetHashCode();
+ if (originalRequest_ != null) hash ^= OriginalRequest.GetHashCode();
+ if (messageResponseCase_ == MessageResponseOneofCase.FileDescriptorResponse) hash ^= FileDescriptorResponse.GetHashCode();
+ if (messageResponseCase_ == MessageResponseOneofCase.AllExtensionNumbersResponse) hash ^= AllExtensionNumbersResponse.GetHashCode();
+ if (messageResponseCase_ == MessageResponseOneofCase.ListServicesResponse) hash ^= ListServicesResponse.GetHashCode();
+ if (messageResponseCase_ == MessageResponseOneofCase.ErrorResponse) hash ^= ErrorResponse.GetHashCode();
+ hash ^= (int) messageResponseCase_;
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output) {
+ if (ValidHost.Length != 0) {
+ output.WriteRawTag(10);
+ output.WriteString(ValidHost);
+ }
+ if (originalRequest_ != null) {
+ output.WriteRawTag(18);
+ output.WriteMessage(OriginalRequest);
+ }
+ if (messageResponseCase_ == MessageResponseOneofCase.FileDescriptorResponse) {
+ output.WriteRawTag(34);
+ output.WriteMessage(FileDescriptorResponse);
+ }
+ if (messageResponseCase_ == MessageResponseOneofCase.AllExtensionNumbersResponse) {
+ output.WriteRawTag(42);
+ output.WriteMessage(AllExtensionNumbersResponse);
+ }
+ if (messageResponseCase_ == MessageResponseOneofCase.ListServicesResponse) {
+ output.WriteRawTag(50);
+ output.WriteMessage(ListServicesResponse);
+ }
+ if (messageResponseCase_ == MessageResponseOneofCase.ErrorResponse) {
+ output.WriteRawTag(58);
+ output.WriteMessage(ErrorResponse);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize() {
+ int size = 0;
+ if (ValidHost.Length != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(ValidHost);
+ }
+ if (originalRequest_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(OriginalRequest);
+ }
+ if (messageResponseCase_ == MessageResponseOneofCase.FileDescriptorResponse) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(FileDescriptorResponse);
+ }
+ if (messageResponseCase_ == MessageResponseOneofCase.AllExtensionNumbersResponse) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(AllExtensionNumbersResponse);
+ }
+ if (messageResponseCase_ == MessageResponseOneofCase.ListServicesResponse) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(ListServicesResponse);
+ }
+ if (messageResponseCase_ == MessageResponseOneofCase.ErrorResponse) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(ErrorResponse);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(ServerReflectionResponse other) {
+ if (other == null) {
+ return;
+ }
+ if (other.ValidHost.Length != 0) {
+ ValidHost = other.ValidHost;
+ }
+ if (other.originalRequest_ != null) {
+ if (originalRequest_ == null) {
+ originalRequest_ = new global::Grpc.Reflection.V1Alpha.ServerReflectionRequest();
+ }
+ OriginalRequest.MergeFrom(other.OriginalRequest);
+ }
+ switch (other.MessageResponseCase) {
+ case MessageResponseOneofCase.FileDescriptorResponse:
+ if (FileDescriptorResponse == null) {
+ FileDescriptorResponse = new global::Grpc.Reflection.V1Alpha.FileDescriptorResponse();
+ }
+ FileDescriptorResponse.MergeFrom(other.FileDescriptorResponse);
+ break;
+ case MessageResponseOneofCase.AllExtensionNumbersResponse:
+ if (AllExtensionNumbersResponse == null) {
+ AllExtensionNumbersResponse = new global::Grpc.Reflection.V1Alpha.ExtensionNumberResponse();
+ }
+ AllExtensionNumbersResponse.MergeFrom(other.AllExtensionNumbersResponse);
+ break;
+ case MessageResponseOneofCase.ListServicesResponse:
+ if (ListServicesResponse == null) {
+ ListServicesResponse = new global::Grpc.Reflection.V1Alpha.ListServiceResponse();
+ }
+ ListServicesResponse.MergeFrom(other.ListServicesResponse);
+ break;
+ case MessageResponseOneofCase.ErrorResponse:
+ if (ErrorResponse == null) {
+ ErrorResponse = new global::Grpc.Reflection.V1Alpha.ErrorResponse();
+ }
+ ErrorResponse.MergeFrom(other.ErrorResponse);
+ break;
+ }
+
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 10: {
+ ValidHost = input.ReadString();
+ break;
+ }
+ case 18: {
+ if (originalRequest_ == null) {
+ originalRequest_ = new global::Grpc.Reflection.V1Alpha.ServerReflectionRequest();
+ }
+ input.ReadMessage(originalRequest_);
+ break;
+ }
+ case 34: {
+ global::Grpc.Reflection.V1Alpha.FileDescriptorResponse subBuilder = new global::Grpc.Reflection.V1Alpha.FileDescriptorResponse();
+ if (messageResponseCase_ == MessageResponseOneofCase.FileDescriptorResponse) {
+ subBuilder.MergeFrom(FileDescriptorResponse);
+ }
+ input.ReadMessage(subBuilder);
+ FileDescriptorResponse = subBuilder;
+ break;
+ }
+ case 42: {
+ global::Grpc.Reflection.V1Alpha.ExtensionNumberResponse subBuilder = new global::Grpc.Reflection.V1Alpha.ExtensionNumberResponse();
+ if (messageResponseCase_ == MessageResponseOneofCase.AllExtensionNumbersResponse) {
+ subBuilder.MergeFrom(AllExtensionNumbersResponse);
+ }
+ input.ReadMessage(subBuilder);
+ AllExtensionNumbersResponse = subBuilder;
+ break;
+ }
+ case 50: {
+ global::Grpc.Reflection.V1Alpha.ListServiceResponse subBuilder = new global::Grpc.Reflection.V1Alpha.ListServiceResponse();
+ if (messageResponseCase_ == MessageResponseOneofCase.ListServicesResponse) {
+ subBuilder.MergeFrom(ListServicesResponse);
+ }
+ input.ReadMessage(subBuilder);
+ ListServicesResponse = subBuilder;
+ break;
+ }
+ case 58: {
+ global::Grpc.Reflection.V1Alpha.ErrorResponse subBuilder = new global::Grpc.Reflection.V1Alpha.ErrorResponse();
+ if (messageResponseCase_ == MessageResponseOneofCase.ErrorResponse) {
+ subBuilder.MergeFrom(ErrorResponse);
+ }
+ input.ReadMessage(subBuilder);
+ ErrorResponse = subBuilder;
+ break;
+ }
+ }
+ }
+ }
+
+ }
+
+ ///
+ /// Serialized FileDescriptorProto messages sent by the server answering
+ /// a file_by_filename, file_containing_symbol, or file_containing_extension
+ /// request.
+ ///
+ public sealed partial class FileDescriptorResponse : pb::IMessage {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new FileDescriptorResponse());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Grpc.Reflection.V1Alpha.ReflectionReflection.Descriptor.MessageTypes[3]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public FileDescriptorResponse() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public FileDescriptorResponse(FileDescriptorResponse other) : this() {
+ fileDescriptorProto_ = other.fileDescriptorProto_.Clone();
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public FileDescriptorResponse Clone() {
+ return new FileDescriptorResponse(this);
+ }
+
+ /// Field number for the "file_descriptor_proto" field.
+ public const int FileDescriptorProtoFieldNumber = 1;
+ private static readonly pb::FieldCodec _repeated_fileDescriptorProto_codec
+ = pb::FieldCodec.ForBytes(10);
+ private readonly pbc::RepeatedField fileDescriptorProto_ = new pbc::RepeatedField();
+ ///
+ /// Serialized FileDescriptorProto messages. We avoid taking a dependency on
+ /// descriptor.proto, which uses proto2 only features, by making them opaque
+ /// bytes instead.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField FileDescriptorProto {
+ get { return fileDescriptorProto_; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as FileDescriptorResponse);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(FileDescriptorResponse other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if(!fileDescriptorProto_.Equals(other.fileDescriptorProto_)) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode() {
+ int hash = 1;
+ hash ^= fileDescriptorProto_.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output) {
+ fileDescriptorProto_.WriteTo(output, _repeated_fileDescriptorProto_codec);
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize() {
+ int size = 0;
+ size += fileDescriptorProto_.CalculateSize(_repeated_fileDescriptorProto_codec);
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(FileDescriptorResponse other) {
+ if (other == null) {
+ return;
+ }
+ fileDescriptorProto_.Add(other.fileDescriptorProto_);
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 10: {
+ fileDescriptorProto_.AddEntriesFrom(input, _repeated_fileDescriptorProto_codec);
+ break;
+ }
+ }
+ }
+ }
+
+ }
+
+ ///
+ /// A list of extension numbers sent by the server answering
+ /// all_extension_numbers_of_type request.
+ ///
+ public sealed partial class ExtensionNumberResponse : pb::IMessage {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ExtensionNumberResponse());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Grpc.Reflection.V1Alpha.ReflectionReflection.Descriptor.MessageTypes[4]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ExtensionNumberResponse() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ExtensionNumberResponse(ExtensionNumberResponse other) : this() {
+ baseTypeName_ = other.baseTypeName_;
+ extensionNumber_ = other.extensionNumber_.Clone();
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ExtensionNumberResponse Clone() {
+ return new ExtensionNumberResponse(this);
+ }
+
+ /// Field number for the "base_type_name" field.
+ public const int BaseTypeNameFieldNumber = 1;
+ private string baseTypeName_ = "";
+ ///
+ /// Full name of the base type, including the package name. The format
+ /// is <package>.<type>
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string BaseTypeName {
+ get { return baseTypeName_; }
+ set {
+ baseTypeName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+
+ /// Field number for the "extension_number" field.
+ public const int ExtensionNumberFieldNumber = 2;
+ private static readonly pb::FieldCodec _repeated_extensionNumber_codec
+ = pb::FieldCodec.ForInt32(18);
+ private readonly pbc::RepeatedField extensionNumber_ = new pbc::RepeatedField();
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField ExtensionNumber {
+ get { return extensionNumber_; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as ExtensionNumberResponse);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(ExtensionNumberResponse other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (BaseTypeName != other.BaseTypeName) return false;
+ if(!extensionNumber_.Equals(other.extensionNumber_)) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (BaseTypeName.Length != 0) hash ^= BaseTypeName.GetHashCode();
+ hash ^= extensionNumber_.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output) {
+ if (BaseTypeName.Length != 0) {
+ output.WriteRawTag(10);
+ output.WriteString(BaseTypeName);
+ }
+ extensionNumber_.WriteTo(output, _repeated_extensionNumber_codec);
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize() {
+ int size = 0;
+ if (BaseTypeName.Length != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(BaseTypeName);
+ }
+ size += extensionNumber_.CalculateSize(_repeated_extensionNumber_codec);
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(ExtensionNumberResponse other) {
+ if (other == null) {
+ return;
+ }
+ if (other.BaseTypeName.Length != 0) {
+ BaseTypeName = other.BaseTypeName;
+ }
+ extensionNumber_.Add(other.extensionNumber_);
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 10: {
+ BaseTypeName = input.ReadString();
+ break;
+ }
+ case 18:
+ case 16: {
+ extensionNumber_.AddEntriesFrom(input, _repeated_extensionNumber_codec);
+ break;
+ }
+ }
+ }
+ }
+
+ }
+
+ ///
+ /// A list of ServiceResponse sent by the server answering list_services request.
+ ///
+ public sealed partial class ListServiceResponse : pb::IMessage {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ListServiceResponse());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Grpc.Reflection.V1Alpha.ReflectionReflection.Descriptor.MessageTypes[5]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ListServiceResponse() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ListServiceResponse(ListServiceResponse other) : this() {
+ service_ = other.service_.Clone();
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ListServiceResponse Clone() {
+ return new ListServiceResponse(this);
+ }
+
+ /// Field number for the "service" field.
+ public const int ServiceFieldNumber = 1;
+ private static readonly pb::FieldCodec _repeated_service_codec
+ = pb::FieldCodec.ForMessage(10, global::Grpc.Reflection.V1Alpha.ServiceResponse.Parser);
+ private readonly pbc::RepeatedField service_ = new pbc::RepeatedField();
+ ///
+ /// The information of each service may be expanded in the future, so we use
+ /// ServiceResponse message to encapsulate it.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField Service {
+ get { return service_; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as ListServiceResponse);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(ListServiceResponse other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if(!service_.Equals(other.service_)) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode() {
+ int hash = 1;
+ hash ^= service_.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output) {
+ service_.WriteTo(output, _repeated_service_codec);
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize() {
+ int size = 0;
+ size += service_.CalculateSize(_repeated_service_codec);
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(ListServiceResponse other) {
+ if (other == null) {
+ return;
+ }
+ service_.Add(other.service_);
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 10: {
+ service_.AddEntriesFrom(input, _repeated_service_codec);
+ break;
+ }
+ }
+ }
+ }
+
+ }
+
+ ///
+ /// The information of a single service used by ListServiceResponse to answer
+ /// list_services request.
+ ///
+ public sealed partial class ServiceResponse : pb::IMessage {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ServiceResponse());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Grpc.Reflection.V1Alpha.ReflectionReflection.Descriptor.MessageTypes[6]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ServiceResponse() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ServiceResponse(ServiceResponse other) : this() {
+ name_ = other.name_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ServiceResponse Clone() {
+ return new ServiceResponse(this);
+ }
+
+ /// Field number for the "name" field.
+ public const int NameFieldNumber = 1;
+ private string name_ = "";
+ ///
+ /// Full name of a registered service, including its package name. The format
+ /// is <package>.<service>
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string Name {
+ get { return name_; }
+ set {
+ name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as ServiceResponse);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(ServiceResponse other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (Name != other.Name) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (Name.Length != 0) hash ^= Name.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output) {
+ if (Name.Length != 0) {
+ output.WriteRawTag(10);
+ output.WriteString(Name);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize() {
+ int size = 0;
+ if (Name.Length != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(ServiceResponse other) {
+ if (other == null) {
+ return;
+ }
+ if (other.Name.Length != 0) {
+ Name = other.Name;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 10: {
+ Name = input.ReadString();
+ break;
+ }
+ }
+ }
+ }
+
+ }
+
+ ///
+ /// The error code and error message sent by the server when an error occurs.
+ ///
+ public sealed partial class ErrorResponse : pb::IMessage {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ErrorResponse());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Grpc.Reflection.V1Alpha.ReflectionReflection.Descriptor.MessageTypes[7]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ErrorResponse() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ErrorResponse(ErrorResponse other) : this() {
+ errorCode_ = other.errorCode_;
+ errorMessage_ = other.errorMessage_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ErrorResponse Clone() {
+ return new ErrorResponse(this);
+ }
+
+ /// Field number for the "error_code" field.
+ public const int ErrorCodeFieldNumber = 1;
+ private int errorCode_;
+ ///
+ /// This field uses the error codes defined in grpc::StatusCode.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int ErrorCode {
+ get { return errorCode_; }
+ set {
+ errorCode_ = value;
+ }
+ }
+
+ /// Field number for the "error_message" field.
+ public const int ErrorMessageFieldNumber = 2;
+ private string errorMessage_ = "";
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string ErrorMessage {
+ get { return errorMessage_; }
+ set {
+ errorMessage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as ErrorResponse);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(ErrorResponse other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (ErrorCode != other.ErrorCode) return false;
+ if (ErrorMessage != other.ErrorMessage) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (ErrorCode != 0) hash ^= ErrorCode.GetHashCode();
+ if (ErrorMessage.Length != 0) hash ^= ErrorMessage.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output) {
+ if (ErrorCode != 0) {
+ output.WriteRawTag(8);
+ output.WriteInt32(ErrorCode);
+ }
+ if (ErrorMessage.Length != 0) {
+ output.WriteRawTag(18);
+ output.WriteString(ErrorMessage);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize() {
+ int size = 0;
+ if (ErrorCode != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(ErrorCode);
+ }
+ if (ErrorMessage.Length != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(ErrorMessage);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(ErrorResponse other) {
+ if (other == null) {
+ return;
+ }
+ if (other.ErrorCode != 0) {
+ ErrorCode = other.ErrorCode;
+ }
+ if (other.ErrorMessage.Length != 0) {
+ ErrorMessage = other.ErrorMessage;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 8: {
+ ErrorCode = input.ReadInt32();
+ break;
+ }
+ case 18: {
+ ErrorMessage = input.ReadString();
+ break;
+ }
+ }
+ }
+ }
+
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/GrpcClient/Reflection/ReflectionGrpc.cs b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/GrpcClient/Reflection/ReflectionGrpc.cs
new file mode 100644
index 0000000..b919b37
--- /dev/null
+++ b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/GrpcClient/Reflection/ReflectionGrpc.cs
@@ -0,0 +1,137 @@
+//
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: reflection.proto
+//
+// Original file comments:
+// Copyright 2016 gRPC authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// Service exported by server reflection
+//
+#pragma warning disable 0414, 1591
+#region Designer generated code
+
+using grpc = global::Grpc.Core;
+
+namespace Grpc.Reflection.V1Alpha {
+ public static partial class ServerReflection
+ {
+ static readonly string __ServiceName = "grpc.reflection.v1alpha.ServerReflection";
+
+ static readonly grpc::Marshaller __Marshaller_grpc_reflection_v1alpha_ServerReflectionRequest = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::Grpc.Reflection.V1Alpha.ServerReflectionRequest.Parser.ParseFrom);
+ static readonly grpc::Marshaller __Marshaller_grpc_reflection_v1alpha_ServerReflectionResponse = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::Grpc.Reflection.V1Alpha.ServerReflectionResponse.Parser.ParseFrom);
+
+ static readonly grpc::Method __Method_ServerReflectionInfo = new grpc::Method(
+ grpc::MethodType.DuplexStreaming,
+ __ServiceName,
+ "ServerReflectionInfo",
+ __Marshaller_grpc_reflection_v1alpha_ServerReflectionRequest,
+ __Marshaller_grpc_reflection_v1alpha_ServerReflectionResponse);
+
+ /// Service descriptor
+ public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor
+ {
+ get { return global::Grpc.Reflection.V1Alpha.ReflectionReflection.Descriptor.Services[0]; }
+ }
+
+ /// Base class for server-side implementations of ServerReflection
+ public abstract partial class ServerReflectionBase
+ {
+ ///
+ /// The reflection service is structured as a bidirectional stream, ensuring
+ /// all related requests go to a single server.
+ ///
+ /// Used for reading requests from the client.
+ /// Used for sending responses back to the client.
+ /// The context of the server-side call handler being invoked.
+ /// A task indicating completion of the handler.
+ public virtual global::System.Threading.Tasks.Task ServerReflectionInfo(grpc::IAsyncStreamReader requestStream, grpc::IServerStreamWriter responseStream, grpc::ServerCallContext context)
+ {
+ throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
+ }
+
+ }
+
+ /// Client for ServerReflection
+ public partial class ServerReflectionClient : grpc::ClientBase
+ {
+ /// Creates a new client for ServerReflection
+ /// The channel to use to make remote calls.
+ public ServerReflectionClient(grpc::Channel channel) : base(channel)
+ {
+ }
+ /// Creates a new client for ServerReflection that uses a custom CallInvoker.
+ /// The callInvoker to use to make remote calls.
+ public ServerReflectionClient(grpc::CallInvoker callInvoker) : base(callInvoker)
+ {
+ }
+ /// Protected parameterless constructor to allow creation of test doubles.
+ protected ServerReflectionClient() : base()
+ {
+ }
+ /// Protected constructor to allow creation of configured clients.
+ /// The client configuration.
+ protected ServerReflectionClient(ClientBaseConfiguration configuration) : base(configuration)
+ {
+ }
+
+ ///
+ /// The reflection service is structured as a bidirectional stream, ensuring
+ /// all related requests go to a single server.
+ ///
+ /// The initial metadata to send with the call. This parameter is optional.
+ /// An optional deadline for the call. The call will be cancelled if deadline is hit.
+ /// An optional token for canceling the call.
+ /// The call object.
+ public virtual grpc::AsyncDuplexStreamingCall ServerReflectionInfo(grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
+ {
+ return ServerReflectionInfo(new grpc::CallOptions(headers, deadline, cancellationToken));
+ }
+ ///
+ /// The reflection service is structured as a bidirectional stream, ensuring
+ /// all related requests go to a single server.
+ ///
+ /// The options for the call.
+ /// The call object.
+ public virtual grpc::AsyncDuplexStreamingCall ServerReflectionInfo(grpc::CallOptions options)
+ {
+ return CallInvoker.AsyncDuplexStreamingCall(__Method_ServerReflectionInfo, null, options);
+ }
+ /// Creates a new instance of client from given ClientBaseConfiguration.
+ protected override ServerReflectionClient NewInstance(ClientBaseConfiguration configuration)
+ {
+ return new ServerReflectionClient(configuration);
+ }
+ }
+
+ /// Creates service definition that can be registered with a server
+ /// An object implementing the server-side handling logic.
+ public static grpc::ServerServiceDefinition BindService(ServerReflectionBase serviceImpl)
+ {
+ return grpc::ServerServiceDefinition.CreateBuilder()
+ .AddMethod(__Method_ServerReflectionInfo, serviceImpl.ServerReflectionInfo).Build();
+ }
+
+ /// Register service method with a service binder with or without implementation. Useful when customizing the service binding logic.
+ /// Note: this method is part of an experimental API that can change or be removed without any prior notice.
+ /// Service methods will be bound by calling AddMethod on this object.
+ /// An object implementing the server-side handling logic.
+ public static void BindService(grpc::ServiceBinderBase serviceBinder, ServerReflectionBase serviceImpl)
+ {
+ serviceBinder.AddMethod(__Method_ServerReflectionInfo, serviceImpl == null ? null : new grpc::DuplexStreamingServerMethod(serviceImpl.ServerReflectionInfo));
+ }
+
+ }
+}
+#endregion
diff --git a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/ConsulSet.cshtml.cs b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/ConsulSet.cshtml.cs
index 363ec1a..37014e8 100644
--- a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/ConsulSet.cshtml.cs
+++ b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/ConsulSet.cshtml.cs
@@ -1,7 +1,9 @@
-using Microsoft.AspNetCore.Mvc.RazorPages;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.Extensions.Configuration;
using System.Linq;
+using System.Threading.Tasks;
namespace FM.GrpcDashboard.Pages
{
@@ -15,21 +17,21 @@ public ConsulSetModel(ConsulService consulSrv, IConfiguration config)
_config = config;
}
- public void OnGet()
+ public async Task OnGet()
{
ViewData["addr"] = _config["Consul"];
- ViewData["Nodes"] = GetNodes(_config["Consul"]);
+ ViewData["Nodes"] = await GetNodes(_config["Consul"]);
}
- public SelectList GetNodes(string selected)
+ public async Task GetNodes(string selected)
{
- var nodes = _consulSrv.GetAllNode().Result;
+ var nodes = await _consulSrv.GetAllNode();
var selectList = nodes.Select(p => new SelectListItem() { Value = "http://" + p.Address + ":8500/", Text = p.Name }).ToList();
return new SelectList(selectList, "Value", "Text", selected);
}
- public void OnPost(string addr=null)
+ public void OnPost(string addr = null)
{
if (!string.IsNullOrWhiteSpace(addr))
{
diff --git a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/Grpc.cshtml.cs b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/Grpc.cshtml.cs
index 23481d6..8c07668 100644
--- a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/Grpc.cshtml.cs
+++ b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/Grpc.cshtml.cs
@@ -1,8 +1,10 @@
-using Grpc;
+using FM.GrpcDashboard.Services;
+using Grpc;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using System.Collections.Generic;
using System.Linq;
+using System.Threading.Tasks;
namespace FM.GrpcDashboard.Pages
{
@@ -17,15 +19,15 @@ public class GrpcModel : PageModel
public InfoRS Info { get; set; }
ConsulService _consulSrv;
- GrpcService _grpcSrv;
+ GrpcServiceProxy _grpcSrv;
- public GrpcModel(ConsulService consulSrv, GrpcService grpcSrv)
+ public GrpcModel(ConsulService consulSrv, GrpcServiceProxy grpcSrv)
{
_consulSrv = consulSrv;
_grpcSrv = grpcSrv;
}
- public IActionResult OnGet(string serviceName, string serverAddress = null)
+ public async Task OnGet(string serviceName, string serverAddress = null)
{
ServiceName = serviceName?.Trim();
CurrentAddressInfo = serverAddress?.Trim();
@@ -42,11 +44,11 @@ public IActionResult OnGet(string serviceName, string serverAddress = null)
var ip = arr[0];
var port = int.Parse(arr[1]);
- Info = _grpcSrv.GetInfo(ip, port).Result;
+ Info = await _grpcSrv.GetInfo(ip, port);
}
else
{
- var service = _consulSrv.GetService(ServiceName).Result;
+ var service = await _consulSrv.GetService(ServiceName);
if (service == null || service.Count == 0)
{
return RedirectToPage("Error", new { msg = $"consul中找不到服务{ServiceName}" });
@@ -56,7 +58,7 @@ public IActionResult OnGet(string serviceName, string serverAddress = null)
var port = service.First().Port;
CurrentAddressInfo = $"{ip}:{port}";
- Info = _grpcSrv.GetInfo(ip, port).Result;
+ Info = await _grpcSrv.GetInfo(ip, port);
}
if (Info == null)
diff --git a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/Index.cshtml.cs b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/Index.cshtml.cs
index 9f24192..d27515e 100644
--- a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/Index.cshtml.cs
+++ b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/Index.cshtml.cs
@@ -18,7 +18,7 @@ public IndexModel(ConsulService consulSrv)
_consulSrv = consulSrv;
}
- public IActionResult OnGetAsync(string serviceName = null)
+ public async Task OnGetAsync(string serviceName = null)
{
if (!string.IsNullOrWhiteSpace(serviceName) && Regex.IsMatch(serviceName.Trim(), @"^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}:[0-9]{1,6}$"))
{
@@ -27,7 +27,7 @@ public IActionResult OnGetAsync(string serviceName = null)
else
{
ViewData["ServiceName"] = serviceName;
- ConsulServices = _consulSrv.GetAllServices().Result;
+ ConsulServices = await _consulSrv.GetAllServices();
if (ConsulServices != null && !string.IsNullOrWhiteSpace(serviceName))
{
ConsulServices = ConsulServices.Where(q => q.Service.ToLower().Contains(serviceName.Trim().ToLower())).OrderBy(q => q.Service).ToList();
diff --git a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/Invoke.cshtml b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/Invoke.cshtml
index 5390c51..41b6cac 100644
--- a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/Invoke.cshtml
+++ b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/Invoke.cshtml
@@ -8,6 +8,13 @@
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}