4
我想将一个.NET类序列化为JSON,其中包含属性,该属性是泛型类型的泛型列表。JSON序列化:类包含泛型类型的通用集合
我的泛型类型定义如下:
public interface IFoo {}
public class Foo<T>: IFoo
{
public string Name {get; set;}
public string ValueType {get; set;}
public T Value {get; set:}
public Foo(string name, T value)
{
Name = name;
Value = value;
ValueType = typeof(T).ToString();
}
}
然后,如下:
public class Fum
{
public string FumName {get; set;}
public list<IFoo> Foos {get; set;}
}
我创建实例如下:
myFum = new Fum();
myFum.FumName = "myFum";
myFum.Foos.Add(new Foo<int>("intFoo", 2);
myFum.Foos.Add(new Foo<bool>("boolFoo", true);
myFum.Foos.Add(new Foo<string>("stringFoo", "I'm a string");
然后...
我试图克使用NewtonSoft JSON库来序列如下:对于每个富实例 正确序列
string strJson = JsonConvert.SerializeObject(data,
Formatting.Indented, new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Include,
TypeNameHandling = TypeNameHandling.All,
TypeNameAssemblyFormat = FormatterAssemblyStyle.Simple
});
在所得JSON字符串,名称和值类型属性 - 然而,值始终从输出省略:
{
"FumName": "myFum",
"Foos" : [
{
"Name": "intFoo",
"ValueType": "System.Int32"
},
{
"Name": "boolFoo",
"ValueType": "System.Boolean"
},
{
"Name": "stringFoo",
"ValueType": "System.String"
}
]
}
任何人都可以提出一种方法,这将允许我正确地序列化 泛型类型实例的列表,使Value属性包含在内?