Serialize SendGridMessage对象

时间:2015-10-27 10:57:11

标签: c# azure serialization json.net sendgrid

我正在构建一个需要发送一些交易邮件的系统,为了达到这个目的,我使用Azure存储队列暂时存储邮件,然后由WebJob选中并发送给目标收件人。

我的代码如下:

SendGridMessage message = new SendGridMessage();
//Populate message with details - omitted for brevity

var serializer = new JavaScriptSerializer();
var modelAsString = serializer.Serialize(message);

try
{
    var setting = CloudConfigurationManager.GetSetting("AzureStorageConnectionString");
    var account = CloudStorageAccount.Parse(setting);
    var queueClient = account.CreateCloudQueueClient();
    var queue = queueClient.GetQueueReference("FSPortalEmailQueue");
    queue.CreateIfNotExists();

    queue.AddMessage(new CloudQueueMessage(modelAsString));
}
catch (Exception ex)
{
    //Something went wrong
}

每次我尝试执行编码器时,都会在

上抛出异常
  

var modelAsString = serializer.Serialize(message);

     

“调用目标引发了异常。”

抛出的内部异常是

  来自“SendGrid.SmtpApi”

{“Bad key path!”}

请告诉我这里的错误。

1 个答案:

答案 0 :(得分:2)

经过一番挖掘,结果发现message.header节点没有被初始化。添加后

message.Header = new SendGrid.SmtpApi.Header();

message.Header.SetTo(new List<String> { enquiry.EnquiryCreatedBy.Email });

所有人都开始非常神奇地工作