c# – ASP.Net和GetType()

前端之家收集整理的这篇文章主要介绍了c# – ASP.Net和GetType()前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想获得一种我正在创建的“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”?

提前致谢!

解决方法

如果您的代码旁边看起来像这样:
public partial class _Login : BasePage 
 { /* ... */ 
 }

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

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

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

猜你在找的C#相关文章