public class Trimmer<TModel>
{
public Trimmer()
{
Mapper.Initialize(c =>
{
c.CreateMap<string, string>().ConvertUsing(s => string.IsNullOrEmpty(s) ? s : s.Trim());
c.CreateMap<TModel, TModel>();
});
}
/// <summary>
/// Function take List of object of type TModel what supplied during initalization and applied trim on every property which is string.
/// </summary>
/// <param name="models">An model object of type TModel</param>
/// <returns>List of objects of type TModel with string properties that are trimmed (leading and trailing spaces removed)</returns>
public List<TModel> StringTrimmer(List<TModel> models)
{
if (models == null)
{
return null;
}
var modelList = models.Select(StringTrimmer).ToList();
return modelList;
}
/// <summary>
/// Function take object of type T which one supply during Initalization and applied trim on every property which is string.
/// </summary>
/// <param name="model">An model object of Type TModel</param>
/// <returns>Object of type TModel with string properties that are trimmed (leading and trailing spaces removed)</returns>
public TModel StringTrimmer(TModel model)
{
Mapper.AssertConfigurationIsValid();`enter code here`
var mappedObj = Mapper.Map<TModel,TModel>(model);
return mappedObj;
}
Я создал общий класс под названием Trimmer с перегруженными методами под названием StringTrimmer. Предназначение методов - обрезать любое пространство для свойств объекта Tmodel с помощью Automapper. Он работал нормально, но когда-то это метод, который я получил следующее сообщение об ошибке:спорадическая ошибка при обрезке объекта Свойства с использованием Auto Mapper
Unmapped members were found. Review the types and members below. Add a custom mapping expression, ignore, add a custom resolver, or modify the source/destination type.
Когда это не должно происходить, как я уверен, преобразование того же типа объекта для одного типа объекта.
Что такое TModel, что вызывает эту ошибку? –
TModel - общий тип. В моем случае это просто имя класса, свойства объекта которого я хочу обрезать. Например, если у меня есть класс «Deck», тогда я сделаю «var obj = new Trimmer()». –
@TimothyGhanem Я нашел проблему и ответим на вопрос, почему я получал ошибки спорадически. Это было одно из многих возможных тестовых примеров, где код даст мне ошибку. Решение заключается в перемещении Mapper.AssertConfigurationIsValid(); внутри Mapper.Initialize –