从母版页中查找准确的ASP.NET页面类型

从母版页中查找准确的ASP.NET页面类型,.net,asp.net,vb.net,reflection,asp.net-2.0,.net,Asp.net,Vb.net,Reflection,Asp.net 2.0,我试图从母版页中检索页面类上的自定义属性集。通常,要做到这一点,我需要直接反映在特定的类上,但在母版页中,它总是被称为页面类型(父类) 如何确定页面属性的特定类型 下面是我尝试做的一个例子: 但它只返回附加到实际页面类的属性 如果可以避免的话,我宁愿不必从Page派生新的基类型 下面是如何定义我的类(在代码隐藏中): _ 部分类PageClass 我是否在错误的位置定义了它?您需要将页面实例传递到母版页。我可能会在page类中向母版页传递某种回调函数。您需要将page实例传递给母版页。我可能会在

我试图从母版页中检索页面类上的自定义属性集。通常,要做到这一点,我需要直接反映在特定的类上,但在母版页中,它总是被称为
页面
类型(父类)

如何确定
页面
属性的特定类型

下面是我尝试做的一个例子:

但它只返回附加到实际
页面
类的属性

如果可以避免的话,我宁愿不必从
Page
派生新的基类型

下面是如何定义我的类(在代码隐藏中):

_
部分类PageClass

我是否在错误的位置定义了它?

您需要将页面实例传递到母版页。我可能会在page类中向母版页传递某种回调函数。

您需要将page实例传递给母版页。我可能会在page类中向母版页传递某种回调函数。

我认为您向GetCustomAttributes传递了错误的类型

我在母版页中添加了一个名为“lblMP”的标签,当我运行此操作时:

    protected void Page_Load(object sender, EventArgs e)
    {
        lblMP.Text = this.Page.GetType().AssemblyQualifiedName;

        foreach( var a in Attribute.GetCustomAttributes(this.Page.GetType()))
        {
            lblMP.Text = String.Format("{0} <br />{1}", lblMP.Text, a);
        }
    }

我认为您将错误的类型传递给GetCustomAttributes

我在母版页中添加了一个名为“lblMP”的标签,当我运行此操作时:

    protected void Page_Load(object sender, EventArgs e)
    {
        lblMP.Text = this.Page.GetType().AssemblyQualifiedName;

        foreach( var a in Attribute.GetCustomAttributes(this.Page.GetType()))
        {
            lblMP.Text = String.Format("{0} <br />{1}", lblMP.Text, a);
        }
    }

虽然
Page
是实际的类型,但它是一个表示ASPX页面的类,而不是我的属性附加到的部分类。要查找分部类,我只需执行以下操作:

Page.GetType().BaseType
并在上面使用了我的属性查找代码


感谢TonyB和为我指出了正确的方向。

虽然
页面
是实际的类型,但它是一个表示ASPX页面的类,而不是我的属性附加到的部分类。要查找分部类,我只需执行以下操作:

Page.GetType().BaseType
并在上面使用了我的属性查找代码


感谢TonyB和为我指明了正确的方向。

我这样做时,我的自定义属性不会显示。在哪里设置自定义属性?我已经更新了我的问题以反映这一点。执行此操作时,我的自定义属性不会显示。在哪里设置自定义属性?我更新了我的问题以反映这一点。
Page.GetType().BaseType