首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Protobuf-net.Grpc . generic通用服务

Protobuf-net.Grpc . generic通用服务
EN

Stack Overflow用户
提问于 2022-09-12 10:16:44
回答 1查看 66关注 0票数 2

我有一些gRPC服务,它们都有一个共同的方法,并希望能够这样做:

代码语言:javascript
复制
[Service]
public interface IVehicleReloader<T> where T : IVehicle
{
    public ValueTask<T> ReloadInstance(ReloadInstanceRequest path);
}

[Service]
public interface ICarService : IVehicleReloader<Car>
{
...
}

[Service]
public interface IMotorbike : IVehicleReloader<Motorbike>
{
...
}

但这甚至不能编译,它直接说,The gRPC service cannot be generic.

除了必须在每个接口上声明方法之外,还有其他方法来实现这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-12 10:33:40

这与回购中已经讨论过的一些关于扁平化服务的主题有关。以下内容是通过PR 206实现的(不是由我--用户贡献的)实现的,并将在短期内部署:

代码语言:javascript
复制
[SubService] // naming is hard
public interface IVehicleReloader<T> where T : IVehicle
{
    public ValueTask<T> ReloadInstance(ReloadInstanceRequest path);
}

[Service]
public interface ICarService : IVehicleReloader<Car>
{
...
}

[Service]
public interface IMotorbike : IVehicleReloader<Motorbike>
{
...
}

在这里,[SubService]意味着IVehicleReloader<T>本身并不被视为服务,而是:这些成员折叠到发现它们的[Service]类型中,因此:ReloadInstance直接出现在ICarServiceIMotorbike中,并被适当地路由。

我很想把它运出去--这是一个时间问题,优先事项,等等。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73687728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档