Как мне установить значения для моего абстрактного класса? - PullRequest
0 голосов
/ 21 февраля 2020

У меня есть этот абстрактный класс

public abstract class Rules
{
}

, который я использую для определения правила для конкретных c случаев

public class AttributeView
    {

        public Rules? ValidationParameter { get; set; }
        public DataTypes Type { get; set; }

        private Rules? GetValidationType()
        {
            return Type switch
            {
                DataTypes.Date => new DateValidation(),
                DataTypes.DateTime => new DateTimeValidation(),
                _ => null
            };
        }
    }

DataTypes - это перечисление, необходимое для определения правил типа я собираюсь использовать. Все проверочные классы имеют Rules в качестве базы.

Как я видел выше, пока я знаю Type - я легко могу определить, к какому конкретному классу следует относить абстрактный класс.

Проблема возникает, когда мне нужно ее вставить?

Учитывая строку JSON - как создать экземпляр класса AttributeView?

"attributes": {
            "ValidationParameter": {
                int maxYear = 10;
            }
            "type": 0
        }

Я мог бы легко создать конструктор на основе типа

public AttributeView(DataType type)
        {
            Type = type; 

            switch (type)
            {
                case DataType.Date:
                    ValidationParameter = new DateValidation();
                    break;
                case DataType.DateTime:
                    ValidationParameter = new DateTimeValidation();
                    break;
                default:
                    break;
            };
        }

Но как мне установить значение?

...