我从不同的来源获取 json 格式的数据,并试图将它们映射到实现相同接口的对象。
json 变量在提要 1 中看起来像这样:
{"identifier": 232, "type": "Feed1"}
我正在使用这个对象对其进行序列化:
[DataContract]
public class Class A : InterfaceA
{
[DataMember(Name = "identifier")]
public int Id{ get; set; }
[DataMember(Name = "type")]
public FeedType Type { get; set; }
}
[DataContract]
public enum FeedType
{
[EnumMember(Value = "Feed1")]
FeedA,
[EnumMember(Value = "Feed2")]
FeedB,
[EnumMember(Value = "Feed3")]
FeedC
}
界面如下所示:
public interface InterfaceA
{
int Id {get;set;}
FeedType Type{get;set;}
}
在提要 2 中,对象如下所示:
{"identifier": 232, "feedType": "A"}
如何创建另一个实现相同接口并返回相同枚举的对象?如何设置 DataContract?
编辑:
我像这样序列化它
var serializer = new DataContractJsonSerializer(ClassA);
var ms = new MemoryStream(Encoding.Unicode.GetBytes(json));
var serializedObject = serializer.ReadObject(ms);