2011-10-17 6 views
0

RIAドメインサービスウィザードで生成されたすべてのエンティティのGetメソッドに共通のコードセットを挿入する必要があります。ドメインサービスウィザードのコード生成を無効にして、自動的にそのコードを挿入することは可能ですか?RIA DomianServiceコードの生成をオーバーライド

おかげで、 はAnkur

答えて

0

あなたは間違いなく、変更および編集(あるいはあなた自身の書き込み)コード生成を担当するT4テンプレートをすることができます。これらの二つのリンクの線に沿って何か:

T4 Code Generator for WCF RIA Services

Using T4 to change the way RIA services work

さらに、あなたが許可WCF RIA Services Contrib project on CodePlexからRIAサービス(サーバー側)のT4テンプレートを確認することができますあなたは次のようにGETメソッドを変更する(S)

public IQueryable<<#= Entity.Name #>> Get<#= Entity.Name #>() 
{ 
    //Inject Custom code here 
    return this.ObjectContext.<#= Entity.Mapping.StoreEntitySet #>; 
} 
+0

"blogs.infosupport"リンクは403 Forbiddenエラーを表示しています。 – ChrisF

0

このトピックをカバーステファンCruysberghsによって書かれたgreat blog-postもあります。

彼はRIAServices.T4 nuget-packageを使用して、クライアント側で生成されているコードを変更しています。参照記事は、非常に詳細にこれをカバーしていますが、本質的には、次のとおりです。

  • は、事前定義されたベースを使用して、独自のコードジェネレータを実装するサービス
  • をcontaingプロジェクトにnugetパッケージを追加します。クラス

    public class MyDomainContextGenerator : CSharpDomainContextGenerator 
    { 
        protected override void GenerateClassDeclaration() 
        { 
         // Add something before the class generation here... 
         base.GenerateClassDeclaration(); 
        } 
    } 
    
  • アドバイスのRIAServices帰属クラスによってその発電機を使用する:

    [DomainServiceClientCodeGenerator("MyCodeGenerator", "C#")] 
    public class MyCodeGenerator : CSharpClientCodeGenerator 
    { 
        protected override DomainContextGenerator DomainContextGenerator 
        { 
         get { return new MyDomainContextGenerator(); } 
        } 
    } 
    
関連する問題