2010-02-11 30 views
30

tôi đang cố gắng để có được một giá trị của một cửa sổ như sauĐối tượng không phù hợp với loại mục tiêu sử dụng C# Reflection

này đề cập đến cửa sổ chính (Window1)

Type type = this.GetType(); 
PropertyInfo pi = type.GetProperty("Left"); 
object obj = pi.GetValue(type, null); 

Nhưng tôi nhận được một "Đối tượng không khớp với loại mục tiêu sử dụng" lỗi. Chuyện gì thế?

Trả lời

50

Vì bạn đang cố gắng lấy thuộc tính 'Trái' của Loại, chứ không phải trường hợp của bạn.

thử

object obj = pi.GetValue(this, null); 
0

này sử dụng mã này

object obj = property.GetValue(currentObject, null);

+5

Các khối mã của riêng chúng thường không phải là câu trả lời hữu ích. Nếu bạn có thể vui lòng chỉnh sửa câu trả lời của mình và giải thích mã bạn đang hiển thị là gì và tại sao/mã đó trả lời câu hỏi như thế nào, nó thực sự có thể hữu ích. –

+0

hoạt động khi bạn có chuỗi hoặc bất kỳ loại không phức tạp nào bên trong thuộc tính dưới dạng giá trị, bạn nên gửi currentObject (đối tượng được sử dụng để lấy thuộc tính) làm tham số thay vì – Ramakrishna

Các vấn đề liên quan