2

オブジェクトのタイプを動的に決定し、ジェネリックでタイプを使用するためにこれがどのように/なぜ機能しないかを誰かが説明できることを願っています。

タイプとして明示的にハードコードされた DateTime を指定しているため、これは機能します。

string serializedObject = JsonConvert.SerializeObject(exampleObject);
Type dataType = exampleObject.GetType();
JObject jObject = JObject.Parse(serializedObject);
jObject.Value<DateTime>("propertyName");

ただし、これらはどちらも機能していないようです。

jObject.Value<typeof(dateType)>("propertyName");
jObject.Value<dateType>("propertyName");

ここでプロパティのタイプを正しく指定するにはどうすればよいですか:

jObject.Value<{WHAT SHOULD I PUT HERE}>("propertyName");
4

1 に答える 1

0

dataType実行時に決定しているため、機能しませんがValue<>、コンパイル時に型を知る必要があります。1Value<T>つには、あるべきものに制約がある可能性があり、何がどうなるかわからない場合T、コンパイル時にこれらのチェックを実行できません。dataTypedataType

コレクションを扱っていますが、一般的に実行時に決定されるジェネリックパラメーターに適用されますが、達成しようとしていることに対処するいくつかの答えを次に示します。実行時に ジェネリックコレクションタイプのパラメーターを指定する

あなたの "{WHAT SHOULD I PUT HERE}" は、ジェネリック パラメータと呼ばれるものであることに注意してください。

于 2012-11-12T06:06:38.527 に答える