C# 序列化SendGridMessage对象

C# 序列化SendGridMessage对象,c#,azure,serialization,json.net,sendgrid,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 = s

我正在构建一个需要发送一些事务性邮件的系统,为了实现这一点,我使用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(消息)

“调用的目标已引发异常。”

引发的内部异常为

来自源“SendGrid.SmtpApi”的{“坏密钥路径!”}


请告诉我这里做错了什么。

经过进一步挖掘,发现message.header节点没有初始化。添加后

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

message.Header.SetTo(new List<String> { enquiry.EnquiryCreatedBy.Email });
message.Header=new SendGrid.SmtpApi.Header();
message.Header.SetTo(新列表{enquiry.inquirycreatedby.Email});

尽管我成功地序列化了对象,但在接收端(由queueItem触发的Azure webjob),反序列化在MailAddress上失败,所有这些都开始神奇地工作起来。