/// <summary>
 /// Read record header and bins for specified key.
 /// If found, return record instance.  If not found, return null.
 /// The policy can be used to specify timeouts.
 /// </summary>
 /// <param name="policy">generic configuration parameters, pass in null for defaults</param>
 /// <param name="key">unique record identifier</param>
 /// <param name="binNames">bins to retrieve</param>
 /// <exception cref="AerospikeException">if read fails</exception>
 public Record Get(Policy policy, Key key, params string[] binNames)
 {
     if (policy == null)
     {
         policy = readPolicyDefault;
     }
     ReadCommand command = new ReadCommand(cluster, policy, key, binNames);
     command.Execute();
     return command.Record;
 }
 //-------------------------------------------------------
 // Read Record Operations
 //-------------------------------------------------------
 /// <summary>
 /// Read entire record for specified key.
 /// If found, return record instance.  If not found, return null.
 /// The policy can be used to specify timeouts.
 /// </summary>
 /// <param name="policy">generic configuration parameters, pass in null for defaults </param>
 /// <param name="key">unique record identifier</param>
 /// <exception cref="AerospikeException">if read fails</exception>
 public Record Get(Policy policy, Key key)
 {
     if (policy == null)
     {
         policy = readPolicyDefault;
     }
     ReadCommand command = new ReadCommand(cluster, policy, key, null);
     command.Execute();
     return command.Record;
 }