Диапазон перечислений Blazor, CS1729 ‘RangeAttribute’ не содержит конструктора, который принимает 4 аргумента

#c# #blazor #.net-5

#c# #blazor #.net-5

Вопрос:

Я переписывал фрагмент кода из BlazorApp в приложение на основе ядра BlazorApp. Внезапно теперь он выдает ошибку при определении RangeAttribute.

Почему я получаю ошибку:

«CS1729 ‘RangeAttribute’ не содержит конструктора, который принимает 4 аргумента TradeNow.Клиент»

Мой код выглядит следующим образом:

 using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;

namespace TradeNow.Client.Pages.Adverts.Data
{
    public class SellBuy
    {
            [Required]
            [Range(typeof(SellBuyN), nameof(SellBuyN.Sell), typeof(SellBuyN), nameof(SellBuyN.Buy), ErrorMessage = "Select if you are buying or selling")]
            public SellBuyN SellBuyN { get; set; }
    }
    public enum SellBuyN { Sell, Unknown, net, smth, Buy }
}
 

Комментарии:

1. Похоже, .Net 5 никогда не допускал 4 параметра в этом конструкторе . Вы недавно обновились с другой версии?

2. @derloopkat Раньше я использовал предварительный просмотр, также, если я ввожу один параметр, то ошибка такая же, просто указывает 1 аргумент..

Ответ №1:

Из документации по адресу: https://docs.microsoft.com/en-us/dotnet/api/system.componentmodel.dataannotations.rangeattribute?view=net-5.0

Вы можете видеть, что конструктор никогда не принимает 4 аргумента:

 Constructors
CONSTRUCTORS
RangeAttribute(Double, Double)  
Initializes a new instance of the RangeAttribute class by using the specified minimum and maximum values.

RangeAttribute(Int32, Int32)    
Initializes a new instance of the RangeAttribute class by using the specified minimum and maximum values.

RangeAttribute(Type, String, String)    
Initializes a new instance of the RangeAttribute class by using the specified minimum and maximum values and the specific type.