我有以下类结构。如果我使用api使用的相同的契约集合(汇编与所有数据类和其他东西),我无法在我的应用程序中反序列化它。
但我需要删除该程序集的依赖项。所以我创建了另一个具有相同命名空间和契约的程序集。
示例:我有很多零件,我可以用这些零件或摩托车装车。
public class Car
{
public string Name {get; set;}
public Dictionary<string,Part> SpareParts {get; set;}
}
public class Part
{
public string PartName {get; set;}
public object Value {get;set;}
public string Type {get;set}
}
现在,我有一个通用查询请求和响应
public class QueryRequest
{
//Stuff.. Request works fine.. i get a response
}
public class QueryResponse
{
public QueryResult[] Result;
}
public classs QueryResult
{
//Other details like entity name n stuff for car or motorcycle etc.
public Part[] Parts;
}
请记住Part Class with Value字段,其中包含List 它就像这样
public class abstract Spoke
{
}
public class Spoke1 : Spoke
{
}
public class Spoke2 : Spoke
{
}
在我的回复中,我得到了这个奇怪的序列化字符串
"Value": {
"$type": "System.Collections.Generic.List`1[[namespace.Spoke, namespace]], mscorlib",
"$values": [
{
"$type": "namespace.spoke2, namespace",
//Other Properties of spoke2
}]
}
编辑:我收到QueryResponse
格式的数据,其中包含QueryResult
n部分
我正在使用Newtonsoft.Json,任何想法如何将其反序列化为我的namespace2.Spoke 我将整个合同复制到另一个程序集中。 我尝试更改名称空间与响应一样,但不起作用。
请提供任何帮助建议。