This question already has answers here:
Convert class to dynamic and add properties
(5个答案)
can one convert a dynamic object to an ExpandoObject (c#)
(2个答案)
How to extend an existing object in c# 4.0 using dynamics
(1个答案)
3年前关闭。
我已经阅读了很多有关如何使用 ExpandoObject 通过添加属性从头开始动态创建对象的信息,但是我还没有发现如何从已经拥有的非动态C#对象开始做同样的事情。
例如,我有一个普通的类:
我想将其转换为ExpandoObject,以便可以根据已有的属性添加或删除属性,而不是从头开始重建相同的对象。这可能吗?
编辑:标记为重复的问题显然不是此问题的重复。
(5个答案)
can one convert a dynamic object to an ExpandoObject (c#)
(2个答案)
How to extend an existing object in c# 4.0 using dynamics
(1个答案)
3年前关闭。
我已经阅读了很多有关如何使用 ExpandoObject 通过添加属性从头开始动态创建对象的信息,但是我还没有发现如何从已经拥有的非动态C#对象开始做同样的事情。
例如,我有一个普通的类:
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public string Address { get; set; }
public string Telephone { get; set; }
}
我想将其转换为ExpandoObject,以便可以根据已有的属性添加或删除属性,而不是从头开始重建相同的对象。这可能吗?
编辑:标记为重复的问题显然不是此问题的重复。
最佳答案
可以这样完成:
var person = new Person { Id = 1, Name = "John Doe" };
var expando = new ExpandoObject();
var dictionary = (IDictionary<string, object>)expando;
foreach (var property in person.GetType().GetProperties())
dictionary.Add(property.Name, property.GetValue(person));
关于c# - 如何将任何C#对象转换为ExpandoObject? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46948289/
10-12 05:25