具有通用参数的 Azure Service Fabric 远程处理

Azure Service Fabric Remoting with generic parameter

我正在通过服务远程处理在我的 Service Fabric 应用程序方法中发送一个通用参数。

我的界面如下:

public interface IMyServiceRemoting : IService
{
   Task<String> GetMessageFromServer<T>(T hint)// a hint could be of byte[] or string or any object
}

当我得到

System.ArgumentException: "The service interface 'ServiceRemoting.Interfaces.IMyServiceRemoting`1[[System.Object, mscorlib, version = 4.0.0.0, Culture=neutral, publicKeyToken=b77a5c561934e089]]'is using generic. Generic interface cannot be remoted".

我不明白为什么我不能使用泛型。 请帮助正确解释。

你根本做不到。这是不可能的,因为 soap 不支持这个。请参阅此 article,其中提到如何绕过泛型,方法是创建一个在调用 WCF 操作之前调用并强制转换该对象的中间本地对象。

这个问题之前有人问过。 来自 SF 团队成员。

So in your case, no, generics are not yet supported. But this is a limitation of that specific service communication stack, not of services in general, and of course you can use any communication stack you want