예제 #1
0
        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;
        }
예제 #2
0
        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;
        }
예제 #3
0
        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());
            }
        }
예제 #5
0
        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;
                }
            }
        }
예제 #6
0
 public void DeserializeFromString_DataContract()
 {
     dataContractSerializer.DeserializeFromString <TestClass>(dataContractFromString);
 }