zoukankan      html  css  js  c++  java
  • 组件开发之asp.net 2.0获取设计时页面的虚拟路径[DesignTime page's virtual path]

        如果你搞组件开发,为了实现设计时支持,你可能会需要取得当前页面[Control.Page]的虚拟路径.这在VS2003中可以比较容易做到.直接使用Page.TemplateSourceDirectory就可以了,可是在Vs2005中就不那么简单了,这个属性永远返回空值.我想可能是使用Asp.net Development Server的后果.(不过我也没有使用IIS确认一下,有那位朋友试验过请搞诉我.)
        万般无奈之中,我只好使用VS的组件调试功能,在VS的设计时服务中查找,经过一番努力,终于找到了它,于是我编程用反射成功取得了页面的虚拟路径,它的形式是这样的"~/myapp/xtgl/user.aspx".我想搞组件开发的朋友们很可能回用到,所以和朋友们分享一下.如果哪位有更好地方法,请一定不吝赐教.
    /// <summary>
            
    /// 用反射提取当前Page的虚拟路径
            
    /// </summary>
            
    /// <returns></returns>
            private string GetDesignTimePagePath()
            {
                
    string path = "not found";
                
                FieldInfo fi, fu;
                PropertyInfo pi;
                
                fi 
    = Page.Site.Container.GetType().GetField("_loader", BindingFlags.NonPublic | BindingFlags.Instance);
                
    if (fi != null)
                {
                    
    object loader = fi.GetValue(Page.Site.Container);
                    pi 
    = loader.GetType().GetProperty("FileInfo");
                    
    if (pi != null)
                    {
                        
    object ff = pi.GetValue(loader, null);
                        fu 
    = ff.GetType().GetField("_url", BindingFlags.NonPublic | BindingFlags.Instance);
                        
    if (fu != null)
                        {
                            
    object v = fu.GetValue(ff);
                            path 
    = (string)v;
                        }
                    }
                }
                
    return path;
            }
  • 相关阅读:
    vue开发中v-for在Eslint的规则检查下出现:Elements in iteration expect to have 'v-bind:key' directives
    一步步构造自己的vue2.0+webpack环境
    函数的扩展
    数值的扩展
    DB2数据库代码页和实例代码页的区别(解决DB2乱码问题)
    【翻译】探究Ext JS 5和Sencha Touch的布局系统
    【翻译】培训提示:解决常见编码问题的简单技巧
    【翻译】对于Ext JS 5,你准备好了吗?
    Git工程迁移方法总结(命令行)
    Ext JS 5初探(三)
  • 原文地址:https://www.cnblogs.com/dajianshi/p/376066.html
Copyright © 2011-2022 走看看