Код ниже отлично работает. Если методы 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 };
}
}