首页 > 编程语言 >c# grpc 保姆级教学搭建grpc框架 服务端、客户端

c# grpc 保姆级教学搭建grpc框架 服务端、客户端

时间:2024-10-24 16:47:22浏览次数:3  
标签:proto grpc TestModel2 List c# TestModel using public 服务端

文章目录

基于已有class自动生成.proto文件

如果想自己写.proto文件,可跳过这一步
要转换成.proto文件的类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TestNamespace
{
   
    public class TestApp
    {
   

        public TestModel TestFun1(TestModel a)
        {
   
            return new TestModel(a.A - 1, a.B - 2);
        }

        public TestModel2 TestFun2(TestModel2 a)
        {
   
            TestModel2 tmp = new TestModel2();

            tmp.C = a.B.Select(x => x + 1).ToList();

            return tmp;
        }

        //public List<string> TestFun3(List<int> tmp)
        //{
   
        //    return tmp.Select(x=>x.ToString()).ToList();
        //}

        //public void TestFun4(List<int> tmp)
        //{
   

        //}
    }

    public class TestModel
    {
   
        private int _A;

        private int _B;

        public TestModel(int a, int b)
        {
   
            A = a;
            B = b;
        }

        public int A {
    get => _A; set => _A = value; }
        public int B {
    get => _B; set => _B = value; }
    }

    public class TestModel2
    {
   
        private List<int> _C;

        private List<int> _b;

        public List<int> C {
    get => _C; set => _C = value; }
        public List<int> B {
    get => _b; set => _b = value; }
    }
}

包:protobuf-net
控制台项目:ProtobufCodeGenerator

using ProtoBuf.Meta;
using TestNamespace;

namespace ProtobufCodeGenerator
{
   
    internal class Program
    {
   
        static void Main(string[] args)
        {
   
            //var model = RuntimeTypeModel.Create();
            //model.Add(typeof(TestApp),true);

            //var proto = model.GetSchema(typeof(TestApp));
            //Console.WriteLine(proto);

            var types = new Type[] {
    typeof(TestModel), typeof(TestModel2) 

标签:proto,grpc,TestModel2,List,c#,TestModel,using,public,服务端
From: https://blog.csdn.net/weixin_44291381/article/details/143177003

相关文章

  • 蓝牙室内定位算法-蓝牙ibeacon室内定位技术方案
    随着科技的飞速发展,室内定位技术已成为现代生活中的重要组成部分。在众多室内定位技术中,蓝牙技术凭借其低功耗、高精确度以及广泛的设备兼容性,逐渐在室内定位领域崭露头角。其中,蓝牙iBeacon技术更是凭借其独特的优势,成为室内定位领域的佼佼者。本文将深入探讨蓝牙iBeacon室内定......
  • 异步&线程池【CompletableFuture&ExecutorService】
    Gulimall一、异步&线程池【ExecutorService】异步场景:为了节约时间和提高系统吞吐量做一些异步任务。异步在java中一般是使用Thread开启一个线程的方式;一、线程池线程池(ThreadPool),是一种基于池化思想的管理线程的工具,可以实现线程的复用,避免线程使用中频繁创建和......
  • CF1139C. Edgy Trees 题解 并查集
    题目链接:https://codeforces.com/problemset/problem/1139/C视频讲解:https://www.bilibili.com/video/BV1tZ1FYPELp?p=3我们可以求总方案数-不满足条件的方案数。设一个不包含黑色边的极大连通块的大小为\(sz_i\)。则答案为\[n^k-\sum\{sz_i^k\}\]示例程序:#include......
  • DirectX Repair(DirectX修复工具)V4.3增强版
    DirectX修复工具(DirectXRepair)是一款系统级工具软件,简便易用。本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序主要针对0xc000007b问题设计,可以完美修复该问题。本程序中包含了最新版的DirectXredist(Jun2010),并且全部DX文件都有Microsoft的数字......
  • CSP模拟赛 #44
    2024最后一场CSP模拟赛。A给定\(x,k\),求最小的\(y\)满足\(y\gex\)且除了\(k\)个数位,其他数位均相同。\(1\len\le10^{17},\0\lek\le1\)暴力枚举。B给定\(n\)个三元组\((a_1,b_1,c_1),\dots(a_n,b_n,c_n)\),每个数\(\in[0,9]\)。求有多少种排列三元......
  • 安全:centos系统默认运行的服务有哪些?(centos stream9/linux)
    一,默认自启动服务和默认运行服务的区别服务的类型:Type:定义启动时的进程行为。它有以下几种值。 simple:默认值,执行ExecStart指定的命令,启动主进程 forking:以fork方式从父进程创建子进程,创建后父进程会立即退出 oneshot:一次性进程,Systemd会等当前服务退出,再继续往......
  • JavaWeb合集17-拦截器(Interceptor)和过滤器(Filter)
    十七、拦截器和过滤器在JavaWeb开发中,拦截器(Interceptor)和过滤器(Filter)都是用于在请求处理前后执行某些操作的机制。虽然它们的功能相似,但在实现方式、使用场景和灵活性方面有一些重要的区别。1、拦截器和过滤器的区别及选择1.1拦截器定义:拦截器是Spring框架提供......
  • 节省你的SSH连接时间:ControlMaster 使用指南
    背景最近有需求在远程服务器上频繁传输文件(scp),然后执行一些命令。但是这个远程服务器延迟比较高,而且认证花费的时间比较长,让人非常不耐烦。然后发现了一个可以加快这个步骤的工具:ControlMaster。来源:StackExchangeHackerNews简介ControlMaster是OpenSSH提供的一个功......
  • JavaWeb合集15-线程局部变量ThreadLocal
    十五、ThreadLocalThreadLocal并不是一个Thread,,而是Thread的局部变量。ThreadLocal为每个线程提供单独一份存储空间,具有线程隔离的效果,只有在线程内才能获取到对应的值,线程外则不能访问。场景:通过过滤器/过滤器获取到JWT,可将JWT值存储到ThreadLocal中,当执行到需要JWT的......
  • Lab2 中间代码生成,在Cminusf 解析器基础上,完成从语法树向中间代码的自动化翻译过程。
    本次实验需要同学们在Lab1实现的Cminusf解析器基础上,完成从语法树向中间代码的自动化翻译过程。contactmehelp-assignment实验要求¶根据 Lab1的要求,学生有两个远程仓库:upstream:课程发布实验代码的公开仓库origin:学生fork得到的私有仓库两个仓库各有3条分支(红......