asp.net,gettype()和完全限定的类名

时间:2009-10-13 10:12:20

标签: asp.net gettype

我已经阅读了其他几个主题,但没有一个真正解释如何解决我的问题。

我有一个带有以下页面的Web应用程序(代码隐藏)

namespace Company.Web.UI.Content
{
  public partial class Home_LoggedOut : Company.Web.UI.CompanyPage
  {
    string _myType = this.GetType().FullName.Replace(".", "_");
  }
}

现在我希望得到类似的东西:

Company_Web_UI_Content_Home_LoggedOut

但我得到了:

ASP_home_loggedout_aspx

我显然错过了关于类结构及其工作方式的一些内容,所以我想了解这一点,但是在这种情况下,有没有办法让我获得完全限定的命名空间+类名?

理想情况下,我想将它包含在基本类型(Company.Web.UI.CompanyPage)中,以便我可以使用它做任何事情,因此建议的任何内容也必须在该级别工作。

希望我不会完全忽略这一点(嗯,我可能是,但希望有办法绕过它!)

干杯, 特里

更新: 答案来自:

string _myType = this.GetType().BaseType.FullName.Replace(".", "_");

谢谢你们:)

2 个答案:

答案 0 :(得分:2)

当你有一个代码背后的页面时,你实际上有两个类。一个来自后面的代码,它由页面的类继承。这就是你获得这个名字的原因。试试这个,看它是否有效:

string _myType = this.GetType().BaseType.FullName.Replace(".", "_");

答案 1 :(得分:1)

ASP.NET引擎根据您的ASPX标记生成一个类,该类继承自Company.Web.UI.Content.Home_LoggedOut。 你可以尝试:

this.GetType().BaseType.FullName.Replace(".", "_")

老实说,我从来没有尝试过,但理论上它应该起作用=)