2013-12-12 4 views
1

Я ищу документацию для AutoMapper для C#. Единственное, что я нашел, это this wiki, но это и неполная, и не фактическая документация по функциям. Трудно найти документацию для определенной функции.Где находится документация переизбрания для AutoMapper?

В частности, я ищу разницу между DynamicMap(sourceValue, sourceType, destinationType) и Map(sourceValue, sourceType, destinationType). Я нашел неофициальный Q & Посты googleing, но они не были действительно объяснительными, и особенно они не были «официальной документацией».

+0

Официальная документация представляет собой комментарии кода xml и вики. –

+0

Хм, есть ли способы увидеть эти комментарии XML в Visual Studio, когда просто ссылаетесь на библиотеки DLL? – someName

+0

Да, если файл doc XML находится рядом с DLL, на которую вы ссылаетесь. Если вы используете NuGet, все это делается автоматически. –

ответ

3

Ответ прост - для AutoMapper нет фактической документации для каждой функции. Это не коммерческий продукт. Это просто библиотека, разделяемая Jimmy Bogard, и вы можете использовать ее как есть (без подробной официальной документации).

Прежде всего следует отметить, что исходный код AutoMapper имеет хорошие комментарии XML вы можете рассчитывать на:

/// <summary> 
/// Execute a mapping from the source object to a new destination object 
/// with explicit <see cref="System.Type"/> objects 
/// </summary> 
static object Map(object source, Type sourceType, Type destinationType) 

/// <summary> 
/// Create a map between the <paramref name="sourceType"/> and 
/// <paramref name="destinationType"/> types and execute the map. 
/// Use this method when the source and destination types are 
/// not known until runtime. 
/// </summary> 
static object DynamicMap(object source, Type sourceType, Type destinationType) 

Как говорится, вы должны использовать DynamicMap когда типы источников и мест не известны до момента выполнения. Разница между этими типами сопоставления непонятна, когда вы используете не общие версии методов. Но обычно мы используем общие методы. Например. создание карты выглядит следующим образом:

// here you can write type names, because you know them 
Mapper.CreateMap<Source, Destination>(); 

После карта была создана вы можете выполнить это отображение

Source source = new Source { Id = 42, Name = "Bob" }; 
Destination destination = Mapper.Map<Destination>(source); 

Но вы не можете использовать тот же код для анонимных типов. Например. у вас есть следующий объект:

var source = new { Id = 13, Name = "Joe" }; 

Вы не можете использовать родовое создание параметризованного отображений для этого типа, потому что вы не знаете, что этим имя.

Mapper.CrateMap</*What goes here?*/, Destination>(); 

Именно поэтому было введено динамическое картографирование. Это делает и то и другое - создает карту и выполняет его:

var source = new { Id = 13, Name = "Joe" }; 
Destination destincation = Mapper.DynamicMap<Destination>(source); 

С вашими необщими методами, которые вы можете просто использовать source.GetType(), чтобы получить тип исходного объекта, так что это не проблема.

Еще одно примечание - вы можете использовать блог Jimmy в качестве источника информации об особенностях AutoMapper. Например, он описывает динамическое отображение here.

Смежные вопросы