2016-06-12 3 views

ответ

9

Вы можете перечислимых разделы с помощью FabricClient:

var serviceName = new Uri("fabric:/MyApp/MyService"); 
using (var client = new FabricClient()) 
{ 
    var partitions = await client.QueryManager.GetPartitionListAsync(serviceName); 

    foreach (var partition in partitions) 
    { 
     Debug.Assert(partition.PartitionInformation.Kind == ServicePartitionKind.Int64Range); 
     var partitionInformation = (Int64RangePartitionInformation)partition.PartitionInformation; 
     var proxy = ServiceProxy.Create<IMyService>(serviceName, new ServicePartitionKey(partitionInformation.LowKey)); 
     // TODO: call service 
    } 
} 

Обратите внимание, что вы, вероятно, следует кэшировать результаты GetPartitionListAsync поскольку разделы служб не могут быть изменены без воссоздания службы (вы можете просто сохранить список LowKey значений).

Кроме того, следует также делиться FabricClient (см. documentation).

+0

Хорошая идея, сохраняющая список значений «LowKey». Спасибо за это. –

+0

Что означает «совместное использование» «FabricClient»? – jugg1es

+0

@ jugg1es Это означает, что каждый раз, вместо создания нового, вы повторно используете экземпляр 'FabricClient'. –

Смежные вопросы