2017-08-21 5 views
4

サービスリモーティングを使用して、サービスファブリックアプリケーションメソッドでジェネリックパラメータを送信しています。Azureサービスファブリックジェネリックパラメータを使用したリモーティング

次のように私のインタフェースがある:

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

私は

System.ArgumentExceptionの取得していますが、「サービス・インターフェース「ServiceRemoting.Interfaces.IMyServiceRemoting`1 [[System.Objectの、mscorlibを、version = 4.0.0.0、Culture =ニュートラル、publicKeyToken = b77a5c561934e089]] 'ジェネリックインターフェイスを使用できません。ジェネリックインターフェイスはリモートではありません "。

なぜジェネリックを使用できないのか理解できません。 適切な説明を教えてください。

+0

関連:https://github.com/Azure/service-fabric -services-and-actors-dotnet/issues/21 – Mardoxx

+0

関連項目:https://stackoverflow.com/questions/36985580/service-fabric-with-generic-services – Mardoxx

答えて

4

あなたは単純にできません。石鹸はこれをサポートしていないので、そうすることはできません。このarticleを参照してください。これは、WCF操作を呼び出す前にオブジェクトをキャストして呼び出す中間のローカルオブジェクトを作成することで、ジェネリックを回避する方法を示しています。

1

この質問は以前に聞かれました。 answerはSFチームのメンバーです。

あなたのケースでは、いいえ、ジェネリックはまだサポートされていません。しかし、これは、その特定のサービスの通信スタックの 制限ではありません一般的に サービスの、そしてもちろん、あなたが欲しいany communication stack 使用することができます

関連する問題