Я получаю сообщение об ошибке в проекте функций Azure в общедоступном классе. Переход на статический класс не работаетC#

Место общения программистов C#
Ответить
Anonymous
 Я получаю сообщение об ошибке в проекте функций Azure в общедоступном классе. Переход на статический класс не работает

Сообщение Anonymous »

Я получаю сообщение об ошибке. Метод расширения должен быть определен в неуниверсальном статическом классе в моем проекте функции Visual Studio Code Azure. Но я не могу изменить общедоступный класс NewFunction на общедоступный статический класс NewFunction, потому что тогда я получаю сообщение об ошибке «NewFunction.log»: невозможно объявить элементы экземпляра в статическом классе в этой строке частного журнала ILogger только для чтения;.
Как я могу решить эту проблему?
NewFunction.cs:
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;

public NewFunction(ILogger logger)
{
log = logger;
}

[Function("ChangeDisplayname")]
public async Task ChangeDisplayname(
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequestData req)
{
log.LogInformation("ChangeDisplayname HTTP trigger started.");

FunctionExecutionContext context = JsonSerializer.Deserialize(await req.ReadAsStringAsync());
var args = context.FunctionArgument;
string language = args["Language"];
string desireddisplayname = args["NewDisplayname"];
log.LogInformation($"The new displayname = {desireddisplayname}");

string isdisplaynamevalid = VerifyDisplayname(desireddisplayname);
if (isdisplaynamevalid == "true")
{
}
else
{
}

var result = new Result
{
FunctionSuccessful = functionsuccessful,
Errorline1 = string.Empty,
Errorline2 = string.Empty,
Errorline3 = string.Empty,
Errorline4 = string.Empty,
Errorline5 = string.Empty,
Errorline6 = string.Empty,
Isexpired = isexpired,
Isbanned = isbanned
};
var res = req.CreateResponse(HttpStatusCode.OK);
res.Headers.Add("Content-Type", "application/json");
await res.WriteStringAsync(JsonSerializer.Serialize(result));
return res;
}

public static string VerifyDisplayname(this string text)
{
string displaynamemessage = "Error.";
...

return displaynamemessage;
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/798 ... ng-to-a-st
Ответить

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

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

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

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

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