CA1502 — бинарный анализатор. В некоторых случаях ваш код не так уж сложен или не поддается декомпозиции. Вот пример, который привел к предупреждению CA1502:
public class Mapping : Profile
{
[SuppressMessage("Microsoft.Maintainability", "CA1502"]
public Mapping()
{
CreateMap<ItemInstance, ManifestRecords>()
.ForMember(dest => dest.SomeProperty1, opt => opt.MapFrom(src => src.SomeProperty1))
.ForMember(dest => dest.SomeProperty2, opt => opt.MapFrom(src => src.SomeProperty2))
.ForMember(dest => dest.SomeProperty3, opt => opt.MapFrom(src => src.SomeProperty3))
.ForMember(dest => dest.SomeProperty4, opt => opt.MapFrom(src => src.SomeProperty4))
.ForMember(dest => dest.SomeProperty5, opt => opt.MapFrom(src => src.SomeProperty5))
.ForMember(dest => dest.SomeProperty6, opt => opt.MapFrom(src => src.SomeProperty6))
.ForMember(dest => dest.SomeProperty7, opt => opt.MapFrom(src => src.SomeProperty7))
.ForMember(dest => dest.SomeProperty8, opt => opt.MapFrom(src => src.SomeProperty8))
.ForMember(dest => dest.SomeProperty9, opt => opt.MapFrom(src => src.SomeProperty9))
.ForMember(dest => dest.SomeProperty10, opt => opt.MapFrom(src => src.SomeProperty10))
.ForMember(dest => dest.SomeProperty11, opt => opt.MapFrom(src => src.SomeProperty11))
.ForMember(dest => dest.SomeProperty12, opt => opt.MapFrom(src => src.SomeProperty12))
.ForMember(dest => dest.SomeProperty13, opt => opt.MapFrom(src => src.SomeProperty13))
.ForMember(dest => dest.SomeProperty14, opt => opt.MapFrom(src => src.SomeProperty14))
.ForMember(dest => dest.SomeProperty15, opt => opt.MapFrom(src => src.SomeProperty15))
.ForMember(dest => dest.SomeProperty16, opt => opt.MapFrom(src => src.SomeProperty16));
}
}
Вы можете видеть, что я использую AutoMapper, и на самом деле в исходном коде нет цикломатической сложности, хотя она может быть в скомпилированном двоичном представлении.
Вы можете подавить предупреждение с помощью атрибута:
[SuppressMessage("Microsoft.Maintainability", "CA1502"]
person
Ronnie Overby
schedule
21.08.2018