- PR -

コードを自動生成させたい

1
投稿者投稿内容
cobalt
会議室デビュー日: 2005/05/02
投稿数: 14
投稿日時: 2006-06-19 14:28
型指定DataSetを作ってVisualStudio上で編集するとcsファイルが自動生成されるのと同じ感じで
とあるソースを編集すると自動的にそれに従って別のソースを作るみたいな事って出来ますでしょうか?

Webサービスで、ビジネス処理が書かれたソースが編集されると
自動的にそのビジネス処理を呼び出すWebメソッドが含まれたasmxファイルを自動生成すると言う事をやりたいのですが。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2006-06-19 16:10
引用:

型指定DataSetを作ってVisualStudio上で編集するとcsファイルが自動生成されるのと同じ感じで
とあるソースを編集すると自動的にそれに従って別のソースを作るみたいな事って出来ますでしょうか?



DataSet 他の実例があるわけですから、元ソースから実際のコードへ変換するためのルールが定義可能で、そのルールを C# などで実装可能なら出来るでしょう。

ただし、「変換」のロジックを直接サポートするクラスは標準クラスライブラリにはありません。
自分で考えることになります。

最終段の、コード生成に関しては CodeDom が使えると思います。
(使わないでゴリゴリ、というのももちろん可能です)

dotnetmemo
常連さん
会議室デビュー日: 2006/04/29
投稿数: 24
投稿日時: 2006-06-20 23:03
参考までに

VSを利用したコードの自動生成には仕組みや利用する情報によっていくつかパターンがあります。

DataSetやWebサービスのプロキシはカスタムツールを利用しています。
基本的にデザイナでXMLを作成してカスタムツールでXMLからコードを生成します。
(コード生成はCodeDomなどを利用してそうです)
自前で同様のことを行うのであれば以下の情報が役に立つと思います。

http://www.codeproject.com/csharp/codegenstool.asp

http://msdn.microsoft.com/xml/default.aspx?pull=/library/en-us/dnxmlnet/html/xsdcodegen.asp

#デザイナ自体の開発については、VS SDKレベルの開発が必要になりそうなので
#VSに完全に統合するのをあきらめて別ツールで補助的に行う方法か、
#スキーマを定義すればXMLでもインテリセンスが使えるのでXMLを直接書く方法でも
#実用的だと思います

あと、2005と2003ではカスタムツールの作り方が違うので、もし2005で作成するのであれば以下のサイトを参考にしてください。

http://blogs.conchango.com/pauloreichert/archive/2005/05/21/1459.aspx


カスタムツールの場合、無理ではないが既存のコードから別コードを生成するのではなく定義情報に基づいてコード生成します。
したがって、今回の目的が、既存のビジネス処理のコードからWebサービス(ASMX)のコードを生成するのであれば、カスタムツールよりはコードからコードを生成するテクニックを利用したほうが良いと思います。

http://www.windowsforms.net/articles/easythread.aspx

このサンプルはCodeModelを利用したアドインですが、VSのマクロを利用するともっとお手軽に作成できると思います。

1

スキルアップ/キャリアアップ(JOB@IT)