【发布时间】:2022-07-14 22:58:06
【问题描述】:
我有一个字符串,我需要将其反序列化为一组对象,所有对象都继承同一个基类。
我的问题是,在我反序列化为基类集合后,编译器无法将每个项目识别为相关的具体对象。
这是我的代码:
public BaseClass // can be abstract
{
int propA {get; set;}
}
public ExtendedBaseClassA : BaseClass
{
int propB {get; set;}
int propC {get; set;}
}
public ExtendedBaseClassB : BaseClass
{
int propD {get; set;}
int propE {get; set;}
}
void Deserialize(string serializeMessage)
{
IEnumerable<BaseClass> objects = JsonSerializer.Deserialize<IEnumerable<BaseClass>>
(serializeMessage);
foreach(BaseClass item in objects)
{
if (item is ExtendedBaseClassA) //never
{
}
if (item is ExtendedBaseClassB) //never
{
}
}
}
还有其他方法吗?
【问题讨论】:
标签: c# inheritance casting deserialization jsonserializer