«Произошла ошибка, отражающая тип» в C # - PullRequest
2 голосов
/ 26 января 2011

Мне нужно сериализовать и исключение, я создал Сериализуемый класс

[Serializable]
public class MessageException : Exception
{
    public string Exception
    { get; set; }
    public MessageException()
    { }
    public MessageException(System.Exception ex) 
    {
        this.Exception = ex.Message.ToString();
    }
}

, и я пытаюсь вызвать класс из следующего исключения, когда это происходит

catch (Exception ex)
        {
            MessageException exception = new MessageException(ex);
            var exSerializer = new XmlSerializer(typeof(MessageException));


            var writer = new StringWriter();
            exSerializer.Serialize(writer, exception);
            writer.Close();
            Compair2Files(writer.ToString(), BaseString);
        }

, при котором происходит сбойвторая строка "var exSerializer = new XmlSerializer (typeof (MessageException)));"

Что я на самом деле пытаюсь сделать, так это когда я ловлю исключение, я хочу сериализовать его и затем сохранить в файле для моегопрограмма модульного тестирования.Не могли бы вы помочь мне заранее спасибо Jp

1 Ответ

1 голос
/ 26 января 2011

Вы не можете сериализовать исключения, используя XmlSerializer.
Вам необходимо использовать двоичную сериализацию.

Базовый класс Exception уже равен [Serializale], поэтому ваш класс бесполезен.
Этотоже неправильно;вы игнорируете трассировку стека.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...