Сериализация и десериализация в WebService и SoapFormatter для объекта DataTable.
Я пытаюсь десериализовать DataTable, который уже был сериализован с помощью службы WebService (Soap); но при помещении результата в SoapFormatter он обвиняет, что префикс пространства имен не был объявлен (xs). Есть идеи, как объявить это пространство имен? Я уже искал класс SoapFormatter и не могу найти ничего, чтобы вставить эти префиксы.
Кроме того, похоже, что вам нужно импортировать сборки, содержащие объекты, и я не понял, как это сделать.
string data = @"
<DataTable xmlns=\"http://www.ici.curitiba.org/\">
<xs:schema id=\"NewDataSet\" xmlns=\"\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">
<xs:element name=\"NewDataSet\" msdata:IsDataSet=\"true\" msdata:MainDataTable=\"Table\" msdata:UseCurrentLocale=\"true\">
<xs:complexType>
<xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">
<xs:element name=\"Table\">
<xs:complexType>
<xs:sequence>
<xs:element name=\"id\" type=\"xs:int\" minOccurs=\"0\" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\" xmlns:diffgr=\"urn:schemas-microsoft-com:xml-diffgram-v1\">
<NewDataSet xmlns=\"\">
<Table diffgr:id=\"Table1\" msdata:rowOrder=\"0\">
<id>6413777</id>
</Table>
</NewDataSet>
</diffgr:diffgram>
</DataTable>
";
var sf = new SoapFormatter();
var ms = new MemoryStream(Encoding.UTF8.GetBytes(data));
ms.Position = 0;
var obj = sf.Deserialize(ms) as DataTable;