栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

反序列化接口实例的集合?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

反序列化接口实例的集合?

贝娄完整的工作示例,您想做什么:

public interface ITestInterface{    string Guid { get; set; }}public class TestClassThatImplementsTestInterface1 : ITestInterface{    public string Guid { get; set; }    public string Something1 { get; set; }}public class TestClassThatImplementsTestInterface2 : ITestInterface{    public string Guid { get; set; }    public string Something2 { get; set; }}public class ClassToSerializeViaJson{    public ClassToSerializeViaJson()    {        this.CollectionToSerialize = new List<ITestInterface>();    }    public List<ITestInterface> CollectionToSerialize { get; set; }}public class TypeNameSerializationBinder : SerializationBinder{    public string TypeFormat { get; private set; }    public TypeNameSerializationBinder(string typeFormat)    {        TypeFormat = typeFormat;    }    public override void BindToname(Type serializedType, out string assemblyName, out string typeName)    {        assemblyName = null;        typeName = serializedType.Name;    }    public override Type BindToType(string assemblyName, string typeName)    {        var resolvedTypeName = string.Format(TypeFormat, typeName);        return Type.GetType(resolvedTypeName, true);    }}class Program{    static void Main()    {        var binder = new TypeNameSerializationBinder("ConsoleApplication.{0}, ConsoleApplication");        var toserialize = new ClassToSerializeViaJson();        toserialize.CollectionToSerialize.Add( new TestClassThatImplementsTestInterface1() {     Guid = Guid.NewGuid().ToString(), Something1 = "Some1" });        toserialize.CollectionToSerialize.Add( new TestClassThatImplementsTestInterface2() {     Guid = Guid.NewGuid().ToString(), Something2 = "Some2" });        string json = JsonConvert.SerializeObject(toserialize, Formatting.Indented,  new JsonSerializerSettings {     TypeNameHandling = TypeNameHandling.Auto,     Binder = binder });        var obj = JsonConvert.DeserializeObject<ClassToSerializeViaJson>(json,  new JsonSerializerSettings {     TypeNameHandling = TypeNameHandling.Auto,     Binder = binder  });        Console.ReadLine();    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/452066.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号