- - PR -
モバイルコントロールを継承したカスタムコントロールの作成
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-03-30 17:10
モバイルコントロールに関する質問です。
TextBoxにistyleの設定するために モバイルコントロールのTextBoxを継承した カスタムコントロールを作成しようと考えています。 そこで、元となるTextBoxクラスの処理を見たいのですが ソースファイルが見つかりません。 モバイルコントロールのソースファイルは 公開されているのでしょうか? ご存知の方いらっしゃいましたら教えていただければと思います。 よろしくお願いします。 |
|
投稿日時: 2007-03-30 19:22
ASP.NET のモバイルコントロールの事でしょうか?
ソースコードは公開されていません。しかし、特にソースコードを見る必要はないと思います。 http://msdn2.microsoft.com/ja-jp/library/system.web.ui.mobilecontrols.textbox(VS.80).aspx 何故読みたいのでしょうか? _________________ 囚人のジレンマな日々 |
|
投稿日時: 2007-04-01 11:42
囚人さん
返答ありがとうございます。 .net歴が浅くて理解が不足しているのかもしれませんが、 以下の手順でカスタムコントロールを作成しようとしてます。 1.System.Web.UI.MobileControls.TextBoxクラスを継承したクラスを作成 2.作成したクラスのrender()メソッドをオーバーライドして、 出力したいHTMLタグを設定 ここでrender()メソッドの処理を書くときに、TextBoxクラスの処理を 損なわないようにするためにソースコードを確かめたいと思っています。 (他にもオーバーライドすべきメソッドがないかなどの確認も含めて、 既存のTextBoxクラスの処理をデグレードさせないため) |
|
投稿日時: 2007-04-01 20:34
ソースコードを読んで理解を深める事自体は良い事だと思います。
しかし、どのライブラリを使う場合も同じ事が言えると思いますが、いちいち読んでいたらきりがありません。処理を損なわないようにしたい、というのであれば、単にホワイトボックステストをしたら良いだけではないでしょうか。 他にもオーバーライドすべきメソッドがないかの確認はドキュメントを読めば良い事です。 _________________ 囚人のジレンマな日々 |
|
投稿日時: 2007-04-01 20:59
囚人さん
返答ありがとうございます。 ドキュメントを読んだ結果、必要な情報が十分に得られませんでした。 また、試しに作成してみたカスタムコントロールでホワイトボックステストを してみたところ上手くいかずにソースコードを読むのが 手っ取り早いという結論に達しました。 ただ、ドキュメントの読み方が不足しているかもしれないので、熟読してみます。 |
|
投稿日時: 2007-04-01 21:20
確かに、モバイルコントロールのドキュメントは貧弱でした。Visual Studio .NET 2003 付属のヘルプは、モバイルに関しては間違いだらけです(確か)。
ただ、MSDN2 になってからはかなり改善されていると思います。 環境が書かれていないので何を見ているのかは分かりませんが、私が提示したリンクは見られたでしょうか? どちらにしろ通常の手段ではソースコードを読む事ができませんので、頑張るしかないですね。 _________________ 囚人のジレンマな日々 |
|
投稿日時: 2007-04-02 01:32
囚人さん、たびたびのフォローありがとうございます。
リンクに関してはチェックしました。 ちなみに環境は 開発ツール:VisualStudio.net 2003 OS:Windows XP サーバー:IIS6.0 DB:SQLServer2000 その他:ASP.netモバイルコントロール Device Update4 です。 |
|
投稿日時: 2007-04-02 23:29
こんばんは。
幸いなことに.NET Frameworkクラスライブラリは難読化されていませんので、 あるツールを使ったりすれば、ほぼ元のソースコードを知ることが出来ます。 で、System.Web.UI.MobileControls.TextBoxクラスのレンダリングの実装を探してみました。 OO/動的バインディングのせいで実際クラスライブラリの中をトレース実行しないと分かりづらいところがありますが、 おそらく、実際のレンダリングは System.Web.UI.MobileControls.Adapters.HtmlTextBoxAdapterクラスかその派生クラスで行われています。 |