Поддержка FromQuery в Azure Функции v3 - PullRequest
2 голосов
/ 03 марта 2020

Я пытаюсь использовать [FromQuery] с Azure Функция v3, но получаю следующую ошибку:

Невозможно привязать параметр 'search' к типу String.

для следующего метода

[FunctionName("GetObjects")]
        public ActionResult<IActionResult> QueryObjects(
            [HttpTrigger(AuthorizationLevel.Function, "GET", Route = "objects")]
            HttpRequest req,
            ILogger log,
            [FromQuery] string search = null)
        {
            //do some stuff
}

Не поддерживается [FromQuery]? Должен ли я использовать req.Query["search"] для получения параметра запроса?

Из functions.desp. json

Связано с привязкой

 "Microsoft.Extensions.Configuration.Binder/3.1.1": {
        "dependencies": {
          "Microsoft.Extensions.Configuration": "3.1.2"
        },
        "runtime": {
          "lib/netcoreapp3.1/Microsoft.Extensions.Configuration.Binder.dll": {
            "assemblyVersion": "3.1.1.0",
            "fileVersion": "3.100.119.61404"
          }
        }
      },

Ответы [ 2 ]

2 голосов
/ 04 марта 2020

Если вы хотите связать это напрямую, это невозможно. Таким образом, вы можете попытаться изменить свой маршрут, например Function1/name={name}&research={research}, а затем привязать его к строковому параметру.

Ниже приведен мой тестовый код:

 [FunctionName("Function1")]
        public static async Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = "Function1/name={name}&research={research}")] HttpRequest req,String name, String  research,

            ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");
            log.LogInformation(research);

            string responseMessage = $"Hello, {name}. This HTTP triggered function executed successfully.";

            return new OkObjectResult(responseMessage);
        }

enter image description here

2 голосов
/ 04 марта 2020

Это то, с чем вы сталкиваетесь сейчас:

enter image description here

Сигнатуры методов, разработанные библиотекой классов azure function C #, могут включать в себя:

ILogger или TraceWriter для ведения журнала (только версия v1)

Параметр CancellationToken для плавного завершения работы

Пометить привязки ввода и вывода с помощью оформления атрибута

Привязка параметров выражений для получения метаданных триггера

С это сделать c, похоже, это не поддерживается. Вы можете создать свою собственную привязку, например this , и не забудьте зарегистрировать ее при запуске.

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