Member 14779968 Ответов: 0

Как установить значение свойства члена класса типа списка


У меня есть следующий Json и я преобразовал его в классы

формат JSON :
{
	"schedule": {
		"afterStartMinutesBase": 0,
		"beforeStartMinutesBase": 0,
		"scheduleType": 2,
		"id": "00000000-0000-0000-0000-000000000000",
		"currentSchedule": {
			"internalType": 2,
			"daysOfWeek": [
				0,
				4,
				5,
				3
			],
			"weeksInterval": 1,
			"daysOfWeekSource": [{
					"name": "Sunday",
					"value": 0,
					"isSelectedInternal": true
				},
				{
					"name": "Monday",
					"value": 1,
					"isSelectedInternal": false
				},
				{
					"name": "Tuesday",
					"value": 2,
					"isSelectedInternal": false
				},
				{
					"name": "Wednesday",
					"value": 3,
					"isSelectedInternal": true
				},
				{
					"name": "Thursday",
					"value": 4,
					"isSelectedInternal": true
				},
				{
					"name": "Friday",
					"value": 5,
					"isSelectedInternal": true
				},
				{
					"name": "Saturday",
					"value": 6,
					"isSelectedInternal": false
				}
			],
			"weeksIntervalOptions": {
				"min": 1,
				"max": 999,
				"decimals": 0,
				"format": "###,###"
			}
		},
		"startBoundary": "2020-02-04T00:00:00-05:00",
		"scheduleByWeek": {
			"internalType": 2,
			"daysOfWeek": [
				0,
				4,
				5,
				3
			],
			"weeksInterval": 1,
			"daysOfWeekSource": [{
					"name": "Sunday",
					"value": 0,
					"isSelectedInternal": true
				},
				{
					"name": "Monday",
					"value": 1,
					"isSelectedInternal": false
				},
				{
					"name": "Tuesday",
					"value": 2,
					"isSelectedInternal": false
				},
				{
					"name": "Wednesday",
					"value": 3,
					"isSelectedInternal": true
				},
				{
					"name": "Thursday",
					"value": 4,
					"isSelectedInternal": true
				},
				{
					"name": "Friday",
					"value": 5,
					"isSelectedInternal": true
				},
				{
					"name": "Saturday",
					"value": 6,
					"isSelectedInternal": false
				}
			],
			"weeksIntervalOptions": {
				"min": 1,
				"max": 999,
				"decimals": 0,
				"format": "###,###"
			}
		},
		"maxRunTime": "2:0:0",
		"repetition": null,
		"type": 32768
	},
	"taskOptions": {
		"internalType": 0,
		"information": "Data Clean up Auto"
	},
	"ignoreErrors": false
}



Вот мой основной класс модели, который имеет свойства члена:
У меня возникли проблемы с установкой значений List<daysofweeksource> и List<daysofweeksource2>


public class Model
{



        public static AdminServiceTaskModel CreateServiceTaskModel()
        {
            return new AdminServiceTaskModel()
            {
                schedule = new AdminServiceTaskModel.Schedule
                {
                    afterStartMinutesBase = 0,
                    beforeStartMinutesBase = 0,
                    scheduleType = 2,
                    id = "00000000-0000-0000-0000-000000000000",
                    currentSchedule =
                    {
                        internalType = 2,
                        daysOfWeek = new List<int> { 0, 4, 5, 3 },
                        weeksInterval = 1,
                        daysOfWeekSource = new List<DaysOfWeekSource>
                        {
                           

                        },
                        weeksIntervalOptions =
                        {
                            min = 1,
                            max = 999,
                            decimals = 0,
                            format = "###,###"

                        }
                    },
          startBoundary = new DateTime(2020, 3, 31, 0, 0, 0, DateTimeKind.Local),
                    scheduleByWeek =
                    {
                        internalType = 2,
                        daysOfWeek =  new List<int> { 0,4,5,3},
                        weeksInterval = 1,
                        daysOfWeekSource  = new List<DaysOfWeekSource2>  
                        {
                            
                         
                        },
                        weeksIntervalOptions =
                        {
                            min = 1,
                            max = 999,
                            decimals = 0,
                            format = "###,###"
                        }
                        
                    },
                    maxRunTime = "2:0:0",
                    repetition = null,
                    type = 32768,
                    



                },
                taskOptions = new AdminServiceTaskModel.TaskOptions
                {
                    internalType = 0,
                    information = "Data Clean up Auto"
                },

                ignoreErrors = false

            };

        }






