私は単純にデータベーステーブルからの属性を持つクラスを生成したいと思います。Visual Studio 2010でコードを生成するためのカスタムツールを作成する方法は?
私は、次のようなデータベーステーブルがある場合:あなたがしたい場合は
class MyTable {
public static int Foo = 1;
public static int HelloWorld = 1;
// null was omitted for Id = 3
}
私は単純にデータベーステーブルからの属性を持つクラスを生成したいと思います。Visual Studio 2010でコードを生成するためのカスタムツールを作成する方法は?
私は、次のようなデータベーステーブルがある場合:あなたがしたい場合は
class MyTable {
public static int Foo = 1;
public static int HelloWorld = 1;
// null was omitted for Id = 3
}
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。
:
+-------------------+
| Id | Name |
+----+--------------+
| 1 + foo |
| 2 + hello.world |
| 3 + null |
+-------------------+
を私は次のようなclass
その意志ルックスを自動生成したいと思います独自のカスタムツールを作成すると、System.CodeDom
名前空間 には、コードを生成するために必要なすべてが含まれています。もちろん、クラスを生成するアルゴリズムをコーディングする必要があります。 .NETがすでにエンティティを使用します(たとえば、全く同じ仕事をして、「ビルドでの」ツール/名前空間の多くを提供していますことを、とにかく心の中で
http://msdn.microsoft.com/en-us/library/ms404245.aspx
ベア:下記のリンクにて
詳細フレームワーク)
T4 Templatesを使用してください。私はそのように多くのクラスを生成します。