目前我有一个这样的列表:
List<CaseTest> ct = new List<CaseTest>();
我的CaseTest
是一个持有Test
的对象:
public class CaseTest
{
[DataMember]
public ITest Test;
}
ITest
是factory
,有两种不同类型的测试:
他们有相似和不同的属性,但我认为这个问题并不重要。
当我将List<CaseTest>
序列化为JSON时,就像这样:
using (MemoryStream memStream = new MemoryStream())
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(List<CaseTest>));
ser.WriteObject(memStream, ct);
memStream.Position = 0;
using (StreamReader sr = new StreamReader(memStream))
{
var testing = sr.ReadToEnd();
}
}
var testing
将ct
内的所有内容输出为JSON对象。我的意思是一切!这是这样的(仅使用MultipleChoice测试:
"[{\"Test\": {\"__type\":\"MultipleChoice:#TestApp.FileUpload.Models\",
\"Comments\":\"\",
\"Grade\":\"92\",
\"Student\":\"14\",
\"StudentPassed\":true}}]"
我甚至不确定为什么{\"__type\":\"MultipleChoice:#TestApp.FileUpload.Models\",
甚至显示真的,除了它是父母之前我在调试时可以看到任何我的实际属性。
我真的只想将Comments, Grade, Student, and StudentPassed
作为一个对象而不是别的。我不需要知道它是否是多项选择。只是物理数据。对不起,如果这没有意义。我正在尽我所能,非常欢迎填补空白。任何人都可以提供一些帮助/输入吗?
修改
请注意,我希望继续使用DataContractJsonSerializer
。