コアクラフト株式会社のスタッフによる技術ブログです。プログラムに関する記事等を投稿していこうと思っています。

2012年2月28日火曜日

RIA Services で T4 Template を使って Entity の継承を差し替える

RIA Services を素のままで使うと、クライアントに生成されるモデルクラスは System.ServiceModel.DomainServices.Clien.Entity を継承したものになります。
この場合、モデルクラスに共通のコードを書くようなことができません。
そんな時、RIA Services T4 Template の機能を使って、自分で生成されるコードを制御しましょうというお話です。
今回は Entity クラスの継承をやめて 独自の EntityBase というクラスに差し替えてみたいと思います。

サーバーサイドのコード

クライアントサイドのコード

ポイントは MyClientCodeGenerator に DomainServiceClientCodeGenerator という カスタム属性をくっつけてるところです。これは System.ComponentModel.Composition.ExportAttribute を継承したクラスで DomainSetvice クラスからクライアントコードが生成される時に MEF が勝手にこちらの Generator を 使うようにしてくれるみたいです。

サンプルなので、簡単な実装ですが、CSharpEntityGenerator の方は Refrector で見ると結構細かいことやってます。どこまで実装するかはめんどくささとの兼ね合いで判断してください。 また、今回は Entity の差し替えでしたが、RIA Services で生成されるコードはすべて差し替え可能なので、いろいろ見てみるといいかもしれません。

1 件のコメント:

  1. Hi, John here. If you’re looking online for a solution to power your home for free, I’m happy you’ve found my website. The results of my recent research will likely save you money and a lot of frustration. If you’re not one of my regular subscribers, let me tell you a little about myself and then you will see for yourself why you should consider trying a Magnetic Generator System to produce ALL of your Home Energy. check now http://topmagneticgenerator.com

    返信削除