// private methods private IReadOperation <IAsyncCursor <BsonDocument> > CreateOperation(IChannel channel) { if (SupportedFeatures.IsListCollectionsCommandSupported(channel.ConnectionDescription.ServerVersion)) { return(new ListCollectionsUsingCommandOperation(_databaseNamespace, _messageEncoderSettings) { Filter = _filter }); } else { return(new ListCollectionsUsingQueryOperation(_databaseNamespace, _messageEncoderSettings) { Filter = _filter }); } }