c#中带有变量的动态对象

Ski*_*ner 2 c# dynamic

是否可以构建将属性名称设置为变量值的动态对象?

例如,这似乎是标准的......

dynamic elem = new Object();
elem.Name = "myName";
Run Code Online (Sandbox Code Playgroud)

但这将如何实施?...

string fn = "FirstName";
string ln = "LastName";
dynamic elem = new Object();
elem.fn = "John";
elem.ln = "Doe";
Run Code Online (Sandbox Code Playgroud)

我可以在哪里调用属性,例如...

string fn = elem.FirstName;
Run Code Online (Sandbox Code Playgroud)

Ale*_*ith 5

ExpandoObject 还实现了IDictionary<string, object>,这意味着您可以使用字符串键添加属性。

dynamic person = new ExpandoObject();

person.FirstName = "Alex";
var ln = "lastname";

(person as IDictionary<string, Object>)[ln] = "KeySmith";
Run Code Online (Sandbox Code Playgroud)