#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.