2

R を nullable int (および ba nullable bool) にしたいと思います。問題は/api/test/1/2ありませんが/api/test/null/2、SerializationExceptionが発生します

KeyValueDataContractDeserializer: Error converting to type: Input string was not in a correct format

やってみ/api/test//2ましたが、二重スラッシュを無視して {Ids} だと思っていました。

Rをnull可能にするにはどうすればよいですか?

[Route("/Test")]
[Route("/Test/{Ids}")]
[Route("/Test/{R}/{E}")]
[Route("/Test/a/{Ids}/{R}/{E}/{b}/{f}")]
public class Test
{
    public long[] Ids { get; set; }
    public int? R{get;set;}
    public int E{get;set;}

    public bool? b { get; set; }
    public float f { get; set; }
}
public class TestService : Service
{
    public object Get(Test a)
    {
        return JsonSerializer.SerializeToString(a);
    }
}
4

1 に答える 1

3

ルート内のnullは、明らかに有効な数値ではない文字列リテラルのように扱われます。基本的に、最初に null を渡すことを避けたい (つまり、指定しないようにする) 必要があります。たとえば、次のようにします。

/api/test/null/2

できるよ:

/api/test?E=2
于 2013-03-29T18:14:54.137 に答える