XML Serialize dynamic object

后端 未结 1 1096
[愿得一人]
[愿得一人] 2020-12-05 00:46

I need to construct a set of dynamically created XML nodes from objects on the following format:


    My Name
    

        
1条回答
  •  萌比男神i
    2020-12-05 01:45

    [Serializable]
    public class DynamicSerializable : DynamicObject, ISerializable
    {
        private readonly Dictionary dictionary = new Dictionary();
    
        public override bool TrySetMember(SetMemberBinder binder, object value)
        {
            dictionary[binder.Name] = value;
    
            return true;
        }
    
        public void GetObjectData(SerializationInfo info, StreamingContext context)
        {
            foreach (var kvp in dictionary)
            {
                info.AddValue(kvp.Key, kvp.Value);
            }
        }
    }
    
    [KnownType(typeof(DynamicSerializable))]
    [DataContract]
    public class Root
    {
        [DataMember]
        public string Name { get; set; }
    
        [DataMember]
        public dynamic DynamicValues { get; set; }
    }
    

    Output:

    
      
        Value 1
        Value 2
      
      My Name
    
    

    0 讨论(0)
提交回复
热议问题