C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: asp.netでprivateなメソッドが取得できない


(過去ログ 137 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■80726 / inTopicNo.1)  asp.netでprivateなメソッドが取得できない
  
□投稿者/ papandapanda (1回)-(2016/08/05(Fri) 21:29:26)

分類:[.NET 全般] 

環境:visualstudio2013 fw4.0
言語:vb
ASP.NET WEBフォームアプリケーションです。

以下のようにprivate、protected、publicのメソッドを定義し
LoadイベントでGetMethods()で調べると、privateなメソッドだけが取得できません。

privateなメソッドを取得する方法をご教示ください。

Public Class WebForm1
    Inherits System.Web.UI.Page

  

    Sub Page_Load(Sender As Object, e As EventArgs) Handles Me.Load

        For Each info In Me.Page.GetType().GetMethods(Reflection.BindingFlags.Instance Or _
                                                      Reflection.BindingFlags.NonPublic Or _
                                                      Reflection.BindingFlags.Public)
            System.Diagnostics.Debug.WriteLine(info.Name)
        Next
    End Sub



    Private Sub MYPrivateMethod___________________________________()
    End Sub

    Protected Sub MYProtectedMethod___________________________________()
    End Sub

    Public Sub MYpublicMethod___________________________________()
    End Sub
End Class

引用返信 編集キー/
■80727 / inTopicNo.2)  Re[1]: asp.netでprivateなメソッドが取得できない
□投稿者/ WebSurfer (994回)-(2016/08/05(Fri) 22:53:31)
No80726 (papandapanda さん) に返信

そもそも、どういう目的で何をしたいのでしょうか?
引用返信 編集キー/
■80728 / inTopicNo.3)  Re[1]: asp.netでprivateなメソッドが取得できない
□投稿者/ 魔界の仮面弁士 (802回)-(2016/08/05(Fri) 23:08:38)
2016/08/05(Fri) 23:09:37 編集(投稿者)

No80726 (papandapanda さん) に返信
> For Each info In Me.Page.GetType().GetMethods(

この場合の Me は WebForm1 の派生クラスのインスタンスでは無いでしょうか?
ベースクラスの Private メンバーは派生先からは見えませんよね。


> privateなメソッドを取得する方法をご教示ください。

(案1)For Each info In GetType(WebForm1).GetMethods(
(案2)For Each info In Me.GetType().BaseType.GetMethods(
引用返信 編集キー/
■80742 / inTopicNo.4)  Re[2]: asp.netでprivateなメソッドが取得できない
□投稿者/ papandapanda (2回)-(2016/08/08(Mon) 09:23:07)
> (案1)For Each info In GetType(WebForm1).GetMethods(
> (案2)For Each info In Me.GetType().BaseType.GetMethods(

ありがとうございます。
取得できました。
お返事が遅くなり申し訳ありませんでした。

ひとつ教えていただきたいのですが

以下のようなASP.NETのWebFormで
---------------------------
Public Class WebForm1
Inherits System.Web.UI.Page

EndClass
----------------------------
「Me」はWebForm1クラスだと思っています。
WebForm1クラスに定義したprivateメソッド「PrivateMethod1()」は「Me.PrivateMethod1()」でアクセスできます。

しかし
「Me.GetType()」は「ASP.webform1_aspx」になっており
「Me.GetType().BaseType」は「ソリューション名.WebForm1」になってました。

いまいちココの関係がわかりません。
ご教示いただけないでしょうか?

よろしくお願いいたします。
引用返信 編集キー/
■80743 / inTopicNo.5)  Re[3]: asp.netでprivateなメソッドが取得できない
□投稿者/ PANG2 (135回)-(2016/08/08(Mon) 09:50:02)
ロジック(WebForm1.aspx.vb)を継承して、デザイン(WebForm.aspx)を実装したクラスが
実行時に動的に作成されるようです。

参考

ASP.NET 1.x から ASP.NET 2.0 への移行
https://msdn.microsoft.com/ja-jp/library/dd229411.aspx#migratefromaspnetto2_topic6

にある2.0分離コード
https://i-msdn.sec.s-msft.com/dynimg/IC130926.gif
引用返信 編集キー/
■80744 / inTopicNo.6)  Re[4]: asp.netでprivateなメソッドが取得できない
□投稿者/ papandapanda (3回)-(2016/08/08(Mon) 10:13:40)
ありがとうございます。
理解できました。
解決済み
引用返信 編集キー/
■80745 / inTopicNo.7)  Re[5]: asp.netでprivateなメソッドが取得できない
□投稿者/ papandapanda (4回)-(2016/08/08(Mon) 10:13:49)
2016/08/08(Mon) 10:15:20 編集(投稿者)

No80744 (papandapanda さん) に返信
> ありがとうございます。
> 理解できました。
解決済み
引用返信 編集キー/
■80746 / inTopicNo.8)  Re[3]: asp.netでprivateなメソッドが取得できない
□投稿者/ 魔界の仮面弁士 (804回)-(2016/08/08(Mon) 10:20:14)
No80742 (papandapanda さん) に返信
> 以下のようなASP.NETのWebFormで

WebForm1.aspx の上部に、"Inherits" という記述がありますよね。
『<%@ Page Language="vb" Inherits="WebApplication1.WebForm1" %>』


> ---------------------------
> Public Class WebForm1
> Inherits System.Web.UI.Page
>
> EndClass
> ----------------------------
> 「Me」はWebForm1クラスだと思っています。

上記は [System.Web.UI.Page] を Inherits した『WebApplication1.WebForm1』の定義ですが、
実行されているのは [WebApplication1.WebForm1] を Inherits した『ASP.webform1_aspx クラス』です。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -