[英]Why does this service return null when return value is not null?
不知道為什么會這樣。
在 SaveRole() 方法中,當我嘗試 hover 並查看調試時的值時,此行始終在 apiResponse 變量上顯示 null。
var apiResponse = await RoleUiService.CreateAsync(createRoleRequest);
即使它實際上設置了 _messages 的值,但在設置此值之后。 調試器仍將 apiResponse 顯示為 null。
if (apiResponse.StatusCode != HttpStatusCode.BadRequest)
{
NavigationManager.NavigateTo("/RoleManagement/Roles",false);
}
else
{
_messages = apiResponse.ResponseMessages;
}
public class HttpService
{
public async Task<ApiResponse<T>> HttpPostAsync<T>(string uri, object dataToSend) where T : class
{
var content = ToJson(dataToSend);
var apiURL = $"{_apiBaseUrl}{uri}";
var result = await _httpClient.PostAsync(apiURL, content);
return await FromHttpResponseMessageAsync<T>(result);
}
}
public class RoleUiService
{
private readonly IHttpService _httpService;
public RoleUiService(IHttpService httpService)
{
_httpService = httpService;
}
private async Task SaveRole()
{
//Debugger always shows apiResponse as null even when _messages
gets a value from apiResponse.ResponseMessages
var apiResponse = await
RoleUiService.CreateAsync(createRoleRequest);
if (apiResponse.StatusCode != HttpStatusCode.BadRequest)
{
NavigationManager.NavigateTo("/RoleManagement/Roles",false);
}
else
{
_messages = apiResponse.ResponseMessages;
}
}
//Blazor wasm component code
public partial class CreateOrEditRole
{
[Inject]
public IRoleUiService RoleUiService { get; set; }
public async Task<ApiResponse<CreateRoleResponse>>
CreateAsync(CreateRoleRequest createRoleRequest)
{
var result = await _httpService.HttpPostAsync<CreateRoleResponse>
(CreateRoleRequest.Route,
createRoleRequest);
return result;
}
}
//Services registered in PROGRAM.cs
builder.Services.AddScoped<IHttpService, HttpService>();
builder.Services.AddScoped<IRoleUiService, RoleUiService>();
感謝您的回復,請查看屏幕截圖。 即使從 apiResponse 中提取了一個值並將其分配給一個變量,object 仍然報告為 null。
這是一個可能的原因。
看圖,正好在那個時候,name還沒有被改變,每前進一步就會發生改變,name變量賦值的那一行不再高亮。
在這篇文章中,只是在這張圖片下面說:
Hover 查看 name 變量的當前值,這是一個空字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.