2009年6月5日金曜日

partial class

ちょっと、技術系ネタ

.NETにおいて、クラスを複数ファイルに分割するための
partial Classですが、ASP.NETではそう簡単に使えないようです。

---------------------------------------------------------
やりたかったこと
 aaa.aspx
  aaa.aspx.cs

 localclass.cs ← このクラスをaaa.aspxだけから参照するようにしたかった。
---------------------------------------------------------

上記構成にしたかったので、
いろいろ無謀なことを試してみましたが、結果すべてNG

試したこと
@Pageディレクティブを複数宣言すればいいんじゃないか?
 → コンパイルエラー
   @Pageディレクティブはページに1つよと怒られ

app_codeフォルダに入れればいいんじゃないかとか、
 → なにも起きず、参照もできず・・・

namespaceを統一すればいいんじゃないかとか、
 →aaa.aspx.csにnamespaceを入れた段階でコンパイルエラー

--------------------------------------------------------------
調べたこと

そもそも、ASP.NETではデザイン(aspx)とコード(aspx.cs とかaspx.vb)
とかで既にファイル分割されています。
(コードのクラス定義を見ると、作られた段階でpartial Classになっています。)

で、コンパイラは、aspxファイル内の @ Page ディレクティブを参照して、
結合すべきファイルを特定し、apsxファイルとaspx.cs等を結合するという
動きらしいです。

で、そんな事できないとか書いてなかったので推測ですが、
すでに結合しているので無理なんではないかと・・・。

参考URL
http://msdn.microsoft.com/ja-jp/library/ms178138.aspx

0 件のコメント:

コメントを投稿