惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
T
Threatpost
Latest news
Latest news
N
News | PayPal Newsroom
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Help Net Security
Help Net Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
AI
AI
Simon Willison's Weblog
Simon Willison's Weblog
TaoSecurity Blog
TaoSecurity Blog
The Last Watchdog
The Last Watchdog
L
LINUX DO - 热门话题
Google DeepMind News
Google DeepMind News
T
Threat Research - Cisco Blogs
O
OpenAI News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
The Exploit Database - CXSecurity.com
NISL@THU
NISL@THU
Application and Cybersecurity Blog
Application and Cybersecurity Blog
S
Securelist
小众软件
小众软件
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Martin Fowler
Martin Fowler
S
SegmentFault 最新的问题
Cisco Talos Blog
Cisco Talos Blog
云风的 BLOG
云风的 BLOG
AWS News Blog
AWS News Blog
GbyAI
GbyAI
N
News and Events Feed by Topic
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
美团技术团队
Engineering at Meta
Engineering at Meta
A
About on SuperTechFans
博客园 - 三生石上(FineUI控件)
S
Schneier on Security
博客园 - 聂微东
V2EX - 技术
V2EX - 技术
T
Troy Hunt's Blog
SecWiki News
SecWiki News
S
Secure Thoughts
B
Blog RSS Feed
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学
腾讯CDC
H
Heimdal Security Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Apple Machine Learning Research
Apple Machine Learning Research
月光博客
月光博客
www.infosecurity-magazine.com
www.infosecurity-magazine.com
P
Privacy International News Feed

博客园 - 如是如是

将博客搬至CSDN 钱钟书夫人杨绛:《一百岁感言》 DOM无关事件 用到了反射,还不错。可以取到动态创建类的值 JounceTabRegion Jounce Blendable RestShart Post 方式传递poco给Web api Using ASP.NET Web API with ASP.NET Web Forms How to Migrate from WCF Web API to ASP.NET Web API ASP.NET Web API MVC-REST-SilverLight 之 架构 MVC-REST-SilverLight 之 RestExample.Model.Silverlight\Customer.cs - 如是如是 MVC-REST-SilverLight 之MainPage.xaml.cs MVC-REST-SilverLight 之Api\CustomerApi.cs - 如是如是 - 博客园 MVC-REST-SilverLight 之 Global.asax.cs MVC-REST-SilverLight 之 HttpConfiguration MVC-REST-SilverLight 之 MapServiceRoute MEF Export 和 Import 委托 设计模式-访问者
MVC-REST-SilverLight 之 ViewModels\MainViewModel.cs - 如是如是
如是如是 · 2012-02-21 · via 博客园 - 如是如是

using System.ComponentModel;

using RestExample.Model;

using System.Collections.ObjectModel;

using System;

using System.Net;

using System.Diagnostics;

using System.Xml;

using System.Xml.Linq;

using System.Linq;

using System.Collections.Generic;

using System.Threading;

using System.IO;

namespace RestClient.ViewModels

{

public class MainViewModel : INotifyPropertyChanged

{

private SynchronizationContext _context;

public MainViewModel()

{

_context = SynchronizationContext.Current;

}

private Customer _selectedCustomer;

public Customer SelectedCustomer

{

get { return _selectedCustomer; }

set

{

_selectedCustomer = value;

NotifyPropertyChanged("SelectedCustomer");

}

}

private ObservableCollection<Customer> _customers =

new ObservableCollection<Customer>();

public ObservableCollection<Customer> Customers

{

get { return _customers; }

}

public void AddNewLocalCustomer()

{

var customer = new Customer();

_customers.Add(customer);

SelectedCustomer = customer;

}

public void LoadCustomers()

{

string url = "http://localhost:9090/api/customers";

Uri uri = new Uri(url, UriKind.Absolute);

var request = (HttpWebRequest)WebRequest.Create(uri);

request.Method = "GET";

request.Accept = "text/xml";

request.BeginGetResponse((result) =>

{

var response = request.EndGetResponse(result);

var stream = response.GetResponseStream();

if (stream != null)

{

var reader = XmlReader.Create(stream);

XElement set = XElement.Load(reader);

_context.Post((o) =>

{

IEnumerable<Customer> customers =

from XElement item in set.Descendants("Customer")

select new Customer()

{

ID = int.Parse(item.Element("ID").Value),

FirstName = item.Element("FirstName").Value,

LastName = item.Element("LastName").Value,

Balance = decimal.Parse(item.Element("Balance").Value)

};

Customers.Clear();

foreach (Customer customer in customers)

{

Customers.Add(customer);

}

}, null);

}

}, null);

}

public void DeleteSelectedCustomer()

{

}

public void UpdateSelectedCustomer()

{

if (SelectedCustomer != null)

{

string url = "http://localhost:9090/api/customers";

Uri uri = new Uri(url, UriKind.Absolute);

var request = (HttpWebRequest)WebRequest.Create(uri);

request.Method = "POST";

request.ContentType = "text/xml";

request.BeginGetRequestStream((result) =>

{

var req = (HttpWebRequest)result.AsyncState;

var stream = req.EndGetRequestStream(result);

if (stream != null)

{

string customerTemplate =

"<?xml version=\"1.0\" encoding=\"utf-8\"?>" +

"<Customer>" +

"<ID>{0}</ID>" +

"<LastName>{1}</LastName>" +

"<FirstName>{2}</FirstName>" +

"<Balance>{3}</Balance>" +

"</Customer>";

string xml = string.Format(customerTemplate,

SelectedCustomer.ID,

SelectedCustomer.LastName,

SelectedCustomer.FirstName,

SelectedCustomer.Balance);

Debug.WriteLine("POST: " + xml);

using (var writer = new StreamWriter(stream))

{

writer.Write(xml);

writer.Close();

}

req.BeginGetResponse((requestResult) =>

{

var req2 = (HttpWebRequest)requestResult.AsyncState;

var response = req2.EndGetResponse(requestResult);

var responseStream = response.GetResponseStream();

var reader = new StreamReader(responseStream);

string responseText = reader.ReadToEnd();

Debug.WriteLine("Response: " + responseText);

}, req);

}

}, request);

}

}

public event PropertyChangedEventHandler PropertyChanged;

protected void NotifyPropertyChanged(string propertyName)

{

if (PropertyChanged != null)

PropertyChanged(this,

new PropertyChangedEventArgs(propertyName));

}

}

}