Ответы пользователя по тегу C#
  • Как подружить MVC с реляционной базой данных?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Как подружить MVC с реляционной базой данных?

    Та нормально они дружат через Entity Framework, Dapper либо другие ORM.

    Форма не может передать методу POST сложные типы

    А при чём тут ваш вопрос "Как подружить MVC с реляционной базой данных?", если вы не можете передать с клиента на сервер?

    ModelState требует, чтоб были заполнены и CountryId, и Country одновременно.

    Используйте модели. Просто создайте другой класс (Модель), который будете использовать для get/post запросов (По отдельности, одна модель - один запрос) и вынесите туда всё, что вам нужно. Обычно вам хватит только Id того объект с каким будете работать + поля, которые нужны для создания/обновления/добавления и т.д. Для удаления вам хватит просто Id, для обновления нужны только поля, которые нужно обновить и Id того объекта, который нужно обновлять. И будет вам работа с примитивами )

    Для валидации вообще рекомендую накатить какую-то библиотеку по типу Fluent Validation Api либо Regex (Приоритетно)
    Ответ написан
    Комментировать
  • Почему эта переменная возвращает System.string[] вместо пути?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Ну во-первых, потому что так в документации написано.

    Во-вторых, само название метода GetFiles ничего вам не говорит? Данный метод возвращает список файлов в указанной директории.

    В целевой папке всего один файл

    И что? Значит метод вернёт вам массив с одним элементом. Если вы хотите получить конкретный файл, значит вам нужно что-то на подобии File.Open и т.д.

    значение переменной jar = System.string[]

    Тут по очереди. У вас System.string[] вылез, скорее всего из какого-то Console.WriteLine. Почему? Потому что тип вашего jar и массив типа string. Когда вы пытаете вывести какой-то тип в Console.WriteLine, который не предусмотрен в перегрузках, он будет вам выводить GetType().FullName, т.е. название типа, которое вам и выводится.

    Вообще, очень дурна привычка использовать var, просто не делайте так, а то вы плутаете сами себя и вы не понимаете, что вам должен возвращать метод
    Ответ написан
    8 комментариев
  • NullReferenceException: Object reference not set to an instance of an object?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    В вашем случае, вероятно, компонент TextMeshProUGUI не был найден на объекте, к которому прикреплен скрипт. Исходя из скриншота, вам нужно на объект прикрепить именно TextMeshProUGUI

    662f5c18aea73994361626.png
    Ответ написан
    Комментировать
  • Как из файла txt записать в Dictionary?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Не используйте File.ReadAllLines и подобные, это ошибка и вы не умеете правильно с ним работать, что бы его так использовать. Исправленный код:

    string fileTagsPath = $@"{AppDomain.CurrentDomain.BaseDirectory}tags\{имя файла}.txt";
    using (StreamReader reader = new StreamReader(fileTagsPath))
    {
        while (!reader.EndOfStream)
        {
            string line = reader.ReadLine();
            string[] lineParts = line.Split(", ");
            replacements.Add(lineParts[0], lineParts[1]);
        }
    }
    Ответ написан
    5 комментариев
  • Как понять что я выучил основы C#?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Вообще вы можете язык очень много лет учить. Что вы знаете о языке C#? Можете написать несколько классов, прокинуть соединение к БД, написать несколько linq запросов? А что на счёт делегатов, событий? Рефлексия учится долго. Потоки, и тут имеется ввиду не просто банальный async/await, а прям взаимодействие с памятью и системными потоками. Знаете? Нет? Учить будете? Само собой, что будете, а стоит ли оно того?

    Вообще да, как бы стоит, но поймите меня правильно, вы не первооткрыватель технологий и фреймворков. Для примера, вам будет очень тяжело узнать, где реально используется рефлексия как отдельная тема, пока вы не столкнётесь с её использованием.

    А знаете где она используется? Для примера это Dependency Injection контейнер в asp.net.

    А где используются событие? Для примера это handler'ы в таких фреймворках как Windows Forms и WPF.

    Вы не можете сказать, выучили вы это или нет, пока вы не сможете нормально управляться технологией или фреймворком, где эта тема используется повсеместно
    Ответ написан
    Комментировать
  • Как решить проблему подключения БД к WPF проекту?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Да, может, т.к. MacOS не поддерживает работу с MSSQL Server в принципе. Для того, что бы получить доступ через виртуалку, нужно изрядно поизвращаться, так что используйте PostgreSql, либо Sqlite, который уже идёт "из коробки" на маках.

    Тут вопрос второй, как вы хотите запустить БД на виртуалке и достучаться к ней из вашего MacOS? Оно не так просто всё делается, что вы просто запустили и оно всё обнаружило. Виртуальная машина это вообще, считайте, отдельный ПК где-то там далеко от вас. Что бы с ним работать, нужно вообще по сети раскидывать соединение (Я так когда-то делал, не знаю, может кто-то скажет, что есть другие варианты) и стучаться по портам как на удалённый БД сервер. Понятно, что оно у вас не видит
    Ответ написан
  • Как подключить proto файлы к проекту?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Клик сюда
    660ebe1a9e832661047201.jpeg

    Далее сюда
    660ebe371e0df243799837.png

    Подключаете .proto файл. После этого делает Rebuild вашего solution'а. Потом даблклик по проекту, в этом .csproj файле ищите секцию ItemGroup в которой будут ваши Protobuf. К ним додаёте аттрибут ProtoRoot, который (Для удобной работы) должен быть таким же как и пусть в аттрибуте Include без указания названия файла .proto

    UPD:
    Так же стоит отметить, чтобы импортировать в .proto ваш другой .proto, они должны быть хотя бы на одном уровне. Другими словами, вы можете импортировать только файлы, который находятся по архитектуре на том же уровне или ниже, потому что в import запрещено использования символа точки и запятой. Это значит, что вы не сможете выйти на уровень выше
    Ответ написан
    7 комментариев
  • Создается dll вместо exe?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    dll это библиотека. Значит вам нужен проект не библиотека, а, допустим, консольное приложение
    Ответ написан
    Комментировать
  • Как правильно настроить валидацию пароля в Blazor FluentValidation?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Вы используете
    fv.RegisterValidatorsFromAssemblyContaining<LoginModelValidation>())


    Это автоматическая регистрация сервисов валидаци, но она не работает на .net 8 (И, вроде бы на .net 7, но жто не точно). По этому, если вы используете указанную версию .net, вас все валидаторы нужно регистрировать вручную
    Ответ написан
  • Как перенести данные из html в VS?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Ну блин... Ну и вопрос конечно вы задали...

    Через JS можете отправить по HTTP (По желанию). Если таблица Excel, тогда подключайте соответствующие пакеты (Не в html)
    Ответ написан
    Комментировать
  • Почему служба Windows с Timer отрабатывает только один раз?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Простите, у вас проблемы с установкой Visual Studio? Или у вас компилятор сломался, что вы не можете запустить код?
    Ответ написан
  • Почему это не работает?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Тут есть два варианта, либо оно всё же присваивается, просто вы его не можете использовать так, как нужно, либо у вас условие if равно false. Больше вариантов не может быть

    UPD:
    Судя по логам, у вас выводится число 10, значит внутрь блока if программа заходит, значит всё должно работать. Вы лучше не 10 выводите в Debug.Log, а значение переменной textret
    Ответ написан
    Комментировать
  • Что делать если происходит такая ошибка?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Пожалуйста, зачем вы полезли игры делать, если вы C# не знаете? Что такое NULL?

    У вас ошибка NullReferenceException, значит что объект NULL. Почему? Вы получаете объект zacaz1 используя GetComponent<trigger_test>. Что делает GetComponent<trigger_test>? Возвращает присоединённый компонент указанного объекта (текущего). Если при обращении к zacaz1 вы получаете NULL, о чём это говорит? О том, что у этого компонента нет объекта trigger_test
    Ответ написан
    Комментировать
  • Как передать динамический текст в switch-case?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Switch работает только со статическими данными, а не выражениями
    Ответ написан
    4 комментария
  • Как создать миграцию данных с изменением даты?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Так если вы используете Entity Framework, там есть команда add-migration <name>, которая сгенерирует вам миграцию
    Ответ написан
    Комментировать
  • The same field name is serialized multiple times in the class or its parent class. Как исправить ошибку?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Простите, пожалуйста, но это очень глупый вопрос. Вы C# вообще учили?

    Вот ваш класс:
    public class Entity : MonoBehaviour
    {
        [SerializeField] private EntityScriptableObject _scriptableObject;
    
        public EntityScriptableObject ScriptableObject => _scriptableObject;
    }


    И вам же четко пишет, что у вас два поля с одинаковыми именами. Вот:
    [SerializeField] private EntityScriptableObject _scriptableObject;


    И вот:
    public EntityScriptableObject ScriptableObject => _scriptableObject;
    Ответ написан
  • Какой шаблон проекта выбрать при написании телеграмм бота Visual Studio 2022?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    А что такое API? Это просто сервер, куда вы будете делать HTTP запросы и получать информацию. Как разница, откуда вы будете делать HTTP запрос используя HttpClient. Ваш шаблон просто будет показывать, как вы это собираетесь выводить пользователю.

    Хотите простенькую программу? Делайте Console Application
    Хотите минимальный, но рабочий GUI? Делайте на Windows Forms/WPF
    Хотите, что бы вашей программой пользовались на телефоне? Можете делать на Xamarin.NET или MUI
    Хотите, что бы ваша программа была доступна без скачивания? Делайте на asp.net mvc
    Хотите, что бы ваша программа была в интернете и имела красивый и быстрый UI? Можете сделать на asp.net web api и прикрепить туда в качестве клиента React, Angular или Vue.js
    Не хотите делать переадресация трафика через API? Можете сделать только на React, Angular или Vue.js
    Хотите быстрый GUI в браузере, но не хотите отходить от технологий Microsoft? используйте asp.net Blazor
    Ответ написан
    Комментировать
  • Как скачивать торренты на c#?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Прям документации у них нет, есть просто примеры кода и опен-соурс код)

    Вот есть такие примеры
    Ответ написан
    1 комментарий
  • Как задать логическое && в лямба выражении?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    WhereIf? Может просто Where использовать? Туда как раз таки можно передать лямбду. и использовать логическое &&
    Ответ написан
    Комментировать
  • Почему не десериализуется JSON объект при помощи Newtonsoft.Json?

    NikFaraday
    @NikFaraday Автор вопроса
    Student full-stack Developer
    Сделаю заключение долгих попыток десериализации сложных объектов, советов и рекомендаций.

    Первое что нужно понимать при сериализации и десериализации, что объект должен иметь возможность полного построения, т.е., иметь public конструктор и все свойства должны быть set (Именно public set, init так же не подходит)

    Проблема в том, что сериализаторы (По крайней мере те, который я использовал, это Newtonsoft.Json, System.Json и Utf8Json) не работают с System.Reflection, т.е., они могут восстановить только те поля/свойства, который доступны публично

    BinarySerialization так же не подходит

    Почему я не встречал такой ошибки раньше? Потому что на проектах типу web api + react основной единицей транспортировки данных были модели, так называемые DTO (Data Transfer Object), которые сами по себе имеют только публичные свойства и стандартный публичный конструктор без параметров и эти объекты отлично работают для отправки информации через http
    Ответ написан