【发布时间】:2011-02-28 21:48:48
【问题描述】:
下面的代码效果很好。如果 Get 和 Use 方法位于不同的程序集中,则代码将失败并出现 RuntimeBinderException。这是因为 .Net 运行时系统仅保证程序集中的匿名类型(在本例中为 <string, int>)的通用性。
有没有办法欺骗运行时系统来克服这个问题?我可以在Use端的调试器中检查对象,调试器可以看到相关属性。
class Program
{
static void Main(string[] args)
{
UsePerson();
Console.ReadLine();
}
public static void UsePerson()
{
var person = GetPerson();
Console.WriteLine(person.Name);
}
public static dynamic GetPerson()
{
return new { Name = "Foo", Age = 30 };
}
}
【问题讨论】:
标签: c# .net dynamic anonymous-types