当前位置: 首页 > 知识库问答 >
问题:

Azure函数自定义类请求正文-无参数-无构造函数/无效强制转换字符串->guid

归俊捷
2023-03-14

我有一个azure函数,看起来像:

    [FunctionName("AddMaterial")]
    public static async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "post", Route = null)]AddMaterialCommand command, 
        ILogger log, [Inject(typeof(IMediator))]IMediator mediator)
    {
        log.LogInformation("AddMaterial Function is processing a request");

        var events = await mediator.Send(command);
        if (events != null)
        {
            await mediator.Publish(events);
            return (ActionResult)new OkObjectResult(events);
        }
        return new BadRequestObjectResult(new { message = "Please check that WarehouseId, RollPoNumber, RollNumber, Location and RollWeight are included in request" });
    }

该函数使用自定义对象AddMaterialCommand作为每个文档的请求。

自定义对象类如下所示:

{
    [DataContract]
    public class AddMaterialCommand : IRequest<EventList>
    {
        [DataMember]
        public Guid WarehouseId { get; set; } 
        [DataMember]
        public int RollPoNumber { get; set; }
        [DataMember]
        public DateTime? DateRecieved { get; set; }

        public AddMaterialCommand(Guid warehouseId, int rollPoNumber,  DateTime dateRecieved)
        {
            WarehouseId = warehouseId;
            RollPoNumber = rollPoNumber;
            Location = location;
            DateRecieved = dateRecieved;
        }
}

这是怎么回事?

我的最佳猜测是请求的主体没有被读取,并且空值引发了无效的强制转换异常。我仍然不知道为什么我需要一个paramaterless构造器。在使用[FromBody]绑定之前,我在使用azure函数之前没有这个问题,但我认为我不能将这个绑定与azure函数一起使用。

共有1个答案

范安歌
2023-03-14

我最终只是用httpRequestMessage替换自定义类,并在函数中创建命令,如下所示

动态命令=await req.content.readAsAsync ();

仍然希望只使用自定义类作为函数的参数,但是哦,好吧。

 类似资料:
  • 我正在浏览hibernate留档,文档说hibernate需要为我们所有的持久类提供一个no-arg构造函数: 无参数构造函数是所有持久类的要求;Hibernate必须使用Java反射为您创建对象。构造器可以是私有的,但是在没有字节码插装的情况下,运行时代理生成和有效的数据检索需要包或公共可见性。 但是当我通过创建一个没有任何无参数构造函数的POJO类并放置一个接受参数的构造函数来创建一个示例程序

  • 我正在尝试在jdbc中创建数据库的池连接,下面是我的代码,但我得到了 错误: 组织。springframework。豆。工厂UnsatifiedDependencyException:创建名为“org”的bean时出错。springframework。jdbc。数据源。在类路径资源[资源/数据库/数据库.xml]中定义的DriverManager数据源#0]:通过索引为0的类型为[java.lan

  • 最近,我将Paho MQTT Spy项目导入Eclipse。导入结束时出现错误: 为什么我会收到这条信息,这意味着什么?怎么修? 我正在使用Java13.0.1 我试图用maven构建项目,得到了同样的错误。 我添加了下面的依赖项到pom.xml 现在pom.xml如下所示: Maven给出了错误: UPD Java8解决了问题,但我仍然试图使java 13与它一起工作。 正在尝试使用下面定义的p

  • 我有两个类, 并且它只是抛出异常,似乎没有分配。为什么?

  • 我试图构建一个包含getter和setter的构造函数,除了在参数中调用它之外,这些构造函数似乎对我的所有属性都很好。 当我读到这行代码时: 然后在控制台中出现以下错误: 构造函数flip(String)未定义构造函数flip(String)未定义 也许我错过了什么?

  • 在经历冬眠3时。x文档我知道我们也可以为具有私有可见性的POJO声明一个无arg构造函数,但文档说它有限制: 无参数构造函数是所有持久类的要求;Hibernate必须使用Java反射为您创建对象。构造器可以是私有的,但是在没有字节码插装的情况下,运行时代理生成和有效的数据检索需要包或公共可见性。 我不熟悉Hibernate,我试图了解何时使用运行时代理,何时使用字节码,以及这在Hibernate中