CSharpScript и динамические объекты - PullRequest
0 голосов
/ 10 мая 2019

В моем приложении есть небольшой движок сценариев, который может очень хорошо оценивать выражения, когда глобальный контекст содержит данные из базы данных (используя Dapper).Например,

Date.Format(Data.CreatedAt, "h:mm tt")

Однако, если данные передаются как динамический объект (из сообщения json в очереди), оценка завершается неудачно с помощью:

error CS0656: Missing compiler required member 

Контекст выглядит следующим образом:

public class ExpressionContext
{
  public dynamic Data { get; private set; }

  public ExpressionContext(dynamic data)
  {
    Data = data;
  }
}

Если я изменяю Данные как объект, а не как динамический, тогда я получаю эту ошибку:

error CS1061: 'object' does not contain a definition for 'CreatedAt' 
and no accessible extension method 'CreatedAt' accepting a first argument 
of type 'object' could be found (are you missing a using directive or an 
assembly reference?)

, которая имеет для меня больше смысла.

Так что, кажется,как CSharpScript не может оценивать динамические объекты - и все же DapperRow работает.

Я в замешательстве.

...