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
Re: dynamic в методе другой сборки
От: Sinix  
Дата: 04.12.15 10:36
Оценка: 8 (2)
Здравствуйте, Lazarus, Вы писали:

L>Вопросы:

L>1. Почему так происходит? Ведь тип правильно выводится.
L>2. Есть ли пути решения? Не хочется отказываться от dynamic, а необходимо обращаться к методам объектов другой сборки.
http://www.heartysoft.com/ashic/blog/2010/5/anonymous-types-c-sharp-4-dynamic
и
http://stackoverflow.com/a/2993247/318263
Отредактировано 04.12.2015 10:37 Sinix . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.