Проблема веб-API с параметрами MailAddress

У меня есть метод веб-API, как показано ниже...

    [HttpPost]
    [Route("EmailAPI/SendEmail")]
    public IHttpActionResult SendEmail(string fundCode, DateTime period, List<MailAddress> bccAddress, List<MailAddress> ccAddress,
                                                            List<MailAddress> toAddress, MailAddress fromUser)
    {
         // logic here...
    }

Я звоню из кода клиента RestSharp ниже. Тем не менее, я получаю это сообщение об ошибке при запуске...

" Невозможно привязать несколько параметров (" bccAddress "и" fromUser ") к содержимому запроса."

Это работает нормально, если я изменю все параметры на строку, а не на MailAddress. Что мне нужно изменить, чтобы заставить его работать с MailAddress?

List<MailAddress> toMailAddresses = new List<MailAddress>();
                List<MailAddress> ccMailAddresses = new List<MailAddress>();
                List<MailAddress> bccMailAddresses = new List<MailAddress>();
                foreach (var recipient in recipients)
                {
                    toMailAddresses.Add(new MailAddress(recipient.UserEmailAddress, recipient.UserDisplayName));
                    ccMailAddresses.Add(new MailAddress(recipient.UserEmailAddress, recipient.UserDisplayName));
                    bccMailAddresses.Add(new MailAddress(recipient.UserEmailAddress, recipient.UserDisplayName));
                }

                // send email
                RestClient client = new RestClient()
                {
                    BaseUrl = new Uri(ConfigurationManager.AppSettings["TestApi"] + "EmailAPI/SendEmail")
                };

                var req = new RestRequest(Method.POST);

                // get user detail
                var userDetail = GetUserDetails();
                MailAddress fromMailAddress = new MailAddress(userDetail.EmailAddress, userDetail.DisplayName);

                req.Parameters.Add(new Parameter() { Name = "FundCode", Value = fundCode, Type = ParameterType.QueryString });
                req.Parameters.Add(new Parameter() { Name = "Period", Value = period.ToString("yyyy/MM/dd"), Type = ParameterType.QueryString });
                req.Parameters.Add(new Parameter() { Name = "bccAddress", Value = bccMailAddresses, Type = ParameterType.QueryString });
                req.Parameters.Add(new Parameter() { Name = "ccAddress", Value = ccMailAddresses, Type = ParameterType.QueryString });
                req.Parameters.Add(new Parameter() { Name = "toAddress", Value = toMailAddresses, Type = ParameterType.QueryString });
                req.Parameters.Add(new Parameter() { Name = "fromUser", Value = fromMailAddress, Type = ParameterType.QueryString });

                IRestResponse response = client.Execute(req);
                var content = JsonConvert.DeserializeObject(response.Content);

0 ответов

Другие вопросы по тегам