ありがとうルーカス。したがって、複雑なタイプを含めるために質問を少し言い直します:-
{"メソッド":"mymethod","パラメーター":[10,"somestring",{SomeProperty:値}]}
これは、JSON RPC call mymethod(int,string,ComplexProperty) の呼び出しを表します。
The code is:-
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
using System.Text;
using System.Threading.Tasks;
namespace JSONConsoleApplication4
{
class Program
{
[DataContract]
public class ComplexType
{
[DataMember]
public string SomeProperty { get; set; }
}
[DataContract]
public class GenericRequest
{
[DataMember]
public string method { get; set; }
[DataMember]
public object[] parameters { get; set; }
}
static void Main(string[] args)
{
MemoryStream ms = new MemoryStream();
DataContractJsonSerializerSettings settings =
new DataContractJsonSerializerSettings() { EmitTypeInformation=EmitTypeInformation.Never,
KnownTypes=new Type[] { typeof(ComplexType) } };
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(GenericRequest),settings);
serializer.WriteObject(ms,
new GenericRequest() { method = "mymethod",
parameters = new object[] { 10, "somestring", new ComplexType() { SomeProperty="value"}} });
ms.Position = 0;
string v = new StreamReader(ms).ReadToEnd();
}
}
}