Я не могу найти ответ на этот вопрос.Надеюсь, что кто-нибудь может помочь.
У меня есть установщик свойства, который выдает исключение, если значение не соответствует определенным условиям.Класс, в котором находится свойство, сериализуется / десериализуется.
При десериализации класса в .NET 2.0 возникает исключение.Если я изменю цель проекта на .NET 4.0, исключение не будет поймано!
Есть идеи?
Спасибо, Сэм
Извините.Под «исключением» я имею в виду тот, который я выбрасываю.Вот пример кода.
Это пример класса, который я хочу сериализовать / десериализовать:
public class MyClass
{
public string Name
{
get{return myName;}
set
{
if (value == "") throw new Exception("Name is blank!");
myName = value;
}
}
private string myName;
}
А вот код, который вызывает десериализатор.
try
{
XmlSerializer xs = new XmlSerializer(typeof(MyClass));
using (FileStream stream = File.OpenRead("myclass.xml"))
{
MyClass mc = xs.Deserialize(stream) as MyClass;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
Вот файл «myclass.xml» для проверки исключения.
<?xml version="1.0"?>
<MyClass>
<Name></Name>
</MyClass>
Использование .NET 2.0 Я получаю окно сообщения с сообщением об исключении.Используя .NET 4.0, я получаю «Исключение, не обработанное кодом пользователя».
Спасибо,
Сэм