私は自分のコントローラ(ASP.NETコア)のテストを書いており、JSONを受け取っています。私は今返されたデータに対していくつかのアサーションを行うことができるように、正しいオブジェクトに逆シリアル化したいと思います。逆シリアル化中に例外がスローされることはありませんが、私のData
変数はnullです。ここでJSONジェネリック型にデシリアライズ
は、直列化復元に使用するコードです:
var output = JsonConvert.DeserializeObject(responseString,
typeof(CrudOperationResult<IEnumerable<ApiResource>>));
これはCrudOperationResultクラスです:
public class CrudOperationResult<T>
{
private CrudOperationResult()
{ }
private CrudOperationResult(CrudResult result, string errorMessage, T data)
{
Result = result;
ErrorMessage = errorMessage;
Data = data;
}
[JsonIgnore]
public CrudResult Result { get; private set; }
public bool IsError
{
get
{
return Result == CrudResult.Error;
}
}
public string ErrorMessage { get; private set; }
public T Data { get; private set; }
}
そして、ここでJSONデータが返されます。
を{
"isError": false,
"errorMessage": null,
"data": [{
"id": 1,
"enabled": true,
"name": "apiResource1",
"displayName": "My API",
"description": null,
"secrets": null,
"scopes": [{
"id": 1,
"name": "apiResource1",
"displayName": "My API",
"description": null,
"required": false,
"emphasize": false,
"showInDiscoveryDocument": true,
"userClaims": null
}],
"userClaims": [{
"id": 1,
"type": "role"
},
{
"id": 2,
"type": "user"
}]
}]
}
これは関連していないかもしれないが、私はすべての単一のコンストラクタはプライベートであるため、あなたがCrudOperationResultを作成することができますどのように見ることができません... – Aboc