Вопросы с тегом «c#»

C # (произносится как «видеть резкое») - это статически типизированный, многопарадигмальный язык программирования высокого уровня, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, в том числе .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном в формальной спецификации C # или C #.

3
ILoggerFactory не содержит определения для AddConsole
private ILoggerFactory ConfigureLogging(ILoggerFactory factory) { factory.AddConsole(); return factory; } Я нашел фрагмент кода выше на Github . Это дает следующую ошибку: 'ILoggerFactory' does not contain a definition for 'AddConsole' and the best extension method overload 'ConsoleLoggerExtensions.AddConsole(ILoggingBuilder)' requires a receiver of type 'ILoggingBuilder' Я использую NET Core 3.0, и у меня …
21 c#  nuget  core  discord.net 

3
Наилучшая практика использования Nullable Reference Types для DTO
У меня есть DTO, который заполняется чтением из таблицы DynamoDB. Скажем, сейчас это выглядит так: public class Item { public string Id { get; set; } // PK so technically cannot be null public string Name { get; set; } // validation to prevent nulls but this doesn't stop database …

4
Правильный способ обработки исключений в AsyncDispose
При переходе на новые .NET Core 3 IAsynsDisposableя наткнулся на следующую проблему. Суть проблемы: если DisposeAsyncвыбрасывает исключение, это исключение скрывает любые исключения, созданные внутри await using-блока. class Program { static async Task Main() { try { await using (var d = new D()) { throw new ArgumentException("I'm inside using"); } …

2
Как заменить расширение AddJwtBearer в .NET Core 3.0
У меня есть следующий код, который компилируется и работает в .NET Core 2.2: byte[] key = Encoding.ASCII.GetBytes(Constants.JWT_SECRET); services.AddAuthentication(x => { x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }) .AddJwtBearer(x => { x.RequireHttpsMetadata = false; x.SaveToken = true; x.TokenValidationParameters = new TokenValidationParameters { ValidateIssuerSigningKey = true, IssuerSigningKey = new SymmetricSecurityKey(key), ValidateIssuer = …

5
ASP.NET Core 3.0 System.Text.Json Сериализация с верблюжьим корпусом
В проекте ASP.NET Core 3.0 Web API как указать параметры сериализации System.Text.Json для сериализации / десериализации свойств Pascal Case в Camel Case и наоборот автоматически? Дана модель со свойствами Pascal Case, такими как: public class Person { public string Firstname { get; set; } public string Lastname { get; set; …

2
Почему компилятор C # допускает дублирование переменной во вложенной области видимости?
Исторически при разработке в .Net я не мог дублировать имя переменной во вложенной области видимости. Однако после недавнего обновления Visual Studio 2019 до версии 16.4.2 я заметил, что имена переменных могут дублироваться во вложенной области видимости. Например: var test = "hello"; Console.WriteLine(test); var things = new []{"one", "two", "three"}; things.Select(test …

1
Преобразовать IAsyncEnumerable в Список
Итак, в C # 8 мы получили дополнение IAsyncEnumerableинтерфейса. Если у нас есть нормальный, IEnumerableмы можем сделать из него Listили почти любую другую коллекцию, которую мы хотим. Благодаря Linq там. var range = Enumerable.Range(0, 100); var list = range.ToList(); Ну, теперь я хочу преобразовать мой IAsyncEnumerableв Listи это, конечно, асинхронно. …


2
Потеря точности JavaScript в C #
При сериализации и десериализации значений между JavaScript и C # с использованием SignalR с MessagePack я вижу небольшую потерю точности в C # на принимающей стороне. В качестве примера я посылаю значение 0,005 из JavaScript в C #. Когда десериализованное значение появляется на стороне C #, я получаю значение 0.004999999888241291, …

2
Как использовать C # 8.0 обнуляемые ссылочные типы с базовыми моделями Entity Framework?
Я включаю C # 8.0 Обнуляемые ссылочные типы в проекте .NET Core 3.0. Проект использует Entity Framework Core 3.0 для доступа к базе данных. Ниже приведена модель данных, название которой не должно быть нулевым. public class Vehicle { public int Id { get; private set; } public string Title { …

3
Как избежать нарушения принципа СУХОЙ, когда вам нужны как асинхронные, так и синхронизированные версии кода?
Я работаю над проектом, который должен поддерживать как асинхронную, так и синхронизированную версию одной и той же логики / метода. Так, например, мне нужно иметь: public class Foo { public bool IsIt() { using (var conn = new SqlConnection(DB.ConnString)) { return conn.Query<bool>("SELECT IsIt FROM SomeTable"); } } public async Task<bool> …
15 c#  .net  asynchronous 

1
Как использовать .NET отражение для проверки обнуляемого ссылочного типа
C # 8.0 вводит обнуляемые ссылочные типы. Вот простой класс с обнуляемым свойством: public class Foo { public String? Bar { get; set; } } Есть ли способ проверить свойство класса использует обнуляемый ссылочный тип через отражение?

2
Не возникает ли исключение при открытии MySqlConnection?
Я только начинаю с async и Task, и мой код перестал обрабатываться. Это происходит, когда у меня есть входящий сетевой пакет, и я пытаюсь связаться с базой данных внутри обработчика пакетов. public class ClientConnectedPacket : IClientPacket { private readonly EntityFactory _entityFactory; public ClientConnectedPacket(EntityFactory entityFactory) { _entityFactory= entityFactory; } public async …
14 c#  mysql 

3
Почему продолжения Task.When Все выполняются синхронно?
Я только что сделал любопытное замечание относительно Task.WhenAllметода при работе на .NET Core 3.0. Я передал простую Task.Delayзадачу в качестве единственного аргумента Task.WhenAllи ожидал, что завернутая задача будет вести себя идентично исходной задаче. Но это не так. Продолжения исходной задачи выполняются асинхронно (что желательно), а продолжения кратныTask.WhenAll(task) оболочек выполняются синхронно …

2
Могу ли я сказать C # обнуляемым ссылкам, что метод по сути является пустой проверкой на поле
Рассмотрим следующий код: #nullable enable class Foo { public string? Name { get; set; } public bool HasName => Name != null; public void NameToUpperCase() { if (HasName) { Name = Name.ToUpper(); } } } На Name = Name.ToUpper () я получаю предупреждение, что Name - это возможная нулевая ссылка, …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.