Asp.net core 返回类型为T时如何返回额外消息?

Asp.net core 返回类型为T时如何返回额外消息?,asp.net-core,.net-core,Asp.net Core,.net Core,我有一个功能: public async Task<T> PostAsync<T>(string url,string parameters) { var response=await httpClient.PostAsync(url,data); if(response is null) { return default; } } 公共异步任务PostAsync(字符串url、字符串参数) { var response=

我有一个功能:

public async Task<T> PostAsync<T>(string url,string parameters)
{
    var response=await httpClient.PostAsync(url,data);
    if(response is null)
    {
        return default;
    }
}
公共异步任务PostAsync(字符串url、字符串参数)
{
var response=wait httpClient.PostAsync(url,数据);
if(响应为空)
{
返回默认值;
}
}
如果响应为空,我只能返回默认值。现在我想向T添加额外的消息“response is null”


如何执行此操作?

如果要返回对象和消息,最好创建一个ResponseObject DTO,将它们都作为参数。这样,如果您想要返回错误代码或其他数据,您可以添加额外的信息

比如:

public class ResponseDTO<T>
{
    public T Object { get; set; }
    public string Message { get; set; }
}

public async Task<ResponseDTO<T>> PostAsync<T>(string url,string parameters)
{
    var response=await httpClient.PostAsync(url,data);
    if(response is null)
    {
        return new ResponseDTO<T> {
            Object = default(T),
            Message = "Response is null"
        };
    }

    return new ResponseDTO<T> {
        Object = response
    };

}
公共类响应到
{
公共T对象{get;set;}
公共字符串消息{get;set;}
}
公共异步任务PostAsync(字符串url、字符串参数)
{
var response=wait httpClient.PostAsync(url,数据);
if(响应为空)
{
将新响应返回到{
对象=默认值(T),
Message=“响应为空”
};
}
将新响应返回到{
对象=响应
};
}

我知道你说了什么。但这不方便,对吗?如果我想获取数据,我必须编写response.Object.IdPerhaps,但你只需要将对象分配给新变量,并以这种方式访问。