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;
}
StringTrimmerというオーバーロードされたメソッドでトリマーと呼ばれるGenericクラスを作成しました。メソッドの目的は、Automapperを使用してTmodelオブジェクトプロパティのためのスペースをトリムすることです。それはうまく働いたが、その後いつかこれらの方法私は、エラー以下だ:自動マッパーを使用したオブジェクトプロパティのトリミング中に散発的なエラーが発生しました
私は同じオブジェクト型に同じオブジェクト型を変換していて、それが起こっすべきではない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.
。私はMapper.AssertConfigurationIsValid()を使用していますので、私は問題を発見したその
このエラーの原因となっているTModelのは何ですか? –
TModelは単なるジェネリック型です。私の場合は、そのオブジェクトのプロパティをトリムしたいだけのクラス名です。たとえば、クラスが "Deck"の場合、 "var obj = new Trimmer()"とします。 –
@TimothyGhanem私はこの問題を発見しました。なぜ、エラーを散発的に得ているのかという質問に答えます。これは、コードが私にエラーを与える可能性のある多くのテストケースの1つでした。解決策は、Mapper.AssertConfigurationIsValid();を移動することです。内部Mapper.Initialize –