我已经阅读了其他几个主题,但没有一个真正解释如何解决我的问题。
我有一个带有以下页面的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(".", "_");
谢谢你们:)
答案 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(".", "_")
老实说,我从来没有尝试过,但理论上它应该起作用=)