我有以下设置:
public interface ISomeService : IService, INonServiceFabricService
{
}
其中INonServiceFabricService
是一个没有 Service Fabric 依赖项的接口,允许我将应用程序代码与基础结构分离:
public interface INonServiceFabricService
{
Task DoSomething();
}
然后我的实现继承自ISomeService
:
public class ActualService : StatefulService, ISomeService
{
public Task DoSomething()
{
// Something
}
}
一切都构建并运行良好,但是当我尝试创建代理时:
var proxy = ServiceProxy.Create<ISomeService>(Uri, new ServicePartitionKey(0));
我收到以下错误:
类型"ISomeService"不是服务接口,因为它不是 派生自接口 'INonServiceFabricService'
所以事实证明这是不可能的。
Service Fabric 服务接口(例如,有问题的ISomeService
(继承自的每个接口都必须派生自IService
。看这里。
错误真的应该说:
类型"INonServiceFabricService"不是服务接口,因为它 不是从接口"IService"派生的