У меня есть метод расширения, например
public static void RemoveDetail<TMaster, TChild>(this TMaster master, TChild child)
where TMaster : class, IMaster<TChild>
where TChild : class, IDetail<TMaster>;
И у меня есть два класса
public class Principal : IMaster<Permission>
{
public virtual IEnumerable<Permission> Permissions { get; }
}
и
public class Permission : IDetail<Principal>
Я вызываю RemoveDetail из действия, принятого методом public static void Foreach<T>(this IEnumerable<T> source, Action<T> action);
:
aPrincipal.Permissions.Foreach(x => aPrincipal.RemoveDetail(x));
ReSharper предложит мне заменить этот вызов группой методов, например
aPrincipal.Permissions.Foreach(aPrincipal.RemoveDetail);
Это отлично работало в VS2013 и предыдущем, но не удалось выполнить компиляцию в VS2015 с помощью
"Принципал" не содержит определения для "RemoveDetail", и не может быть найден метод расширения "RemoveDetail", принимающий первый аргумент типа "Принципал" (вам не хватает директивы использования или ссылки на сборку?)
У кого-нибудь есть предложение? Должен ли я обновлять все способы использования и заставить ReSharper избегать этой замены?