/// <summary>read the target for the request</summary>
 /// <returns>the objectURI extracted from this msg</returns>
 private string ReadTarget(CdrInputStream cdrStream, GiopVersion version,
                           out byte[] objectKey) {
     if (version.IsBeforeGiop1_2()) {
         // for GIOP 1.0 / 1.1 only object key is possible
         objectKey = ReadTargetKey(cdrStream);
     } else {
         // for GIOP >= 1.2, a union is used for target information
         ushort targetAdrType = cdrStream.ReadUShort();
         switch (targetAdrType) {
             case 0:
                 objectKey = ReadTargetKey(cdrStream);
                 break;
             default:
                 Trace.WriteLine("received not yet supported target address type: " + targetAdrType);
                 throw new BAD_PARAM(650, CompletionStatus.Completed_No);
         }
     }
     // get the object-URI of the responsible object
     return IorUtil.GetObjectUriForObjectKey(objectKey);
 }