自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

巧用Environment.UserInteractive 實現(xiàn)開發(fā)和生產(chǎn)環(huán)境的分開調試部署

開發(fā) 后端
平常我們在做服務開發(fā)的時候,經(jīng)常是希望本地可以直接調試;在生產(chǎn)環(huán)境是以服務允許的;這時候,一般的做法寫2段代碼,需要什么環(huán)境就注釋那段代碼,這樣很麻煩,這時候就可以利用Environment判斷當前的環(huán)境。

[[411578]]

本文轉載自微信公眾號「UP技術控」,作者conan5566。轉載本文請聯(lián)系UP技術控公眾號。

概述

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

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

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

  1. public static bool UserInteractive { get; } 

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

注解

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

Program范例

  1. internal static class Program 
  2.   { 
  3.       /// <summary> 
  4.       /// 應用程式的主要進入點。 
  5.       /// </summary> 
  6.       private static void Main(string[] args) 
  7.       { 
  8.           args = new string[1]; 
  9.           args[0] = "WeChat.SendTemplateMsgJob"
  10.  
  11.           bool isReleaseUpdateJob = Environment.UserInteractive // 上線更新舊資料,都只會手動執(zhí)行一次 
  12.               && args.Length >= 1 
  13.               && args[0].StartsWith("ReleaseUpdate"); 
  14.           //Autofac 
  15.           AutofacConfig.Bootstrapper(); 
  16.  
  17.           if (Environment.UserInteractive) 
  18.           { 
  19.               if (args.Length == 0) 
  20.               { 
  21.                   //Console 開啟 
  22.                   MainService mainService = new MainService(); 
  23.                   mainService.TestStartAndStop(args); 
  24.               } 
  25.               else 
  26.               { 
  27.                   //指定想要測試的 job 
  28.  
  29.                   #region set Culture en-US 
  30.  
  31.                   Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); 
  32.                   Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US"); 
  33.  
  34.                   #endregion set Culture en-US 
  35.  
  36.                   if (isReleaseUpdateJob) 
  37.                   { 
  38.                       string jobType = $"BigCRM.WinService.Jobs.{args[0]}"
  39.                       ReleaseUpdateJob job = Activator.CreateInstance(Assembly.GetExecutingAssembly().FullName, jobType).Unwrap() as ReleaseUpdateJob; 
  40.                       job.Call(null, args); 
  41.                   } 
  42.                   else 
  43.                   { 
  44.                       #region load config 
  45.  
  46.                       List<JobConfigItem> jobConfigItems = JobConfigItem.Get(); 
  47.                       JobConfigItem config = jobConfigItems.FirstOrDefault(m => m.JobType == args[0]); 
  48.  
  49.                       #endregion load config 
  50.  
  51.                       #region init job 
  52.  
  53.                       string jobType = $"BigCRM.WinService.Jobs.{config.JobType}"
  54.                       BaseJob job = Activator.CreateInstance(Assembly.GetExecutingAssembly().FullName, jobType).Unwrap() as BaseJob; 
  55.                       job.CronSchedule = config.CronExpression; 
  56.                       job.JobType = config.JobType; 
  57.                       job.BaseSettings = config.Settings; 
  58.                       if (config.Settings != null
  59.                       { 
  60.                           job.Settings = new Quartz.JobDataMap(config.Settings); 
  61.                       } 
  62.  
  63.                       #endregion init job 
  64.  
  65.                       job.Call(null, args); 
  66.                   } 
  67.  
  68.                   Console.ReadLine(); 
  69.               } 
  70.           } 
  71.           else 
  72.           { 
  73.               ServiceBase[] ServicesToRun; 
  74.               ServicesToRun = new ServiceBase[] 
  75.               { 
  76.                   new MainService() 
  77.               }; 
  78.               ServiceBase.Run(ServicesToRun); 
  79.           } 
  80.       } 
  81.   } 

 

責任編輯:武曉燕 來源: UP技術控
相關推薦

2020-10-30 10:49:37

DockerGPULinux

2020-10-19 09:50:04

Spinnaker

2013-07-29 14:23:55

Eclipse開發(fā)環(huán)境Eclipse開發(fā)環(huán)境

2013-10-16 09:38:23

云端應用部署工具應用部署工具云測試

2012-02-20 15:04:58

2019-08-08 08:00:00

深度學習機器學習神經(jīng)網(wǎng)絡

2020-12-08 12:59:42

編譯燒錄 for Mac

2013-09-30 09:40:37

VDI部署VDI

2021-03-10 07:20:42

Redis命令數(shù)據(jù)

2011-06-17 17:01:22

Qt Eclipse Windows

2011-06-17 16:47:12

Qt Eclipse Windows

2011-06-17 17:16:01

Qt Eclipse Linux

2022-05-26 09:00:00

網(wǎng)站抓取Lightrun開發(fā)

2024-02-01 09:06:44

Company?Employee場景

2015-02-27 09:00:54

Docker微服務容器技術

2018-12-04 14:15:29

容器誤區(qū)開發(fā)

2025-02-17 08:00:00

機器學習開發(fā)Docker

2020-11-10 08:00:00

機器學習技術科學

2012-02-29 14:35:48

MySQL

2010-09-01 16:43:26

Squid ACLSquid訪問列表Squid
點贊
收藏

51CTO技術棧公眾號