Проблема веб-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);