小编mab*_*o5p的帖子

C# Nullable:使 null 检查依赖于另一个属性/变量

我刚刚在我的 .net core 3.1 项目中启用了 null 检查。

问题是我有一个响应类

public class DecryptResponse
{
    public DecryptStatus Status { get; set; }

    //This is the attribute in question
    [NotNullWhen(Status==DecryptStatus.Ok)]
    public Stream? Stream { get; set; }

    public string? ErrorMessage { get; set; }
}

public enum DecryptStatus
{
    Ok,
    InvalidData,
    KeyChecksumFailure,
    NoData,
    UnhandledError
}
Run Code Online (Sandbox Code Playgroud)

上面的方法用于该Verify方法不允许空值的情况。

但我知道该流不为空,因为DecryptStatus==Ok

if (decryptResponse.Status != DecryptStatus.Ok)
    return (decryptResponse, null);

var verifyResponse = Verify(customerId, decryptResponse.Stream);
return (decryptResponse, verifyResponse);
Run Code Online (Sandbox Code Playgroud)

是否有任何标签允许这种逻辑,或者是否需要对代码进行重大重写?

c# null attributes nullable

11
推荐指数
2
解决办法
4589
查看次数

如何将复杂的类作为参数传递给httpget

我希望能够将复杂类型作为HttpGet方法的参数来处理。

当api方法不使用任何参数时,方法pickNFirstElements起作用,但是当我尝试传递对象时,方法不起作用。

我有一个想法,我需要通知ajax查询该数据是单个对象,但是我不知道该怎么做,因为我认为那是TodoItem类中BindProperties标记的重点。

[HttpGet]
        [Route("search")]
        public async Task<ActionResult<TodoItem>> GetMatchingTodoItem([FromQuery]TodoItem todo)
        {
            // var name = todo.Name;
            // var completed = todo.IsComplete;
            return await _context.TodoItems.FirstAsync();
        }
Run Code Online (Sandbox Code Playgroud)
function pickNFirstElements() {
    const item = {
        Name: "dope",
        IsComplete: false,
        Id: 2
    }
    $.ajax({
        type: "GET",
        url: uri+"/search",
        data: { name: item.Name, isComplete: item.IsComplete, Id: Item.Id },
        cache: false,
        success: function (return1) {
            alert(return1.name);
        }
    })
};
Run Code Online (Sandbox Code Playgroud)
namespace TodoApi.Models
{
    [Microsoft.AspNetCore.Mvc.BindProperties(SupportsGet =true)]
    public class TodoItem
    {
        public long Id { get; set; }
        public …
Run Code Online (Sandbox Code Playgroud)

c# ajax rest http-get asp.net-core

5
推荐指数
1
解决办法
508
查看次数

标签 统计

c# ×2

ajax ×1

asp.net-core ×1

attributes ×1

http-get ×1

null ×1

nullable ×1

rest ×1