変数オブジェクト型をコンストラクタの引数として渡す必要があり、構築するメソッドから変数型を返す必要があります。説明するのは難しいので、おそらくコードはより良い仕事をするでしょう。変数型をコンストラクタに渡し、渡された型と同じ型を返します
オブジェクト型をコンストラクタに渡すために、私はこれを試しました。私もこれを試してみました
public class AsyncConnector<T>
{
NisConnection Connection = null;
public AsyncConnector(NisConnection connection)
{
Connection = connection;
}
public async Task<T> Get(string uri)
{
var response = await Connection.Client.GetAsync(Connection.FullUri(uri));
return JsonConvert.DeserializeObject<T>(
JObject.Parse(await response.Content.ReadAsStringAsync()).ToString()
);
}
}
:
public async Task<BlockData.Block> Last()
{
return await new AsyncConnector<BlockData.Block>(Connection).Get(
"/chain/last-block"
);
}
、それを受け取るために、私はこれを行う
public async Task<BlockData.Block> Last()
{
return await new AsyncConnector(Connection).Get<BlockData.Block>(
"/chain/last-block"
);
}
public class AsyncConnector
{
NisConnection Connection = null;
public AsyncConnector(NisConnection connection)
{
Connection = connection;
}
public async Task<T> Get<T>(string uri)
{
var response = await Connection.Client.GetAsync(Connection.FullUri(uri));
return JsonConvert.DeserializeObject<T>(
JObject.Parse(await response.Content.ReadAsStringAsync()).ToString()
);
}
}
GetAsync
方法は同じように動作する必要がありますが、多くの異なるオブジェクトのためのタイプ。
私は入れませんエラーです:型「Microsoft.CSharp.RuntimeBinder.RuntimeBinderException」の例外ががmscorlib.dllで発生したが、ユーザーコードで
追加情報を扱っていなかった
:タイプを変換できません。 「NemApi.DTOs.BlockObjects.BlockData.Block」から「Newtonsoft.Json.Linq.JObject」
「JObject」として解析することなく文字列を直接デシリアライズできますか? – Hendry
どういう意味ですか? – netnoob
JObjectや文字列から逆シリアル化されているかどうかに関係なく、逆シリアル化する型を知らないという問題があります。 – netnoob