くうと徒然なるままに

モバイルアプリを作りながらバックエンドも作っています。

現在の AppDomain とは別の AppDomain を立ち上げる (勉強中です...

何するの?

AppDomain について勉強中です。 今回は、現在のアプリケーションが動いている AppDomain とは別の AppDomain を立ち上げて情報を見てみます。

ソースコード

static void Main(string[] args)
        {
            var currentDomain = AppDomain.CurrentDomain;
            // 現在のプログラムが動いている Application Domain を取得してその情報を表示している
            Console.WriteLine(
                $"AppDomainID: {currentDomain.Id} AppDomainName: {currentDomain.FriendlyName} Path: {currentDomain.SetupInformation.ApplicationBase}");

            // Application Domain をセットアップするための準備をしている
            var setup = new AppDomainSetup();
            setup.ApplicationBase = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);


            // 現在の Application Domainの子供となる Application Domain を作成している
            var childDomain = AppDomain.CreateDomain("ChildDomain", null, setup);

            // 子供となる Application Domain の情報を表示している
            Console.WriteLine($"AppDomainID: {childDomain.Id} AppDomainName: {childDomain.FriendlyName} Path: {childDomain.SetupInformation.ApplicationBase}");
        }

実行結果

VSでコンソールアプリ立ち上げてデバッグ無しで実行をしただけです。

AppDomainID: 1 AppDomainName: ConsoleApp1.exe Path: C:\Users\gurag\source\repos\test\ConsoleApp1\bin\Debug\
AppDomainID: 2 AppDomainName: ChildDomain Path: C:\Users\gurag\Desktop

わかったこと

  • デフォルトの AppDomain の SetupInfomatino のApplication Base は Bin/Debug フォルダになっている。おそらく、 hoge.exe のある場所?
  • AppDomain を立ち上げるのは思ったより簡単。