小编Ton*_*ony的帖子

具有通用服务的服务结构

我希望有一个通用类型的服务,即 -

public interface IFooService<T> 
{
   Task<T> Get(int id);
}
Run Code Online (Sandbox Code Playgroud)

但是,服务结构不允许使用泛型类或泛型方法.我也尝试过类似的东西

public interface INinjaService : IService, IFooService<SuperNinja>
{


}
Run Code Online (Sandbox Code Playgroud)

但它没有拿起继承的接口说明

服务类型"Omni.Fabric.Services.NinjaService"未实现任何服务接口.服务接口是从"Microsoft.ServiceFabric.Services.Remoting.IService"类型派生的接口.

我似乎无法在Service Fabric文档或stackoverflow上找到任何关于泛型的引用.要么它仍然太新,要么我可能走错了路.有没有人有幸实现这种模式?可以吗?它应该完成吗?

NinjaService按要求提供

public class NinjaService : StatelessService, INinjaService
{

    public NinjaService(StatelessServiceContext serviceContext) : base(serviceContext)
    {
    }


    protected override IEnumerable<ServiceInstanceListener> CreateServiceInstanceListeners()
    {
            return new[] { new ServiceInstanceListener(context => this.CreateServiceRemotingListener(context)) };
    }


    public Task<SuperNinja> Get(int id)
    {
        return Task.FromResult(new SuperNinja());
    }
}
Run Code Online (Sandbox Code Playgroud)

使用代码(从Owin WebApi服务调用

    public async Task<SuperNinja> Get(int key)
    {
        try
        {
            INinjaService service = ServiceProxy.Create<INinjaService>(new Uri("fabric:/Omni.Fabric/Services"));

            var t = …
Run Code Online (Sandbox Code Playgroud)

c# generics azure-service-fabric

5
推荐指数
1
解决办法
3023
查看次数

标签 统计

azure-service-fabric ×1

c# ×1

generics ×1