我在Windows应用程序中有一些类:
[DataContract]
public class Function
{
[DataMember(Name = "params")]
public Params Parametrs { get; set; }
}
[DataContract]
public class Params
{
[DataMember(Name = "params1")]
public bool Params1 { get; set; }
[DataMember(Name = "params2")]
public string Params2 { get; set; }
[DataMember(Name = "params3")]
public MyClass Params3 { get; set; }
}
public string GetRequestString(Params parametrs)
{
Function func = new Function()
{
Parametrs = parametrs
};
string json = JsonConvert.SerializeObject(func);
return json;
}
Params params = new Params()
{
Params1 = true,
Params2 = "MyString",
Params3 = myClassObject,
}
var json = GetRequestString(params);我的问题是Params1、Params2等会有不同的类型。我不能在一节课上定义它。
我可以将一组参数、类型、键传递给函数并在JSON中序列化吗?
这与JsonConvert是可能的吗?
发布于 2013-10-22 09:31:28
由于c#是一种强类型语言,它要求在编译时定义属性的类型。但是,如果需要动态对象,则可以使用Object基类。但是,在使用之前,您可能需要将它们转换为相关类型。
[DataContract]
public class Params
{
[DataMember(Name = "params1")]
public object Params1 { get; set; }
[DataMember(Name = "params2")]
public object Params2 { get; set; }
[DataMember(Name = "params3")]
public object Params3 { get; set; }
}
Params param = new Params()
{
Params1 = true,
Params2 = "MyString",
Params3 = new Object(),
};
var json = GetRequestString(param);发布于 2013-10-22 09:26:32
jsonconvert可以在这里序列化它,尝试使用属性名来确定Name=的数据“例如:
[DataMember(Name = "Params1")]
public bool Params1 { get; set; }https://stackoverflow.com/questions/19512714
复制相似问题