dynamic в методе другой сборки
От: Lazarus  
Дата: 04.12.15 10:12
Оценка:
есть код для примера:
var anon = new { Date = DateTime.Now, Command = "c1" };
Test_OK(anon);
new Second().Test_BAD(anon);


Методы Test_OK() и Test_BAD() — идентичны, отличие лишь в том, что лежат в разных сборках.
public void Test_OK(dynamic data)
{
  MessageBox.Show("Type: " + data.GetType());
  MessageBox.Show("Command: " + data.Command);
}


При вызове Test_BAD(anon) падает ошибка:

An unhandled exception of type 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' occurred in System.Core.dll
Additional information: "object" не содержит определения для "Command"


Вопросы:
1. Почему так происходит? Ведь тип правильно выводится.
2. Есть ли пути решения? Не хочется отказываться от dynamic, а необходимо обращаться к методам объектов другой сборки.
dynamic
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.