Tôi nhận được một lỗi mà nói:động không chứa một định nghĩa cho một tài sản từ một tài liệu tham khảo dự án
'object' does not contain a definition for 'Title'
tất cả các mã cũng là trên github
Tôi có một ConsoleApplication1 trông như thế này
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));
}
}
}
và Movie.cs
public class Movie : DynamicObject
{
public string PrintMovie(dynamic o)
{
return string.Format("Title={0} Rating={1}", o.Title, o.Rating);
}
}
nó hoạt động tốt từ các dự án tương tự, nhưng nếu tôi thêm ConsoleApplication2 với một tham chiếu đến ConsoleApplication1 và thêm cùng một mã chính xác
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));
}
}
}
tôi nhận được một lỗi:
'object' does not contain a definition for 'Title'**
mặc dù nó nằm trong đối tượng động.
- o.Title 'o.Title' ném một ngoại lệ của loại 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' động {} Microsoft.CSharp.RuntimeBinder.RuntimeBinderException
Đây là một ảnh chụp màn hình:
Tôi đang làm điều gì đó như thế này và cố gắng gọi hàm phim từ dự án thử nghiệm.
thể trùng lặp của [C# 'năng động' không thể truy cập các thuộc tính từ các kiểu nặc danh tuyên bố trong lắp ráp khác] (http: // stackoverflow .com/questions/2630370/c-sharp-dynamic-cannot-access-properties-from-anonymous-types-khai báo-in-anot) –