1、NuGetのインストール手順
- コンソールアプリを新規作成する(他のプロジェクト形式でも可。ここでは説明用にコンソールを使用)
- NuGetパッケージマネージャーで AutoMapper(作者:Jimmy Bogard)を検索
- インストールをクリック。プロジェクトの.NETバージョンに合ったパッケージバージョンを選択してください。バージョンが一致しないとインストールに失敗します

パッケージマネージャーコンソールのコマンド
Install‑Package AutoMapper
2、エンティティクラスの作成
class Person
{
public int Age { set; get; }
public string Name { set; get; }
public decimal Salary { set; get; }
public bool Sex { set; get; }
public DateTime Birthday { set; get; }
}
class People
{
public int Age { set; get; }
public string Name { set; get; }
public decimal Salary { set; get; }
public bool Sex { set; get; }
public DateTime Birthday { set; get; }
}Code language: JavaScript (javascript)
3、使用例
class Program
{
static void Main(string[] args)
{
// ①マッピング設定の初期化:Person → People のマッピングを作成
Mapper.Initialize(m => m.CreateMap<Person, People>());
// ②ソースオブジェクト(Person)のインスタンス化
Person p = new Person()
{
Age = 12,
Name = "Tom",
Birthday = DateTime.Now,
Sex = true,
Salary = 10000
};
// ターゲットオブジェクトはnull不可。事前にインスタンス化が必要
People peo = new People();
// ③マッピング実行:ソースオブジェクトpの値をpeoにコピー
Mapper.Map(p, peo);
// ④マッピング結果の確認
Console.WriteLine(peo.Name);
Console.ReadKey();
}
}Code language: JavaScript (javascript)
重要ポイント
Mapper.Initialize:マッピングルールをグローバルに登録する。アプリ起動時に一度だけ実行し、ループ内で繰り返さないこと。CreateMap<ソース型, ターゲット型>():クラス間のマッピングを宣言する。Mapper.Map(ソースオブジェクト, ターゲットオブジェクト):ターゲットオブジェクトはあらかじめインスタンス化されている必要があり、nullは渡せません(例外が発生します)。- 規約:プロパティ名と型が一致していれば自動でコピーされる。追加設定は不要。
バージョン注意:AutoMapper 10以降では、静的
Mapper.Initialize / Mapper.Mapは非推奨となり、DIによるIMapperの注入を使用する。上記のコードは旧バージョンの学習用です。
手書きでの代入との比較
- 手書き:
peo.Name=p.Name; peo.Age=p.Age;……。フィールドが増えるほどボイラープレートコードが増える。 - AutoMapper:マッピング関係を宣言するだけで、同名プロパティが自動コピーされる。
インストールと最初のサンプル
Previous: AutoMapper とは
Next: Profileを設定する