成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Nhibernate3.0cookbook學(xué)習(xí)筆記減少程序啟動時間-創(chuàng)新互聯(lián)

加載NHibernate的配置配制文件要花費相當(dāng)?shù)臅r間,NHibernate要加載,解析,編譯我們的映射文件和反射對應(yīng)的模型。

成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供東方網(wǎng)站建設(shè)、東方做網(wǎng)站、東方網(wǎng)站設(shè)計、東方網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、東方企業(yè)網(wǎng)站模板建站服務(wù),10年東方做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

下面來說說如何減少程序在這方面的啟動時間。

using System;
using System.Configuration;
using System.Reflection;
using System.Runtime.Serialization.Formatters.Binary;
using Configuration = NHibernate.Cfg.Configuration;
using System.IO;

namespace ConfigByAppConfig
{
public class ConfigurationBuilder
    {
private const string  SERIALIZED_CFG="configuration.bin";

public Configuration Build()
        {
            Configuration cfg= LoadConfigurationFromFile();
if (cfg == null)
            {
                cfg= new Configuration().Configure();
                SaveConfigurationToFile(cfg);
            }
return cfg;
        }

/// <summary>   /// 將映射文件序列化
/// </summary>   /// <param name="cfg"></param>   private void SaveConfigurationToFile(Configuration cfg)
        {
using (var file = File.Open(SERIALIZED_CFG, FileMode.Create))
            {
var bf = new BinaryFormatter();
                bf.Serialize(file, cfg);
            }
        }

/// <summary>   /// 加載映射文件,先判斷映射文件是不是最新的
/// </summary>   /// <returns></returns>   private Configuration LoadConfigurationFromFile()
        {
if (!IsConfigurationFileValid())
return null;
try
            {
using (var file = File.Open(SERIALIZED_CFG, FileMode.Open))
                {
var bf = new BinaryFormatter();
return bf.Deserialize(file) as Configuration;
                }
            }
catch (Exception)
            {
// Something went wrong
// Just build a new one  return null;
            }
        }

/// <summary>   /// 判斷程序有沒有改動,如果有返回false,即再重新序列化(一個是判斷應(yīng)用程序,一個是判斷配置文件)
/// 如果沒有,則返回true,即加載以前序列化的文件
/// </summary>   /// <returns></returns>   private bool IsConfigurationFileValid()
        {
// If we don't have a cached config,
// force a new one to be built if (!File.Exists(SERIALIZED_CFG))
return false;
var configInfo = new FileInfo(SERIALIZED_CFG);
var asm = Assembly.GetExecutingAssembly();
if (asm.Location == null)
return false;
// If the assembly is newer,
// the serialized config is stale var asmInfo = new FileInfo(asm.Location);
if (asmInfo.LastWriteTime > configInfo.LastWriteTime)
return false;
// If the app.config is newer,
// the serialized config is stale var appDomain = AppDomain.CurrentDomain;
var appConfigPath = appDomain.SetupInformation.
            ConfigurationFile;
var appConfigInfo = new FileInfo(appConfigPath);
if (appConfigInfo.LastWriteTime > configInfo.LastWriteTime)
return false;
// It's still fresh return true;
        }
    }
}

這個很適合我們要經(jīng)常啟動NH應(yīng)該程序的環(huán)境中,比如開發(fā)或測試的時候,也很適合基于WinForm的項目。但對于B/S就不那么適用了,因為往往B/S中應(yīng)用程序只啟動一次。

當(dāng)前文章:Nhibernate3.0cookbook學(xué)習(xí)筆記減少程序啟動時間-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://jinyejixie.com/article38/dedisp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、品牌網(wǎng)站制作、面包屑導(dǎo)航、搜索引擎優(yōu)化、軟件開發(fā)企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護公司
乌鲁木齐市| 双流县| 合江县| 双流县| 招远市| 泸定县| 德阳市| 张北县| 左云县| 青河县| 黄陵县| 昌宁县| 钟祥市| 扶余县| 清河县| 蒙自县| 秭归县| 吉林省| 榆林市| 章丘市| 迭部县| 阳信县| 江华| 芦溪县| 阳泉市| 安阳县| 瓦房店市| 天峨县| 乌拉特后旗| 永寿县| 承德市| 新巴尔虎左旗| 海晏县| 玛曲县| 建水县| 凉城县| 正镶白旗| 黄山市| 突泉县| 安西县| 盐亭县|