将C#动态对象传递给接受IDictionary的方法
现在,我正在这样做将C#动态对象传递给接受IDictionary的方法,c#,quartz.net,C#,Quartz.net,现在,我正在这样做 var data = new JobDataMap(new Dictionary<string,string> { {"obj", "stringify"} }); 有什么秘密的语法糖可以让我这么做吗?没有神奇的方法可以做到这一点。编译器无法在编译时知道动态对象实际上是一个字典 也就是说,您可以创建一个扩展方法,将其转换为字典,以便执行以下操作: dynamic d = new { obj = "stringify" }; var data = new JobD
var data = new JobDataMap(new Dictionary<string,string> { {"obj", "stringify"} });
有什么秘密的语法糖可以让我这么做吗?没有神奇的方法可以做到这一点。编译器无法在编译时知道动态对象实际上是一个字典 也就是说,您可以创建一个扩展方法,将其转换为字典,以便执行以下操作:
dynamic d = new { obj = "stringify" };
var data = new JobDataMap(d.ToDictionary());
这篇博客文章提供了一个例子:不,这样是不可能的。但是为什么不使用某个键将动态对象添加到JobDataMap中呢?也许可以使用。或者可以使用重载构造函数来获取该项并创建字典。是的,这实际上很简单,我认为这可能不可能。有没有更简洁的方法来定义我的字典,也许?扩展方法是否适用于动态对象,或者d是否必须是匿名对象?您可以在对象上创建扩展方法。不过我不推荐。我会选择重载构造函数
dynamic d = new { obj = "stringify" };
var data = new JobDataMap(d.ToDictionary());