defmodule Test do
def add(a, b, c) do
a + b + c
end
end
apply(Test, :add, [1, 2, 3])
我正在尝试使用servicestack创建服务。 RequestDTO有两个属性(module FileUploadService =
type FileDetails() =
member val fileName= string with get,set
interface IRequiresRequestStream with
member val RequestStream = null with get,set
type FileService() =
inherit Service()
interface IService
member this.Post(request : FileDetails ) =
//My Logic
//can not able to read "request.fileName" property value.
)。
我想读取fileName and RequestStream
属性的值,它显示的值为request.fileName
。我不明白为什么每次都显示ctor@25
值。
编辑 - 下面的代码是在客户端编写的。
ctor@25
答案 0 :(得分:1)
当您使用IRequiresRequestStream
装饰您的Request DTO时,您告诉ServiceStack不要自己taking over deserializing the Request Stream读取请求正文。但是,它仍会尝试使用请求提交的其余Request参数填充Request DTO。
如果没有看到实际的HTTP请求,我无法判断fileName
是否也包含在HTTP请求中,但如果这是multipart / formdata请求,则fileName
为included in the HTTP Headers
但如果是multipart/formdata
请求请勿 use IRequiresRequestStream to read the request。 IRequiresRequestStream仅在将原始字节流发布到URL时才有意义,它不适用于处理multipart/formdata
,它应使用base.Request.Files
专门用于处理multipart/formdata
请求,并包含对其他元数据的访问权限使用文件上传发布。