protected override IEnumerable <EndpointAssignment> DoGetEndpointsForCall(string remoteAddress, string contract, ShardKey shardKey, Atom network, Atom binding) { var shard = ((int)shardKey.GetDistributedStableHash()) & CoreConsts.ABS_HASH_MASK; var shards = DoGetEndpointsForAllShardsArray(remoteAddress, contract, network, binding); if (shards == null || shards.Length == 0) { return(Enumerable.Empty <EndpointAssignment>()); } var result = shards[shard % shards.Length]; return(result); }