Я не использовал много DLR, но я только что попробовал быстрый тест.В консольном приложении эквивалент вашей команды терпит неудачу ...
dynamic d = new object();
d.test = "jason";
Console.WriteLine(d.test);
Но это успешно ...
dynamic d = new ExpandoObject();
d.test = "jason";
Console.WriteLine(d.test);
При использовании динамических объектов вам может потребоваться использовать ExpandoObject вместо простогостарый объект.
В случаях, когда ExpandoObject не отвечает вашим потребностям, что-то более мощное, например http://clay.codeplex.com/
=== РЕДАКТИРОВАТЬ ===
Помогает, еслиЯ полностью прочитал вопрос ...
Добавление в <trust legacyCasModel="true" level="Full" />
микса приводит к сбою обоих с предоставленной ошибкой.
«legacyCasModel» вызывает неоднородный домен, так как это способ, предшествующий .net4.Это означает, что динамические объекты и ваша старая библиотека CAS несовместимы.
Единственный допустимый обходной путь, который я вижу, - это абстрагирование старой библиотеки CAS до , работающей в отдельном домене приложения .