2009-06-08 1 views
1

Я использую Visual Web Developer для создания библиотеки классов Silverlight. У меня есть другой проект, в котором Библиотека классов импортируется и реализуется. Это загрузка файла XML, и я использую XmlSerializer.Deserialize в класс, созданный с помощью xsd.exe.ManagedRuntimeError System.NotSupportedException: XLinq. Разработка Silverlight в C# с помощью Visual Web Developer

Иногда при загрузке XML, я получаю эту ошибку:

 
Unhandled Error in Silverlight 2 Application 
Code: 4004  
Category: ManagedRuntimeError  
Message: System.InvalidOperationException: There is an error in XML document (149, 10). ---> System.NotSupportedException: XLinq 
    at System.Xml.Serialization.XmlSerializationReader.ReadXmlNodes(Boolean elementCanBeType) 
    at System.Xml.Serialization.XmlSerializationReader.ReadTypedPrimitive(XmlQualifiedName type, Boolean elementCanBeType) 
    at System.Xml.Serialization.XmlSerializationReader.ReadTypedPrimitive(XmlQualifiedName type) 

Я обнаружил, что это происходит только тогда, когда существует тэг называется Extensions в моем файле XML. Сначала я думал, что это неправильно определено в классе C#, сгенерированном xsd.exe, но работает, если я изменяю расширения на любое другое имя. К сожалению, простое изменение имени этого тега навсегда не является вариантом. Я исключил зарезервированные слова. У Google нет информации об этой ошибке.

ответ

1

Это довольно странно. Трассировка стека, которую вы ставите, кажется невозможной. Если вы посмотрите версию 2.0 Silverlight System.Xml.dll, вы заметите, что нет класса под названием XmlSerializationReader. Этот класс присутствует только в полной версии System.Xml.dll.

Вы пытались развернуть фрейм-версию System.Xml.dll? Или вы используете другую библиотеку, которую мне не хватает, чтобы получить доступ к этому классу?

+0

XmlSerializationReader находится в классе System.Xml.Serialization. – nerdabilly

+0

@nerdabilly, как вы это подтверждаете? Я удалил все DLL из отражателя, а затем явно загрузил System.Xml.dll из каталога Silverlight и не содержит этот класс. – JaredPar

+0

@ JaredPar, вам также нужно добавить ссылку на библиотеку System.Xml.Serialization.dll. Он должен находиться в каталоге Silverlight. – nerdabilly