动态地将Dictionary KVP加载到匿名类型中

时间:2011-09-22 17:47:32

标签: c# dictionary lambda anonymous-types

我想在运行时期间将KeyValuePairs中的所有Dictionary<string, string>加载到匿名类型中。 “词典”的内容将不会提前知道。

Dictionary<string, string> callParams = new Dictionary<string, string>();

logger.WithParams(() => new { Val1= val1, Val2= val2, Val3= val3 });

如何将callParams的KVP添加到匿名类型集?

1 个答案:

答案 0 :(得分:2)

你的意思并不是很清楚 - 但如果你试图让属性名称依赖于字典中的键,那你就不走运了:创建了匿名类型编译器在编译时使用您指定的属性名称。如果在执行时间之前您不知道密钥,则不能使用匿名类型...

如果你使用的是.NET 4,你可以使用ExpandoObject和动态输入...但这里的大局是什么?为什么你不能直接传递字典呢?