ошибка при отправке почтового сообщения в очередь сообщений - PullRequest
0 голосов
/ 07 августа 2010

Я пытаюсь отправить сообщение (сложный тип) в очередь сообщений. Я получаю сообщение об ошибке, ETravel.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable. Ниже приводится код для этого.

 public void QueueMessage(EmailMessage message)
        {
            Message msg = new Message();
            msg.Body = message;
            msg.Recoverable = true;
            msg.Formatter = new BinaryMessageFormatter();
            string queuePath = @".\private$\WebsiteEmails";
            //InsureQueueExists(queuePath);
            MessageQueue msgQ;
            msgQ = new MessageQueue(queuePath);
            msgQ.Formatter = new BinaryMessageFormatter();
            msgQ.Send((object)msg);
        }

Сложный тип EmailMessage:следующим образом.

public class EmailMessage
    {
        public string subject { get; set; }
        public string message { get; set; }
        public string from { get; set; }
        public string to { get; set; }
    }

Заранее спасибо.

Я установил MessageQueue.

O / s: windows xp.
Используемая технология: Asp.netMVC.

1 Ответ

2 голосов
/ 07 августа 2010

Вы пометили этот класс как [Сериализуемый]?

 [Serializable]
 public class EmailMessage
 { ..... }

Также у вас нет методов для сериализации Вы должны сказать, как использовать сериализацию вашего объекта, когда вы используете не встроенный объект

//Deserialization
public EmailMessage(SerializationInfo info, StreamingContext ctxt)
{


to = (string)info.GetValue("to", typeof(string));
from = (String)info.GetValue("from", typeof(string));
// add other stuff here
}

//Serialization function.

public void GetObjectData(SerializationInfo info, StreamingContext ctxt)
{

// then you should read the same with "EmployeeId"

info.AddValue("to", to);
info.AddValue("from", from);
}

Изменить: Извините, я думал о BinaryFormatter, а не BinaryMessageFormatter. Хотя вы все еще можете попробовать и посмотреть, работает ли он.

1009 * привет *

...