2017-07-15 18 views
0

ServiceProxyを使用して特定の名前付きパーティションに電話をかける方法を理解できないようで、これに固有のドキュメントはないようです。これは、あなたがInt64RangePartitionInformationサービスファブリック - ステートフルサービスのために名前付きパーティションを呼び出す

var partitionInformation = (Int64RangePartitionInformation)selectedPartition.PartitionInformation; 
var partitionKey = ServicePartitionKey(partitionInformation.LowKey);  
IListen listenerClient = ServiceProxy.Create<IListen>(uri,partitionKey); 

のためにそれを行うだろう。しかしNamedPartitionInformationためServicePartitionKeyを取得する方法があるようには思えない方法です。パーティション名をUriなどに含めますか?

答えて

0

ServicePartitionKeyには、文字列をとるオーバーロードがあります。

var partitionKey = new ServicePartitionKey("partitionName"); 
IListen listenerClient = ServiceProxy.Create<IListen>(uri,partitionKey); 

これ以上は必要ありません。あなたは、フロントまでのパーティションを知らないとあなたがそれらを照会する必要がある場合

しかし、:

using(var client = new FabricClient()) 
{ 
    var partitions = await client.QueryManager.GetPartitionListAsync(serviceName); 

    foreach (var partition in partitions) 
    { 
     var partitionInformation = (NamedPartitionInformation)partition.PartitionInformation; 
     var partitionKey = ServicePartitionKey(partitionInformation.Name);  
     IListen listenerClient = ServiceProxy.Create<IListen>(uri,partitionKey); 
    } 
} 
+0

ため息を、それはとても簡単でした。 – jugg1es

関連する問題