アセンブリの練習
C#でdllを作るにはどうしたらよいだろうとWeb検索をしてみましたが、それらしい情報がうまく見つけられませんでした。どうも、C#でdllを作るという考えがあまりよろしくないようです。C#では、外部ライブラリとしては、アセンブリという仕組み(名称)になっていて、それがexeだったりdllだったりします。なので、期待する情報を見つけるには「C# アセンブリ」でWeb検索が必要でした。
参考情報
いろいろ検索しましたが、結局、本家本元をみるのがわかりやすいですね。
まとめると
やり方としては、簡単そうに思えます。
練習内容
新規プロジェクトにてクラスライブラリを選択する。
利用されるクラスをコーディングする。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ClassLibrary1 { public class Class1 { private int counter = 0; public int getCouneter() { counter++; return counter; } } }
ビルドするとdllができる。
マニフェストは、AssemblyInfo.csに作られるようです。xmlではないみたいですね。
新規プロジェクトを作成し、アセンブリの参照を設定する。
アセンブリを利用するコーディングを行う。
参照設定をしたのでインテリセンスが効く。
最終的な確認コードは下記です。
using System; using System.Diagnostics; using ClassLibrary1; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { Class1 clazz1 = new Class1(); Debug.WriteLine(clazz1.getCouneter()); Debug.WriteLine(clazz1.getCouneter()); Debug.WriteLine(clazz1.getCouneter()); } } }
Outputウィンドウの確認は下記です。
'ConsoleApplication2.vshost.exe' (CLR v4.0.30319: ConsoleApplication2.vshost.exe): Loaded 'c:\Users\mytest01\Documents\Visual Studio 2013\Projects\ConsoleApplication2\ConsoleApplication2\bin\Debug\ClassLibrary1.dll'. Symbols loaded. 'ConsoleApplication2.vshost.exe' (CLR v4.0.30319: ConsoleApplication2.vshost.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 1 2 3 The thread 0x9c8 has exited with code 259 (0x103). The thread 0x1f4 has exited with code 259 (0x103).