可能重复:
ASP.Net and GetType()
我今天遇到了一个小问题。
从下面的代码中可以看出,我在命名空间“WebApplicationExtNetTest.Secure”中有一个名为“Users”的ASP.NET页面。
如果我执行“this.GetType()”,我会得到一个与我预期不同的.FullName,如下所示:
namespace WebApplicationExtNetTest.Secure
{
[tWorks.Core.CoreCommons.Attributes.Security("CREATEUSER", "Anger säkerhetsklass för att skapa användare")]
public partial class Users : System.Web.UI.Page
{
Type t = this.GetType();
Console.WriteLine(t.FullName); // "ASP.secure_views_users_aspx"
}
因此,我没有获得“WebApplicationExtNetTest.Secure.Users”,而是获得了“ASP.secure_views_users_aspx”。
为什么呢?有没有办法检索“WebApplicationExtNetTest.Secure.Users”呢?
答案 0 :(得分:1)
问题是,ASP.NET页面只是新编译版本的源代码,这是在第一个请求发生时在场景后面完成的。
因此,您的页面将成为用户请求页面时执行的新派生类的基类。
这就是调用GetType()函数时获得不同类型的原因。
Simen指出的答案有办法以编程方式获取原始类型。
但是,如果您使用的是ASP.NET MVC,则情况会有所不同,原则保持不变。
答案 1 :(得分:0)
查看此问题的答案:ASP.Net and GetType()