当前位置:  开发笔记 > 编程语言 > 正文

ASP.Net和GetType()

如何解决《ASP.Net和GetType()》经验,为你挑选了1个好方法。

我想获得一种我正在创建的"BasePage"对象.每个Page对象都基于BasePage.例如,我有一个Login.aspx和我的代码隐藏以及一个具有方法Display的类:

Display(BasePage page) {
    ResourceManager manager = new ResourceManager(page.GetType());
}

在我的项目结构中,我有一个默认资源文件和一个伪翻译资源文件.如果我设置尝试这样的事情:

Display(BasePage page) {
    ResourceManager manager = new ResourceManager(typeof(Login));
}

它返回翻译的页面.经过一些研究后,我发现page.GetType().ToString()返回了"ASP_login.aspx"的效果.如何获取类类型后面的实际代码,这样我就得到一个类型为"Login"的对象,即派生自"BasePage"?

提前致谢!



1> Mark Cidade..:

如果您的代码旁边看起来像这样:

public partial class _Login : BasePage 
 { /* ... */ 
 }

然后你会得到Type它的对象typeof(_Login).要动态获取类型,您可以递归地找到它:

Type GetCodeBehindType()
 { return getCodeBehindTypeRecursive(this.GetType());
 }

Type getCodeBehindTypeRecursive(Type t)
 { var baseType = t.BaseType;
   if (baseType == typeof(BasePage)) return t;
   else return getCodeBehindTypeRecursive(baseType);
 }

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有