さまざまなソースから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);