Функции Azure: аннотацию для ссылочных типов, допускающих значение NULL, следует использовать только в коде в контексте C#

Место общения программистов C#
Ответить
Anonymous
 Функции Azure: аннотацию для ссылочных типов, допускающих значение NULL, следует использовать только в коде в контексте

Сообщение Anonymous »

Я получаю это предупреждение в этой строке в своем проекте «Функции Azure» в коде Visual Studio:

Код: Выделить всё

Dictionary? jsonDict = null;
Аннотации для ссылочных типов, допускающих значение NULL, следует использовать только в коде в контексте аннотаций #nullable.

У меня один и тот же код в трех разных функциях, и поэтому я получаю одно и то же предупреждение три раза.
Я уже пытался добавить следующую строку в свой файл .csproj, но во многих случаях я получаю гораздо больше предупреждений больше строк кода. Как решить проблему? Потому что включение Nullable только усугубляет ситуацию.

Код: Выделить всё

using System;
using System.Threading.Tasks;
using System.Text.Json;
using System.Collections.Generic;
using PlayFab;
using PlayFab.AdminModels;
using System.IO;
using System.Net;
using PlayFab.Samples;
using System.Linq;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Azure.Functions.Worker.Http;
using Microsoft.Extensions.Logging;

namespace My.Functions
{
public class Result
{
public bool FunctionSuccessful { get; set; }
public string Errorline1 { get; set; }
public string Errorline2 { get; set; }
public string Errorline3 { get; set; }
public string Errorline4 { get; set; }
public string Errorline5 { get; set; }
public string Errorline6 { get; set; }
public bool Isexpired { get; set; }
public bool Isbanned { get; set; }
}

public class NewFunction
{
private readonly ILogger log;

// Constructor injects the logger
public NewFunction(ILogger logger)
{
log = logger;
}
[Function("GetNameFromClient")]
public async Task GetNameFromClient(
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequestData req)
{
// Read JSON body
string jsonStr = await new StreamReader(req.Body).ReadToEndAsync();
Dictionary? jsonDict = null;
if (!string.IsNullOrWhiteSpace(jsonStr))
{
try
{
jsonDict = JsonSerializer.Deserialize(jsonStr);
}
catch (JsonException ex)
{
log.LogWarning(ex, "Invalid JSON body.");
}
}

....

log.LogInformation($"FunctionSuccessful: = {updateaccountrecsuccessful}");
var result2 = new Result
{
FunctionSuccessful = updateaccountrecsuccessful,
Errorline1 = string.Empty,
Errorline2 = string.Empty,
Errorline3 = string.Empty,
Errorline4 = string.Empty,
Errorline5 = string.Empty,
Errorline6 = string.Empty,
Isexpired = isexpired,
Isbanned = isbanned
};
var res2 = req.CreateResponse(HttpStatusCode.OK);
res2.Headers.Add("Content-Type", "application/json");
await res2.WriteStringAsync(JsonSerializer.Serialize(result2));
return res2;
}
}
}
На этом рисунке я включил Nullable:
Изображение

На этом рисунке я не включил Nullable:
Изображение


Подробнее здесь: https://stackoverflow.com/questions/798 ... ly-be-used
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»