日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

巧用Environment.UserInteractive 实现开发和生产环境的分开调试部署

發布時間:2023/12/4 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 巧用Environment.UserInteractive 实现开发和生产环境的分开调试部署 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概述

平常我們在做服務開發的時候,經常是希望本地可以直接調試;在生產環境是以服務允許的;這時候,一般的做法寫2段代碼,需要什么環境就注釋那段代碼,這樣很麻煩,這時候就可以利用Environment判斷當前的環境。C#中獲取系統環境變量需要用到Environment 類。其中提供了有關當前環境和平臺的信息以及操作它們的方法。該類不能被繼承,以下代碼得到%systemdrive%的值,即“C:”

string?sPath?=?Environment.GetEnvironmentVariable("systemdrive"); Console.WriteLine(sPath);

獲取一個值,用以指示當前進程是否在用戶交互模式中運行。

public?static?bool?UserInteractive?{?get;?}

如果當前進程在用戶交互模式中運行,則為true ;否則為 false。

注解

此UserInteractive 屬性報告 false 的 Windows 進程或服務(如 IIS)在沒有用戶界面的情況下運行。如果此屬性為 false ,則不會顯示模式對話框或消息框,因為沒有可供用戶與之交互的圖形用戶界面。

Program范例

??internal?static?class?Program{///?<summary>///?應用程式的主要進入點。///?</summary>private?static?void?Main(string[]?args){args?=?new?string[1];args[0]?=?"WeChat.SendTemplateMsgJob";bool?isReleaseUpdateJob?=?Environment.UserInteractive?//?上線更新舊資料,都只會手動執行一次&&?args.Length?>=?1&&?args[0].StartsWith("ReleaseUpdate");//AutofacAutofacConfig.Bootstrapper();if?(Environment.UserInteractive){if?(args.Length?==?0){//Console?開啟MainService?mainService?=?new?MainService();mainService.TestStartAndStop(args);}else{//指定想要測試的?job#region?set?Culture?en-USThread.CurrentThread.CurrentCulture?=?new?System.Globalization.CultureInfo("en-US");Thread.CurrentThread.CurrentUICulture?=?new?System.Globalization.CultureInfo("en-US");#endregion?set?Culture?en-USif?(isReleaseUpdateJob){string?jobType?=?$"BigCRM.WinService.Jobs.{args[0]}";ReleaseUpdateJob?job?=?Activator.CreateInstance(Assembly.GetExecutingAssembly().FullName,?jobType).Unwrap()?as?ReleaseUpdateJob;job.Call(null,?args);}else{#region?load?configList<JobConfigItem>?jobConfigItems?=?JobConfigItem.Get();JobConfigItem?config?=?jobConfigItems.FirstOrDefault(m?=>?m.JobType?==?args[0]);#endregion?load?config#region?init?jobstring?jobType?=?$"BigCRM.WinService.Jobs.{config.JobType}";BaseJob?job?=?Activator.CreateInstance(Assembly.GetExecutingAssembly().FullName,?jobType).Unwrap()?as?BaseJob;job.CronSchedule?=?config.CronExpression;job.JobType?=?config.JobType;job.BaseSettings?=?config.Settings;if?(config.Settings?!=?null){job.Settings?=?new?Quartz.JobDataMap(config.Settings);}#endregion?init?jobjob.Call(null,?args);}Console.ReadLine();}}else{ServiceBase[]?ServicesToRun;ServicesToRun?=?new?ServiceBase[]{new?MainService()};ServiceBase.Run(ServicesToRun);}}}

總結

以上是生活随笔為你收集整理的巧用Environment.UserInteractive 实现开发和生产环境的分开调试部署的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。