dynamic не содержит определения свойства из ссылки на проект

Я получаю сообщение об ошибке:

'объект' не содержит определения для 'Заголовка'

весь код также находится на github

У меня есть ConsoleApplication1, выглядит так

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Movie m = new Movie();
            var o = new { Title = "Ghostbusters", Rating = "PG" };
            Console.WriteLine(m.PrintMovie(o));
        }
    }
} 

и Movie.cs

public class Movie : DynamicObject
{
    public string PrintMovie(dynamic o)
    {
        return string.Format("Title={0} Rating={1}", o.Title, o.Rating);
    }
} 

, он отлично работает из ЖЕСТКОГО проекта, но если я добавлю ConsoleApplication2 со ссылкой на ConsoleApplication1 и добавлю Точно такой же код

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            Movie m = new Movie();
            var o = new { Title = "Ghostbusters", Rating = "PG" };
            Console.WriteLine(m.PrintMovie(o));
        }
    }
}

, я получаю сообщение об ошибке:

'объект' не содержит определения для 'Заголовка' **

, даже если он находится в динамическом объекте.

  • o.Title 'o.Title' сгенерировал исключение типа 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' dynamic {Microsoft.CSharp.RuntimeBinder.RuntimeBinderException}

Вот снимок экрана: enter image description here

Я делаю что-то вроде этого и попытка вызвать функцию фильма из тестового проекта.

81
задан abatishchev 23 September 2016 в 03:30
поделиться

1 ответ

В моем случае у меня есть xUnit тестовый проект.

, Где 'содержание' строка json .

Этот код бросает ошибку:

dynamic parsed = JsonConvert.DeserializeObject<dynamic>(content);

Этот код работы. Используйте ExpandoObject insted динамических как это:

dynamic parsed = JsonConvert.DeserializeObject<ExpandoObject>(content);
0
ответ дан 24 November 2019 в 09:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: