public async Task <Contract.Face[]> DetectAsync(Stream imageStream, bool returnFaceId = true, bool returnFaceLandmarks = false, IEnumerable <FaceAttributeType> returnFaceAttributes = null) { Contract.Face[] faceArray; if (returnFaceAttributes == null) { object[] serviceHost = new object[] { this.ServiceHostCn, "detect", returnFaceId, returnFaceLandmarks }; string str = string.Format("{0}/{1}?returnFaceId={2}&returnFaceLandmarks={3}", serviceHost); Contract.Face[] faceArray1 = await this.SendRequestAsync <Stream, Contract.Face[]>(HttpMethod.Post, str, imageStream); faceArray = faceArray1; } else { object[] objArray = new object[] { this.ServiceHostCn, "detect", returnFaceId, returnFaceLandmarks, FaceServiceClient.GetAttributeString(returnFaceAttributes) }; string str1 = string.Format("{0}/{1}?returnFaceId={2}&returnFaceLandmarks={3}&returnFaceAttributes={4}", objArray); Contract.Face[] faceArray2 = await this.SendRequestAsync <Stream, Contract.Face[]>(HttpMethod.Post, str1, imageStream); faceArray = faceArray2; } return(faceArray); }