        public class DaysOfWeekSource
        {
            public string name { get; set; }
            public int value { get; set; }
            public bool isSelectedInternal { get; set; }
        }
        
        public class WeeksIntervalOptions
        {
            public int min { get; set; }
            public int max { get; set; }
            public int decimals { get; set; }
            public string format { get; set; }
        }
        
        public class CurrentSchedule
        {
            public int internalType { get; set; }
            public List<int> daysOfWeek { get; set; }
            public int weeksInterval { get; set; }
            public List<DaysOfWeekSource> daysOfWeekSource { get; set; }
            public WeeksIntervalOptions weeksIntervalOptions { get; set; }
        }
        
        public class DaysOfWeekSource2
        {
            public string name { get; set; }
            public int value { get; set; }
            public bool isSelectedInternal { get; set; }
        }
        
        public class WeeksIntervalOptions2
        {
            public int min { get; set; }
            public int max { get; set; }
            public int decimals { get; set; }
            public string format { get; set; }
        }
        
        public class ScheduleByWeek
        {
            public int internalType { get; set; }
            public List<int> daysOfWeek { get; set; }
            public int weeksInterval { get; set; }
            public List<DaysOfWeekSource2> daysOfWeekSource { get; set; }
            public WeeksIntervalOptions2 weeksIntervalOptions { get; set; }
        }
        
        public class Schedule
        {
            public int afterStartMinutesBase { get; set; }
            public int beforeStartMinutesBase { get; set; }
            public int scheduleType { get; set; }
            public string id { get; set; }
            public CurrentSchedule currentSchedule { get; set; }
            public DateTime startBoundary { get; set; }
            public ScheduleByWeek scheduleByWeek { get; set; }
            public string maxRunTime { get; set; }
            public object repetition { get; set; }
            public int type { get; set; }
        }
        
        public class TaskOptions
        {
            public int internalType { get; set; }
            public string information { get; set; }
        }
        
           
            public Schedule schedule { get; set; }
            public TaskOptions taskOptions { get; set; }
            public bool ignoreErrors { get; set; }



}


Что я уже пробовал:

Я попытался создается новый экземпляр список<daysofweeksource> и список<daysofweeksource2&ГТ; но я не могу получить свойства элементов
public string name { get; set; }
public int value { get; set; }
public bool isSelectedInternal { get; set; }

ZurdoDev

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

Member 14779968

это именно тот код, с которым у меня возникли проблемы

ZurdoDev

Но где находится код, в котором вы пытаетесь получить доступ к свойству name и не можете, и в чем заключается ошибка?

Member 14779968

Я пытаюсь получить доступ к здешним свойствам .

daysOfWeekSource = новый список<daysofweeksource>
{
имя = "понедельник",
значение = 1,
isSelectedInternal = истина
},

Ошибка: 'List<adminservicetaskmodel.daysofweeksource>' Не содержит определения 'name'

ZurdoDev

Потому что это список, а не один экземпляр, поэтому вы не можете инициализировать таким образом.

List<daysofweeksource> daysOfWeekSources = новый список<daysofweeksource>();
пункт daysOfWeekSource = новый daysOfWeekSource();
пункт.Имя = "";
...
daysOfWeekSources.Добавить элемент);

Member 14779968

при попытке сделать это в соответствии с текущим расписанием. Это разрывает границы. Я должен поместить его в свойство CurrentSchedule, так как это родитель daysOfWeekSource, если вы посмотрите на Json выше

ZurdoDev

ОК.

F-ES Sitecore

Поскольку это список вам нужно добавить в него новый экземпляр и получить доступ к его свойствам

var daysOfWeekSource = новый список<daysofweeksource2>
{
новый DaysOfWeekSource2
{
имя = "понедельник",
значение = 1,
isSelectedInternal = истина
}
}

0 Ответов