XAMLベースのメトロアプリケーションでWCF RIAサービスを使用しようとしたことがあるのだろうか。あなたがブログやサンプルを持っている場合は、共有してください。私は実際のところXAMLメトロアプリでWCF RIAサービスを使用する方法に関するサンプルはありますか?
答えて
、ここではトリックです:)
私はADO.NET Entity Frameworkのモデルを露出させ、私のWCFサービスに「サービス参照」を追加しました。問題は、XAML/C#のMetroアプリでは、次のコードを実行すると失敗するということです。
SampleEntities ctx = ((App)Application.Current).Context;
var query = from p in ctx.Products
where p.Name == name
select p;
foreach (Product p in query) /** this line fails **/
{
// do stuff
}
ここでは、実行時に取得します例外です:
「Silverlightは、直接列挙することはできません。 サービスクエリの列挙型では、 同期要求がデータサービスに自動的に送信されるため、Silverlightのみが非同期操作をサポートするため、 BeginExecuteメソッドとEndExecuteメソッドを呼び出して、というクエリ結果を取得する必要があります。 0}列挙型をサポートしています。 "} [System.NotSupportedException]:{" Silverlightでは、データサービスクエリで直接列挙することはできません。これは、 列挙によって自動的に同期要求がデータ サービスに送信されるためです。 Silverlightは唯一の非同期操作をサポートしているので、 あなたの代わりに列挙をサポートしているクエリ結果を得る にBeginExecuteとEndExecuteメソッドを呼び出す必要があります。」
をああ、これが本当であるには余りにも良いだったでしょう!
例外で述べたように、あなたのサーバがちょうどSilverlightのように、非同期に呼び出す必要がある
ここであなたはそれを古い学校道をやっC#のメトロアプリケーションでWCF RIAサービスを消費することができる方法の例です。:
(...)
var query = from p in ctx.Products
where p.Name == Name
select p;
((DataServiceQuery<Product>)query).BeginExecute(OnLoadItemsCompleted, query);
(...)
private void OnLoadItemsCompleted(IAsyncResult result)
{
var query = result.AsyncState as DataServiceQuery<Product>;
IEnumerable<Product> response = query.EndExecute(result);
foreach (Product o in response)
{
// Do stuff
}
}
今すぐ.NET 4.5を使用して、その新しいが & 非同期キーワードを待って、あなたはすべてのそれらのほとんどのコールバックメソッドでチャンクするためにあなたのコードを回避しながら、同じ結果を得ることができます。
例:最後の二つの方法のいずれかを使用して
async void GetProducts()
{
SampleEntities ctx = ((App)Application.Current).Context;
var query = from p in ctx.Products
where p.Name == name
select p;
DataServiceQuery<Product> dqs = (DataServiceQuery<Product>)(query);
TaskFactory<IEnumerable<Product>> tf = new TaskFactory<IEnumerable<Product>>();
myListView.ItemsSource = await tf.FromAsync(dqs.BeginExecute(null, null),
iar => dqs.EndExecute(iar));
}
が私のためにうまく働いた:)
- 1. WCF RIA Servicesを使用するリスクはありますか?
- 2. Windows 8メトロアプリでスクロール機能を使用する方法はありますか?
- 3. WCF RIA ServicesクエリエンティティをWPFラベルにバインドする方法はありますか?
- 4. wcf riaサービスでテーブルからフィールドを選択する方法
- 5. WCF/RIA:自身からWCF/RIAサービスを自動的に更新する
- 6. WCF RIAサービス
- 7. WCFサービス用にXmlSerializerFormatを使用する場合、ラッピングを回避する方法はありますか?
- 8. WCFデータサービスとWCF RIAサービス
- 9. WCF Ria Services Linkを使用している場合、riaサービスの設定はどこですか?
- 10. RIAサービス:JSON逆シリアル化には制限がありますか?
- 11. 実行時にd:DesignData xamlを使用する方法はありますか?
- 12. WCF RIAサービスSP1タイムアウトは
- 13. WCFを持つPub/Sub用のnServiceBusサンプルはありますか?
- 14. メトロアプリのListViewでSelectedItemをスタイリングするXAML
- 15. ホストされたソリューションでWCFサービスをデバッグする方法はありますか?
- 16. WCFサービスアプリケーションテンプレートを使用すると、「サービス」情報はどこにありますか
- 17. PRISM 4でWCF RIA Servicesを使用するには?
- 18. WCF RIAサービスの呼び出しメソッドのパラメータとしてエンティティを使用する代わりの方法
- 19. エラーコードの表示方法サンプルwcfサービス?
- 20. WCF/RIAサービスのURLを解析するには?
- 21. NUnitを使用してSilverlight 4 AppでWCF RIAサービスをユニット化する
- 22. WCF RIA Servicesサンプル、HRアプリケーション4004例外
- 23. WCF RIAサービスまたは匿名型を動的に返すw
- 24. Silverlight 4がEntity Framework用のWCF RIAサービスを使用する理由
- 25. WinFormsでSilverlight WCF RIAを使用できますか?
- 26. パフォーマンスカウンタを使用してWCFサービスの稼働時間を監視する方法はありますか?
- 27. CoreDataBooksサンプルに日付に関するエラーはありますか?
- 28. Silverlight 4 WCF Riaサービスのポーリングパターン
- 29. Silverlight Wcf Riaサービスviewmodel combobox
- 30. 別のWCFサービスでWCFサービスをホストする方法は?
はそれを愛する - 感謝そんなに、これは私が探していたまさにです – WaterBoy