У меня есть решение ac # с проектом запуска ASMX, а также с некоторыми другими проектами.Один из этих проектов (скажем, ThirdProject
) имеет класс (скажем, DataReader
) с методом (скажем, ReadData()
), который выполняет десериализацию потока.С самим потоком все в порядке, он поступает из встроенного ресурса и может быть прочитан StreamReader без ошибок в строку, и это действительно допустимая строка xml.Но десериализация создает исключение StackOverflowException.
Теперь прибывает странность.В целях тестирования я создал дополнительный проект для этого решения на c #, это проект winform.Если я установлю этот проект winform как стартовый проект решения, то он вызовет процедуру ThirdProject.DataReader. ReadData()
без каких-либо ошибок!Десериализация завершена!
Я повторил свои объяснения, изменив битность (x86 или x64), а также изменив целевой .Net Framework (с 4.0 до 4.7.2), но результат всегда одинаков.
Где искать причину этой ошибки?Любая подсказка будет оценена.
Редактировать .
Кодовая часть вопроса:
using (Stream stream = assembly.GetManifestResourceStream(xmlname))
{
var l = stream.Length;
var ret_obj = ktAntragsdatenAbrufenXmlFormat.Deserialize(stream);
...
}
Поток. Длина 18671.ktAntragsdatenAbrufenXmlFormat
является статическим System.Xml.Serialization.XmlSerializer
Эта часть кода работает без ошибок:
using (Stream stream = assembly.GetManifestResourceStream(xmlname))
{
var l = stream.Length;
StreamReader reader = new StreamReader(stream);
string text = reader.ReadToEnd();
}