void ButtonSerializeDeserialize_Click(object sender, RoutedEventArgs e) { // Serialize: var dataContractSerializer = new DataContractSerializer(typeof(ClassToSerialize)); #if OPENSILVER string xml = null; MemoryStream stream1 = new MemoryStream(); dataContractSerializer.WriteObject(stream1, _classToSerialize); stream1.Seek(0, SeekOrigin.Begin); using (var streamReader = new StreamReader(stream1)) { xml = streamReader.ReadToEnd(); } #else var xml = dataContractSerializer.SerializeToString(_classToSerialize); #endif // Display the result of the serialization: MessageBox.Show("Result of the serialization:" + Environment.NewLine + Environment.NewLine + xml); // Deserialize: dataContractSerializer = new DataContractSerializer(typeof(ClassToSerialize)); #if OPENSILVER ClassToSerialize deserializedObject = (ClassToSerialize)dataContractSerializer.ReadObject(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(xml))); #else ClassToSerialize deserializedObject = (ClassToSerialize)dataContractSerializer.DeserializeFromString(xml); #endif // Display the result of the deserialization: SerializationDestinationPanel.DataContext = deserializedObject; }
async Task RefreshRestToDos() { var webClient = new WebClient(); webClient.Encoding = Encoding.UTF8; webClient.Headers[HttpRequestHeader.Accept] = "application/xml"; string response = await webClient.DownloadStringTaskAsync("http://cshtml5-rest-sample.azurewebsites.net/api/Todo?OwnerId=" + _ownerId.ToString()); var dataContractSerializer = new DataContractSerializer(typeof(List <ToDoItem>)); List <ToDoItem> toDoItems = (List <ToDoItem>)dataContractSerializer.DeserializeFromString(response); RestToDosItemsControl.ItemsSource = toDoItems; }
void ButtonSerializeDeserialize_Click(object sender, RoutedEventArgs e) { // Serialize: var dataContractSerializer = new DataContractSerializer(typeof(ClassToSerialize)); var serializedXml = dataContractSerializer.SerializeToString(_classToSerialize); // Display the result of the serialization: MessageBox.Show("Result of the serialization:" + Environment.NewLine + Environment.NewLine + serializedXml); // Deserialize: dataContractSerializer = new DataContractSerializer(typeof(ClassToSerialize)); ClassToSerialize deserializedObject = (ClassToSerialize)dataContractSerializer.DeserializeFromString(serializedXml); // Display the result of the deserialization: SerializationDestinationPanel.DataContext = deserializedObject; }
async Task RefreshRestToDos() { try { var webClient = new WebClient(); webClient.Encoding = Encoding.UTF8; webClient.Headers[HttpRequestHeader.Accept] = "application/xml"; #if !OPENSILVER string response = await webClient.DownloadStringTaskAsync("http://cshtml5-rest-sample.azurewebsites.net/api/Todo?OwnerId=" + _ownerId.ToString()); var dataContractSerializer = new DataContractSerializer(typeof(List <ToDoItem>)); List <ToDoItem> toDoItems = (List <ToDoItem>)dataContractSerializer.DeserializeFromString(response); RestToDosItemsControl.ItemsSource = toDoItems; #else //Note: it seems WebClient is not supported (despite existing) in Blazor so we use HttpClient instead var httpClient = new System.Net.Http.HttpClient(); httpClient.DefaultRequestHeaders.Accept.Clear(); httpClient.DefaultRequestHeaders.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/xml")); var responseMessage = await httpClient.GetAsync("http://cshtml5-rest-sample.azurewebsites.net/api/Todo?OwnerId=" + _ownerId.ToString()); string response = await responseMessage.Content.ReadAsStringAsync(); var dataContractSerializer = new DataContractSerializer(typeof(List <ToDoItem>), new Type[] { typeof(ToDoItem) }); //convert the string into a stream so it can be deserialized: using (var stream = new MemoryStream()) { using (var writer = new StreamWriter(stream)) { writer.Write(response); writer.Flush(); stream.Position = 0; List <ToDoItem> toDoItems = (List <ToDoItem>)dataContractSerializer.ReadObject(stream); RestToDosItemsControl.ItemsSource = toDoItems; } } #endif } catch (Exception ex) { MessageBox.Show("ERROR: " + ex.ToString()); } }
private async void RefreshFromRestServer() { // Download the items from the server via REST: var webClient = new WebClient(); webClient.Encoding = Encoding.UTF8; webClient.Headers[HttpRequestHeader.Accept] = "application/xml"; string response = null; try { response = await webClient.DownloadStringTaskAsync(BaseUrl + "/api/ContractSalesItem"); } catch (Exception e) { MessageBox.Show("Failed to download items from REST. Exception message: " + e.Message); } // Update the KanBan: if (response != null) { var dataContractSerializer = new DataContractSerializer(typeof(List <ContractSalesItem>)); List <ContractSalesItem> ContractSalesItems = (List <ContractSalesItem>)dataContractSerializer.DeserializeFromString(response); if (ContractSalesItems.Count > 0) { _contractSalesitems = ContractSalesItems; MyKanBanControl.ItemsSource = _contractSalesitems; } } }
public void DeserializeFromString_DataContract() { dataContractSerializer.DeserializeFromString <TestClass>(dataContractFromString); }