Показано с 1 по 10 из 153

Тема: Ну и что хоть планируется-то?

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #10
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,571

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Интересно... надо будет тестировать... смотрел в строну Avalonia, но какой вообще ужас делать окошки даже в WindowsForm не ожидал, что потребуется столько логики писать. А там вообще мрак полный как по мне....
    Видел один продукт на Avalonia, не впечатлило... Опять же проблема в том, что пытаетесь все впихнуть в одно общее окно для работы.

    Поставьте себе CAD программы для примера как это должно выглядеть, ну хотя бы NanoCAD наш в триал варианте на месяц. Поймите наконец что требуется при работе с интерфейсом. (CAD программы максимально заточены на работу, когда требуется большой холст, слева часть окна Свойства. Все остальное поверх, с возможностью перетягивания на второй монитор, максимум пространства для рабочего пространства).
    Не делайте пожалуйста убогое подобие MasterScada, где впихнули все и вся в одно окно....
    Ну хотя вам сама VisualStudio прекрасно показывает, как это должно выглядеть тоже.

    з.ы. и пожалста, не применяйте ср... json, он требует полного повторения структуры для сериализации, стоит стереть параметр из файла и привет... xml тут гораздо гибче, можно атрибуты в игнор ставить и не писать по чем зря...
    когда Вас уже забанят, ежедневный бред несете, свое личное мнение выдаете за общепринятое, что вот за пурга про json и xml, ну для начала изучите документацию, посмотрите примеры, если Вы слабы в программировании то не надо здесь давать советы как программы писать
    Код:
    using System;
    using Newtonsoft.Json;
    using Newtonsoft.Json.Serialization;
    using System.Reflection;
    
    public class User
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public string Email { get; set; }
    }
    
    public class CustomContractResolver : DefaultContractResolver
    {
        protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
        {
            var property = base.CreateProperty(member, memberSerialization);
            
            // Установка значений по умолчанию для всех свойств
            if (property.PropertyType == typeof(int))
                property.DefaultValue = 10;
            else if (property.PropertyType == typeof(string))
                property.DefaultValue = "не указано";
                
            // Важно: включаем обработку значений по умолчанию
            property.DefaultValueHandling = DefaultValueHandling.Populate;
            
            return property;
        }
    }
    
    class Program
    {
        static void Main()
        {
            var options = new JsonSerializerSettings
            {
                ContractResolver = new CustomContractResolver(),
                ObjectCreationHandling = ObjectCreationHandling.Replace,
                NullValueHandling = NullValueHandling.Include
            };
    
            string json = @"{ ""Name"": ""Иван"" }";
            User user = JsonConvert.DeserializeObject<User>(json, options);
            Console.WriteLine($"Имя: {user.Name}");      // выведет: Иван
            Console.WriteLine($"Возраст: {user.Age}");   // выведет: 10
            Console.WriteLine($"Email: {user.Email}");    // выведет: не указано
        }
    }
    или
    Код:
    using System;
    using System.Text.Json;
    
    public class User
    {
        public string? Name { get; set; }
        public int Age { get; set; } //= 25;
        public string Email { get; set; } //= "Не указано";
    }
    class Program
    {
        static void Main()
        {
            string json = @"{ ""Name"": ""Иван"" }";
            var options = new JsonSerializerOptions
            {
                IncludeFields = true,
        		PropertyNameCaseInsensitive = true
            };
    
            User user = JsonSerializer.Deserialize<User>(json, options);
            Console.WriteLine($"Имя: {user.Name}");      // выведет: Иван
            Console.WriteLine($"Возраст: {user.Age}"); // выведет: 0
            Console.WriteLine($"Email: {user.Email}");    // выведет: (null)
        }
    }
    рашают эту задачу так же как парсер xml
    Последний раз редактировалось capzap; 12.08.2025 в 16:04.
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

Похожие темы

  1. Ответов: 13
    Последнее сообщение: 28.08.2025, 21:00
  2. Ответов: 2
    Последнее сообщение: 07.02.2022, 14:18
  3. Планируется ли выпуск обновленного СПК105?
    от Anton441 в разделе СПК210, СПК1xx [М01]
    Ответов: 7
    Последнее сообщение: 04.02.2019, 09:35

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •