Задать вопрос
  • Как добавить метод в public class из другого скрипта?

    hekkaaa
    @hekkaaa
    C#/.NET Developer
    Привет!
    Очень не разборчиво написано, что откуда и почему.
    Если я верно понял нужно использовать метод VehicleMaxFuel().

    Вариант 1: Создай экземпляр класса где содержится метод и все.
    Game testclass = new Game();
    testclas.VehicleMaxFuel()


    Вариант 2: если ты хочешь такой же класс но другую реализацию, то можно использовать наследование от класса в моде. В таком случае можно использовать методы родительского класса (который с методом VehicleMaxFuel())

    public class MyClass : ModClass
    {
    public void VehicleMaxFuel(float value) {....}
    }
    Ответ написан
  • Как сконфигурировать Worker Service для логгирования запросов Entity Framework через NLog?

    hekkaaa
    @hekkaaa
    C#/.NET Developer
    Привет!
    Вот мой вариант подключения Nlog к такому сервису на .NET 6
    Сам процесс подключения и использования его через DI дальше брал вот с этого примера

    Возможно я пропустил пару "скобочек", но вот так выглядитProgram.cs:
    IHost host = Host.CreateDefaultBuilder(args)
        .ConfigureHostConfiguration(builder =>
        {
            builder.SetBasePath(System.IO.Directory.GetCurrentDirectory());
        
        })
    
        .ConfigureServices(services =>
        {
            services.AddHostedService<Worker>();
          var config = new ConfigurationBuilder()
                  .SetBasePath(System.IO.Directory.GetCurrentDirectory())
                  .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                  .AddEnvironmentVariables()
                  .Build();
         
            services.AddSingleton<IRunner, Runner>()
            .AddLogging(loggingBuilder =>
            {
                // configure Logging with NLog
                loggingBuilder.ClearProviders();
                loggingBuilder.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Debug);
                loggingBuilder.AddNLog(config);
            });
            services.AddSingleton<IEmailService, EmailService>();
            services.AddSingleton<IClientSmtp, SmtpClientGoogleAsync>();
            services.AddSingleton<ICheckingSubEmailService, CheckingSubEmailService>();
        })
        .UseWindowsService()
        .Build();


    После в такого инстанса в документации есть часть где создается class Running, там ты просто закинь POST запрос в свою базу. Все это делается на DI не сильно сложно.
    Ответ написан
    Комментировать
  • Как сделать опроса веб адресса в скрипте?

    hekkaaa
    @hekkaaa
    C#/.NET Developer
    Привет!
    Если я верно понял, что нужно просто сделать бесконечный Ping на текущий код, то просто заверните его функционал в цикл while.
    Отменить его можно будет через CTRL+C в консоли.
    Ответ написан
  • Как можно выявить в чём проблема, при запуске asp.net core 6 приложения?

    hekkaaa
    @hekkaaa
    C#/.NET Developer
    Привет!
    Если глянуть на ошибку:
    " No service for type 'System.String' has been registered." - то предположительно Вы забыли зарегистрировать какой-то класс.
    Вспомни что добавлял последнее или запусти с дебагом и пошагово посмотри где отвалилось.
    Ответ написан
  • Доступ к значению переменной int из другого скрипта?

    hekkaaa
    @hekkaaa
    C#/.NET Developer
    Привет!
    Тут 3 варианта как я вижу и freeExec тебе верно подсказал - нужна ссылка на поле value (его можно сделать и свойством даже).
    1. Можно вызывать метод стрельбы и в его аргументы закидывать аргумент value с параметром ref.
    Пример: public void Shot(ref value)
    Тем самым внутри метода делать value-- или value++.

    2. Можно сделать value static и закидывать так же как в вариант 1, только без ref

    3. Прокидывать ВЕСЬ объект ProgressBarComponent и обращаться к его публичным свойствам или полям меняя их внутри метода выстрела. (Ну так себе способ на мой взгляд). Можно сделать это через DI например, если он применяется в геймдеве конечно.
    Ответ написан
    Комментировать
  • Как решить проблема запуска ново добавленного службы Windows?

    hekkaaa
    @hekkaaa Автор вопроса
    C#/.NET Developer
    Решение нашел спустя 4 дня поиска.
    В документации Microsoft - это как то не упоминается или не акцентируется, но нужно доустановить Nuget пакет Microsoft.Extensions.Hosting.WindowsServices и добавить в Program.cs -> .UseWindowsService()

    В стартовой зборке это будет выглядеть вот так:
    IHost host = Host.CreateDefaultBuilder(args)
        .ConfigureServices(services =>
        {
            services.AddHostedService<Worker>();
        })
       <b> .UseWindowsService()</b>
        .Build();


    P.S информацию случайно нашел вот тут.
    Ответ написан
    2 комментария
  • Сshtml выводит код на страницу как исправить?

    hekkaaa
    @hekkaaa
    C#/.NET Developer
    Судя по всему он не понимает указанное вами частичное представление.
    т.к не знаю что у Вас накручено на беке в хосте, то рекомендую воспроизвести вот этот простой пример показанный на metanit.
    Ответ написан
    Комментировать
  • Как вернуть результат при пустом значении?

    hekkaaa
    @hekkaaa
    C#/.NET Developer
    Обычно в таких случаях бросаются ошибкой и обрабатывают ее выше по коду, либо на месте, если значение null.

    if(bookPriceDb == null)
    {
     throw new NullReferenceException ("не существует указанного id: {bookingId} ")
    }
    Ответ написан
    Комментировать
  • Как в свойство добавить новые значения?

    hekkaaa
    @hekkaaa
    C#/.NET Developer
    Привет!
    Для указанного тобой свойства это:

    Magazine item = new Magazine();
    item.Product  = "Hook";


    Так же обрати внимание что при создании свойств есть возможность сделать init (или ты можешь столкнуться с этим).

    Тогда это работать будет только в момент инициализации класса:

    class Magazine
    {
        public string Product { get; init; }
    }
    Magazine item = new Magazine(){ Product = "Soda" };
    Ответ написан
    Комментировать
  • Нужен совет по реализации?

    hekkaaa
    @hekkaaa
    C#/.NET Developer
    Привет!
    Если я все правильно понял то первое что в голову лезет (без подключения сторонних фреймворков) это разбить строку на массив и сравнивать их. Только перебор. Возможно тебя пугает ручная реализация, но под капотом фреймоворков в основном что-то подобное. Разве что алгоритм какой-то прикручен навороченный.

    richtextbox = "You win some. You lose some.";
    richtextbox1 = "You not win amazing some. You lose down some.";
    
    string[] textsubs = richtextbox.Split(' ');
    string[] textsubs1 = richtextbox1.Split(' ');
    
    foreach (var sub in textsubs )
    {
       foreach (var sub1 in textsubs ){
    // делаем цикл сравнивания и удаления из массива.
    var res = String.Equals( sub, sub1)
    .....
     }
    }
    Ответ написан
    Комментировать
  • Что такое постоянная коммутация для коммутации пакетов?

    hekkaaa
    @hekkaaa
    C#/.NET Developer
    Постоянная коммутация это комплекс мер - проще говоря это налаживание соединения из вне (админом) которое ограничивает твоем время связи с другим хостом (оно может установить время, объём, скорость трафика).
    Пример: Если вспомнишь раньше на почте были кабинки разговора меж город., где ты говорил какое-то четко отведенное время.

    Динамическая идет по инициативе одного пользователя с хоста А до другого хоста Б, в том объёме который нужен (о позволяет тех возможность) инициатору.
    Соединение тут происходит свободно с другими участниками сети, если на сеть не наложены иные ограничения (хост в другом vlan например).
    Пример: Обычная офисная сеть, ты решил подключиться по удаленке на комп коллеги.
    Ответ написан
    7 комментариев
  • Как исправить ошибку SocketException: Попытка установить соединение была безуспешной?

    hekkaaa
    @hekkaaa
    C#/.NET Developer
    Привет!
    Как я вижу, Вы используете коннектор MySQL.
    В вашем частном случае проблема состоит в том что по указанным данным, метод не может достучаться до БД.
    Как видите сокеты сети на стороне .NET используются System.Net.Sockets.Socket.Receive.

    Возможно в строке подключения не указана База данных !внутри! уже самого MySQL.
    Вот пример иной строчки подключения которое удалось на гуглить :
    string Connect="Database=БАЗА;Data Source=ХОСТ;User Id=ПОЛЬЗОВАТЕЛЬ;Password=ПАРОЛЬ";
    Ответ написан
    Комментировать
  • Как с помощью return вернуть две переменные?

    hekkaaa
    @hekkaaa
    C#/.NET Developer
    Есть очень нужно то то используй "кортеж".
    Не лучшая практика как поговаривают, но если нужно именно так и не иначе, то почему и нет.

    public (int, string) GetUser(){
    int a = 14;
    string b = "Roman";
    return (a,b)
    }
    Ответ написан
    Комментировать
  • Ошибка в unity c# скрипте?

    hekkaaa
    @hekkaaa
    C#/.NET Developer
    Судя по всему вам нужно подключить пространство имен через using для Tagret класса.
    Ответ написан
  • Как прочитать данные из файла?

    hekkaaa
    @hekkaaa
    C#/.NET Developer
    Привет!
    для чтения тебе нужно FileStreamвоспользоваться.
    Пример с документацией тут.
    Ответ написан
    Комментировать
  • Как правильно указать путь к Solution в pipline Bitbuket?

    hekkaaa
    @hekkaaa Автор вопроса
    C#/.NET Developer
    Все оказалось просто
    - export SOLUTION_NAME нужно перенести на выше - dotnet restore ${SOLUTION_NAME}.
    Ответ написан
    Комментировать
  • Как изменить путь по умолчанию в Nunit тесте?

    hekkaaa
    @hekkaaa Автор вопроса
    C#/.NET Developer
    Пока решение такое. Метод признать "не тестируемым".
    Зато метод хорошо тестится в негативе)
    Ответ написан
    Комментировать
  • Как в Winform отрисовать элемент в Picturebox?

    hekkaaa
    @hekkaaa Автор вопроса
    C#/.NET Developer
    Как Вариант решение через события предложенное edward_freedom

    Решение которое мне подсказали проще.
    При создании формы по нажатию кнопки перекидывает this.
    var createform = new LoadProject(this);
    This - это сама главная неявная форма Form1 которой мы далее сможем наконец воспользоваться.

    Далее в самой дочерней форме с кнопками делаем поле и присваиваем значение ему. И ТАДАААМ можем вызывать поле и обращаться к методам Form1.

    Form1 _main; // Поле
    
            public LoadProject(Form1 main)
            {
                InitializeComponent();
                _main = main;
            }
    Ответ написан
  • Откуда идет задвоение файлов в Visual Studio?

    hekkaaa
    @hekkaaa Автор вопроса
    C#/.NET Developer
    Вопрос решил случайно.
    Оказалось при merge в файла UML_Logic_Library.cspro слили 2 раза дублированные метаданные. VS их 2 раза считывала и не ругалась, ругаться стала когда я начал тащить API методы из этой библиотеки в своей проект.

    Вчитался и увидел что 2 заголовка
    <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    ...
    Ответ написан
    Комментировать
  • Как обновлять данные Winform в таблице DataGrid.DataSource динамически?

    hekkaaa
    @hekkaaa Автор вопроса
    C#/.NET Developer
    Ответ нашел сам. Спустя 500 попыток.
    Есть 2 Варианта:
    Самый верный динамический вариант это менять конкретные элементы строк
    dataGridView1[0,1].Value = "Какое то новое значение".

    dataGridView1.Update();
    dataGridView1.Refresh();
    Ответ написан
    Комментировать