Ở đó, ví dụ: ViewBag thuộc tính của lớp ControllerBase
và chúng tôi có thể nhận/đặt giá trị động và thêm bất kỳ số trường hoặc thuộc tính bổ sung nào cho đối tượng này, điều này thật tuyệt. Tôi muốn sử dụng một cái gì đó tương tự, ngoài ứng dụng MVC và Controller
lớp trong các loại ứng dụng khác. Khi tôi cố gắng tạo dynamic đối tượng và thiết lập nó là tài sản như dưới đây:Làm cách nào để tạo loại động hoặc đối tượng động trong C#?
1. dynamic MyDynamic = new { A="a" };
2. MyDynamic.A = "asd";
3. Console.WriteLine(MyDynamic.A);
Tôi đã có RuntimeBinderException
với thông điệp tài sản hoặc indexer '<> f__AnonymousType0.A' không thể giao cho - đó là chỉ đọc trong dòng 2. Ngoài ra tôi đề nghị Nó không phải là khá những gì tôi đang tìm kiếm. Có thể có một số lớp học có thể cho phép tôi làm điều gì đó như:
??? MyDynamic = new ???();
MyDynamic.A = "A";
MyDynamic.B = "B";
MyDynamic.C = DateTime.Now;
MyDynamic.TheAnswerToLifeTheUniverseAndEverything = 42;
với tính năng thêm và cài đặt động.
Hãy bỏ phiếu cho tính năng này trong Visual Studio [UserVoice] (https: //visualstudio.uservoice. com/forums/121579-visual-studio/đề xuất/7062098-hỗ trợ-đối tượng-initializers-on-expandoobjects). – orad