Каждый метод не рекомендуется обновлять Automapper - PullRequest
0 голосов
/ 03 ноября 2018

Я использую Automapper в своем приложении .NET. В настоящее время я использую версию 3.3.0, и я только что обновил пакет Nuget до последней версии 7.1.0. Я исправил большинство критических изменений.

Я не уверен в правильном исправлении ниже:

Это был метод в Automapper 3.0.0

public static void Each<T>(this System.Collections.Generic.IEnumerable<T> items, System.Action<T> action)

    Member of AutoMapper.EnumerableExtensions

Я использовал его в своем коде, как показано ниже:

           customer.CustomerQuerys.Each(

                l => l.OnProductChanged += (sender, args) =>

                {

                    switch (args.Result)

                    {

                        case DataChangedEventFlags.ProductChanged:

                            messages.Add("ProductChanged " + ((CustomerCoreData)sender).ProductName);

                            break;

                    }

                });

CustomerQuerys является коллекцией ReadOnlyCollection для объекта клиента

1 Ответ

0 голосов
/ 04 ноября 2018

Будьте осторожны с тем, что вы используете из сторонней библиотеки. Этот метод явно не имеет ничего общего с AutoMapper и большинство предназначено для внутреннего использования. Также учитывайте читабельность вашего кода. Почему бы просто не использовать цикл foreach, как показано ниже. Занимает больше места, но иногда легче читается.

public void DoStuff()
{
   foreach(var customer in customer.CustomerQuerys)
   {
      customer.OnProductChanged += HandleProductChanged;
   }
}

private void HandleProductChanged(object sender, DataChangedEvent args)
{
   switch (args.Result)
   {
       case DataChangedEventFlags.ProductChanged:
          messages.Add("ProductChanged " + ((CustomerCoreData)sender).ProductName);
          break;
   }
}

Если вы действительно хотите один, вы можете создать свой собственный:

public static void ForEach<T>(this IEnumerable<T> enumeration, Action<T> action)
{
    foreach(T item in enumeration)
    {
        action(item);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...