7章:10 行でズバリ!! 複数のアプリケーションからのアセンブリの共有 (C#)

    作成2013.04.10

  1. サンプルの目的
    (1)独自のクラスを作成するとコードの再利用が容易となります。 (2)独自のクラスの運用方法は3通りあります。 (3)実行プログラムのコードと同じページ内に独自のクラスコードを記載する。この場合DLLファイルは作成されず、毎回実行プログラムと同時にビルドされます。(参照設定が不要で小規模ソフトに適します。) (4)実行プログラムのプロジェクトフォルダー内に独自のDLLファイルを作成し、DLLファイルを参照設定することにより、独自のクラスを使用する。(DLLファイルの参照設定が不可欠ですが、中規模ソフトに適します。) (5)独自のDLLファイルをWindowsフォルダ内に設置し、これを参照して独自のクラスを使用する。(システムフォルダーを使用するため、厳密な運用管理が必要となります。)7章:10 行でズバリ!! 複数のアプリケーションからのアセンブリの共有 (C#)で説明します。  このサンプルはDLLファイルの作成方法と使用方法の解説であり、サンプルコードは参考です。作成方法と使用方法を理解することが重要です。
  2. 参照元情報
     10 行でズバリ!! コードの作成と配置 (C#)
    「10 行でズバリ!! 複数のアプリケーションからのア?センブリの共有 (C#)」にジャンプする
     作成方法の詳細は上記を参照願います。


  3. 10 行でズバリ!! コードの作成と配置 (C#)の完成ファイル
     10 行でズバリ!! 複数のアプリケーションからのア?センブリの共有 (C#)の解説とおりに作業を実施すると、プロジェクトファイル群が完成します。
     完成ファイルは以下からダウンロードできます。
     ダウンロード後は解凍してから使用してください。
      [ 10 行でズバリ!! コードの作成と配置 (C#)]をダウンロードする。
     解凍すると「7SN_Assembly」フォルダーがあります。
    注(1)「7SN_Assembly」フォルダー内には「HostConsole」フォルダーと「StrongNameAssembly」フォルダーがあります。
    注(2)「StrongNameAssembly」フォルダー内のStrongNameAssembly.dllファイルをWindowsフォルダ内に設置するには、VS2012の開発者コマンドプロンプトを使用します。
    注(3)VS2012の開発者コマンドプロンプトは起動モードが2種類あり、右クリックで「管理者として実行」を選択しないとWindowsフォルダ内にStrongNameAssembly.dllファイルを保存できません。
    注(4)解説どおりに実行すると保存場所はC:\Windows\Microsoft.NET\assembly\GAC_MSIL\StrongNameAssembly\v4.0_2.0.0.0__5a58dc16d703275eとなりました。(保存場所は自動的に設定されます。
    注(5)「HostConsole」フォルダーの「HostConsole.sln」ファイルをダブルクリックすると「Express 2012 for Windows Desktop」が起動します。
    注(6)メニューの「ウインド」_「ウインドレイアウトのリセット」で標準に戻ります。
    注(7)「ソリューションエクスプローラ」ウインドウ内の「Program.cs」をダブルクリックすると「コード」が表示されます。
    注(8)動作確認は「デバッグ」_「デバッグ開始」で実行します。デバッグ機能を用いて動作確認を行います。


  4. HostConsole.slnの実行
    (1)DLLの名前空間、バージョン、DLLファイル名が表示されます。
    (2)クローズボックスでプログラムを終了します。


  5. Program.csの全コード
    using System;
    using SimpleNameAssembly;
    
    namespace HostConsole
    {
        class Program
        {
            static void Main(string[] args)
            {
                SimpleName simpleName = new SimpleName();
                Console.WriteLine(simpleName.Name);
                Console.WriteLine(simpleName.Version);
                Console.WriteLine(simpleName.CodeBase);
                Console.ReadKey();
            }
        }
    }
    


  6. Program.csコードの説明
    (1)using SimpleNameAssembly;で名前空間SimpleNameAssemblyの使用を宣言します。
    (2)SimpleName simpleName = new SimpleName();で変数simpleNameをSimpleName型で生成します。
    (3)Console.WriteLine(simpleName.Name);はsimpleNameクラスのNameを表示します。
    (4)Console.ReadKey();でキーが押されるまで表示を保持します。


  7. SimpleName.csの全コード
    using System;
    using System.Reflection;
    namespace SimpleNameAssembly
    {
        public class SimpleName
        {
            private AssemblyName assemblyName = Assembly.GetExecutingAssembly().GetName();
    
            public string Version { get { return assemblyName.Version.ToString(); } }
            public string Name { get { return assemblyName.Name; } }
            public string CodeBase { get { return assemblyName.CodeBase.ToString(); } }
        }
    }
    


  8. SimpleName.csコードの説明
    (1)private AssemblyName assemblyName = Assembly.GetExecutingAssembly().GetName();は変数assemblyNameをAssemblyName型で生成し、初期値に Assembly.GetExecutingAssembly().GetName()を設定します。
    (2) public string Version { get { return assemblyName.Version.ToString(); } }はプロパティVersionにVersionを設定します。
    (3)public string Name { get { return assemblyName.Name; } }はプロパティNameにNameを設定します。
    (4)public string CodeBase { get { return assemblyName.CodeBase.ToString(); } }はプロパティCodeBaseにCodeBaseを設定します。


    感想:
    (1)大規模ソフトでは、10 行でズバリ!! 複数のアプリケーションからのア?センブリの共有 (C#) の解説どおりに実行するのが良いと思います。
    (2)このサンプルはコードにはあまり意味がありません。DLLファイルの運用に関する手順ですので、 解説どおりに実行しないと手順がわかりません。







8章:10 行でズバリ!! 64 ビット対応 .NET アプリケーションの開発 (C#)に行く。

トップページに戻る。