Silverlight ネットワーク操作 のバックアップ(No.2) - PukiWiki

SilverLight?

ネットワークの状態
[edit]

public class NetworkInformationHelper : INotifyPropertyChanged
{
	protected bool _IsNetworkAvailable = false;
	public bool IsNetworkAvailable
	{
		get { return this._IsNetworkAvailable; }
		protected set
		{
			if (this._IsNetworkAvailable != value)
			{
				this._IsNetworkAvailable = value;
				this.OnPropertyChanged("IsNetworkAvailable");
			}
		}
	}

	public NetworkInformationHelper()
	{
		this.IsNetworkAvailable = NetworkInterface.GetIsNetworkAvailable();
		NetworkChange.NetworkAddressChanged +=
			new NetworkAddressChangedEventHandler(OnNetworkAddressChanged);
	}

	protected virtual void OnNetworkAddressChanged(object sender, EventArgs e)
	{
		this.IsNetworkAvailable = NetworkInterface.GetIsNetworkAvailable();
	}

	public event PropertyChangedEventHandler PropertyChanged;
	protected virtual void OnPropertyChanged(string propertyName)
	{
		PropertyChangedEventHandler handlers = this.PropertyChanged;
		if (handlers != null)
			handlers(this, new PropertyChangedEventArgs(propertyName));
	}
}
このページのトップへ

WCF サービスを利用する
[edit]

このページのトップへ

RESTful Webサービスを利用する
[edit]

 SOAPをしない簡易なXML+HTTPインターフェイスを採用したWEBサービスREST(Representational State Transfer)WebClientクラスを利用してHTTP通信を行う。  

WebClient client = new WebClient();
client.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted);
client.OpenReadAsync(serviceURI, "/RESTfulService/SampleService.svc");
void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
	if ((e.Error == null) && (!e.Cancelled))
	{
		XDocument xDoc = XDocument.Load(e.Result);
		Dispatcher dispatcher = e.UserState as Dispatcher;
		if (dispatcher != null)
		{
			if (dispatcher.CheckAccess())
				this.UpdateContext(xDoc);
			else
				dispatcher.BeginInvoke(this.UpdateViewModel, xDoc);
		}
	}
	else
	{
		//
		base.OnCommandComplated(false, null);
	}
}
このページのトップへ

WCF Data Serviceを利用する
[edit]

 WCF Data Service はRESTfulなサービスをラップして、データの送受信などの操作を簡単に行えるようにしたコンポーネントです。もちろんWebClientクラスを使用して、サービスを利用することができますが、LINQを使用するDataServiceQueryクラスを利用したほうが便利です。

このページのトップへ

WCF RIA Serviceを利用する
[edit]

 サービス側はDomainServiceで構成され、クライアント側はDomainContextを利用してデータのやり取りを行います。


コメント:



0


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

yVoC[UNLIMITȂ1~] ECirŃ|C Yahoo yV LINEf[^[Ōz500~`I


z[y[W ̃NWbgJ[h COiq 萔O~ył񂫁z COsیI COze