C#4 – Tạo proxy truy xuất các thành viên private (dynamic + reflection)

private-access-lock-keyKết hợp reflection và dynamic, ta có thể tạo một lớp proxy dùng để truy xuất được các thành viên private của một đối tượng. Lớp proxy này được tôi xây dựng để làm một giải pháp cho câu hỏi của bạn thanh trong bài giới thiệu về reflection.

Tiếp tục đọc

WPF – Tự động hiện thực INotifyPropertyChanged với DynamicObject

dynamicĐây là kĩ thuật sử dụng dynamic trong .Net để tạo các đối tượng đại diện (proxy) cho đối tượng thực sự bạn cần hiện thực INotifyPropertyChange. Ý tưởng của phương pháp này là lợi dụng khả năng của đối tượng DynamicObject cho phép ta xử lý thủ công các thao tác truy xuất đến property để kích hoạt event của INotifyPropertyChanged.

Tiếp tục đọc

DLR– Dynamic Programming: Một wrapper của string với DynamicObject và reflection

Như đã giới thiệu trong bài “ExpandoObject, DynamicObject và Dynamic Method Bag“, để minh họa rõ ràng hơn cho cách sử dụng DynamicObject, tôi đã tạo một wrapper của lớp string với tên gọi Y2String trong C#. Lớp này sẽ override các phương thức cần thiết của DynamicObject để sử dụng được các phương thức của string và bổ sung thêm một số tính năng khác.

Tiếp tục đọc

DLR – Dynamic Programming: ExpandoObject, DynamicObject và Dynamic Method Bags

Trong bài giới thiệu về dynamic keyword, bạn đã thấy rằng dynamic programming giúp cho việc lập trình trở nên dễ dàng và tiện lợi hơn. Tuy nhiên không chỉ đơn giản là tự động xác định các kiểu dữ liệu, dynamic programming cho phép bạn tạo các thành viên của đối tượng và sử dụng chúng trong quá trình runtime.

Tiếp tục đọc

DLR – Dynamic Programming: DLR và dynamic keyword trong C#

Phiên bản C# 4.0 ra đời cung cấp một kĩ thuật lập trình mới mà nhiều ngôn ngữ lập trình khác (như PHP, javascript, Python, Ruby,…) đã sử dụng là Dynamic programming, thêm là một từ khóa mới: “dynamic”. Có thể thấy, .Net không ngừng phát triển để thêm vào những khái niệm và kĩ thuật lập trình mới cho các ngôn ngữ của mình. Vậy Dynamic programming là gì và từ khóa dynamic sử dụng ra sao?

Tiếp tục đọc