v9.6.2017.0808   重构正向工程,基于映射表查找数据库字段类型到实体类型的映射
大石头 编写于 2017-08-08 21:38:06
X
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Web;
using System.Web.Hosting;

namespace NewLife.Cube.Precompiled
{
    /// <summary>页面助手类</summary>
    public static class Pages
    {
        /// <summary>路径是否存在</summary>
        /// <param name="virtualPath"></param>
        /// <returns></returns>
        public static Boolean IsExistByVirtualPath(String virtualPath)
        {
            if (virtualPath.StartsWith("~/"))
                virtualPath = virtualPath.Substring(1); var assembly = Assembly.LoadFrom(HttpContext.Current.Server.MapPath("~/bin") + "\\Falafel.Resources.dll");
            var result = string.Empty;
            virtualPath = "Falafel.Resources" + virtualPath.Replace('/', '.'); if (virtualPath.EndsWith("/"))
            {
                result = assembly.GetManifestResourceNames().First();
            }
            else
            {
                result = assembly.GetManifestResourceNames().FirstOrDefault(i => i.ToLower() == virtualPath.ToLower());
            } return string.IsNullOrEmpty(result) ? false : true;
        }

        /// <summary>根据路径获取页面模版</summary>
        /// <param name="virtualPath"></param>
        /// <returns></returns>
        public static String GetByVirtualPath(String virtualPath)
        {
            if (virtualPath.StartsWith("~/"))
                virtualPath = virtualPath.Substring(1);

            var assembly = Assembly.LoadFrom(HttpContext.Current.Server.MapPath("~/bin") + "\\Falafel.Resources.dll");
            virtualPath = "Falafel.Resources" + virtualPath.Replace('/', '.');
            virtualPath = assembly.GetManifestResourceNames().FirstOrDefault(i => i.ToLower() == virtualPath.ToLower());

            using (var stream = assembly.GetManifestResourceStream(virtualPath))
            {
                using (var reader = new StreamReader(stream))
                {
                    var result = reader.ReadToEnd();
                    return result;
                }
            }
        }
    }
}