Чтобы исправить ошибку, добавьте в класс конструктор по умолчанию (конструктор, не имеющий аргументов).
Выполнение этого самостоятельно остановит ошибку, но может не правильно сериализовать строковое значение.Я не уверен на 100% в этом, так как может быть в состоянии сериализовать открытую переменную-член.
Если нет, вы захотите добавить открытое свойство для строкового значения.
Более "стандартная" реализация этого класса, вероятно, будет выглядеть следующим образом.У вас будет либо второй конструктор, либо просто используйте установщик для установки значения:
[Serializable]
public class testClass
{
private string str;
public testClass()
{
}
public string Str
{
get { return str; }
set { str = value; }
}
}
Редактировать : добавлен открытый модификатор в класс.Должно работать сейчас.
Кроме того, я предполагаю, что вы вызываете код, который вызывает исключение в конструкторе Window?Это единственная причина, по которой я вижу, что это вызовет исключение XAML.Ошибки в конструкторе помещаются в это исключение XAML, поэтому в этих случаях вы хотите посмотреть на InnerException, чтобы найти проблему.