2012-03-27 7 views

答えて

4

T4変換を使用して作業を行うことができます。 「新しい項目の追加」と「テキストテンプレート」を使用します。

T4言語は、C#コードを使用してC#コードを生成する方法です。ほとんどのテキストは出力ファイルに直接解析され、<##>タグ内に新しいコードを書くことができます。このテンプレートは、作成します

<#@ template debug="false" hostspecific="false" language="C#" #> 
    <#@ import namespace="System.Data" #> 
    <#@ import namespace="System.Data.SqlClient" #> 
    <#@ assembly name="System.Data" #> 

    namespace Some.Namespace 
    { 
     public class TestClass 
     { 
    <# 

    using(var cnn = new SqlConnection(@"server=.\sqlexpress;Integrated Security=SSPI;Database=ApplicationManagement")) 
    { 
     cnn.Open(); 
     var cmd = new SqlCommand("SELECT TextKey, TextValue FROM TblBrandingKeyValues WHERE BrandingIdentifier = 'Default'", cnn); 

     var reader = cmd.ExecuteReader(); 

     while (reader.Read()) 
     { 
      var defaultText = reader.GetString(1); 
      var name = reader.GetString(0); 


    #> 
    public string <#= name #> 
    { 
     get { return "<#= defaultText #>"; } 
    } 

    <# 
     } 
    } 

    #> 

    } 
} 

} <#1 @出力拡張子=「CS」#>

:ファイルがラップの輸入から始まり、ステートメントを使用して、とてもシンプルなテンプレートのようなものかもしれませんクラスTestClassには、データベーステーブルTblBrandingKeyValuesから読み取られた読み取り専用プロパティのセットが含まれています。

私はこれらをお勧めしますT4 tutorials

0

+-------------------+ 
| Id | Name   | 
+----+--------------+ 
| 1 + foo   | 
| 2 + hello.world | 
| 3 + null   | 
+-------------------+ 

を私は次のようなclassその意志ルックスを自動生成したいと思います独自のカスタムツールを作成すると、System.CodeDom名前空間 には、コードを生成するために必要なすべてが含まれています。もちろん、クラスを生成するアルゴリズムをコーディングする必要があります。 .NETがすでにエンティティを使用します(たとえば、全く同じ仕事をして、「ビルドでの」ツール/名前空間の多くを提供していますことを、とにかく心の中で

http://msdn.microsoft.com/en-us/library/ms404245.aspx

ベア:下記のリンクにて

詳細フレームワーク)

0

T4 Templatesを使用してください。私はそのように多くのクラスを生成します。

関連する問題