У меня есть этот простой код:
let httpSuccessCodes =
Set.ofSeq [HttpStatusCode.OK; HttpStatusCode.NoContent]
let httpSuccess (httpSuccessCode:HttpStatusCode) =
Console.WriteLine("{0}", httpSuccessCode)
httpSuccessCodes.Contains httpSuccessCode
При вызове этого кода просто тихо выйдите из приложения, без ошибок:
let isSuccess = httpSuccess stauscode
Забавно, что он работает в fsharpi. Я не уверен, почему он ломается.
Update1:
Код, который работает:
let task = amazonS3client.GetACLAsync(getBucketAclRequest)
task.Wait()
let success = isHttpSuccess task.Result.HttpStatusCode
if task.IsCompletedSuccessfully && success then
Console.WriteLine("getBucketAcl finished successfully for bucket {0}", bucket)
Some task.Result.AccessControlList
else
Console.Error.WriteLine("Could not get bucket acl: {0}", bucket)
None
Update2:
if ((Set.ofSeq [ HttpStatusCode.OK; HttpStatusCode.NoContent; ]).Contains task.Result.HttpStatusCode) then
Console.WriteLine("1")
if (httpSuccessCodes.Contains task.Result.HttpStatusCode) then
Console.WriteLine("2")
if (isHttpSuccess task.Result.HttpStatusCode) then
Console.WriteLine("3")
Вывод: 1