Ada*_*oll 6 c# asp.net reflection resourcemanager
我想获得一种我正在创建的"BasePage"对象.每个Page对象都基于BasePage.例如,我有一个Login.aspx和我的代码隐藏以及一个具有方法Display的类:
Display(BasePage page) {
ResourceManager manager = new ResourceManager(page.GetType());
}
Run Code Online (Sandbox Code Playgroud)
在我的项目结构中,我有一个默认资源文件和一个伪翻译资源文件.如果我设置尝试这样的事情:
Display(BasePage page) {
ResourceManager manager = new ResourceManager(typeof(Login));
}
Run Code Online (Sandbox Code Playgroud)
它返回翻译的页面.经过一些研究后,我发现page.GetType().ToString()返回了"ASP_login.aspx"的效果.如何获取类类型后面的实际代码,这样我就得到一个类型为"Login"的对象,即派生自"BasePage"?
提前致谢!
如果您的代码旁边看起来像这样:
public partial class _Login : BasePage
{ /* ... */
}
Run Code Online (Sandbox Code Playgroud)
然后你会得到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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8680 次 |
| 最近记录: |