2009-11-20 24 views
9

Tôi đang cố gắng dịch ngược một thư viện nhưng khi tôi nhấp vào tên lớp hoặc tên phương thức, mã triển khai sẽ trống.Trình phản chiếu không hiển thị lớp thực hiện

Ví dụ:

public bool MethodOne(string str) 
{ 
    // nothing 
} 

nó có thể là gì?

+2

có thể là phương pháp thực sự là rỗng ... – Randolpho

+1

Tôi biết bạn đặt công chúng từ trên phương pháp dụ của bạn, nhưng nó có thể là một phương pháp trừu tượng hay chỉ là một phương pháp có sản phẩm nào được ghi đè nếu cần thiết? – Dan

+0

Đó là thư viện mà tôi sử dụng trong một dự án và Nó hoạt động. Nó không phải là một phương pháp trừu tượng hay ảo. Có thể "xóa/ẩn" mã khỏi thư viện bằng phương pháp obfuscation không? –

Trả lời

2

Bạn có thể đã mở một Hội tham chiếu hoặc PIA không có mã trong đó.

Cơ thể phương pháp thực sự có thể trống.

(Các khả năng khác?)

+0

mmm Tôi sử dụng nó trên một dự án và nó hoạt động ... Ở đâu có thể là mã? : P –

0

Phiên bản của. Net đang sử dụng framwork? Dường như có một số vấn đề với hội đồng .net 4.0 nơi điều này xảy ra ... hoặc đó là điều mà một số người trong diễn đàn đang nói: Reflector Forum

Có bất kỳ IL nào không?

+0

Nó đang sử dụng Micro Framework 4.0 và không có bất kỳ IL: ( –

+0

Tôi đoán là, Red Gate chưa hoàn thành mã đó. Nếu bạn không sử dụng bản phát hành trước của Reflector, bạn có thể thử nó (http: //) : //www.red-gate.com/MessageBoard/viewforum.php? f = 109) –

2

Tôi đã thấy điều này với các hội đồng VSSDK.

Nó có thể là một thư viện giao diện được cung cấp công khai, nhưng việc triển khai thực tế là 'ẩn' ở đâu đó. (? Có lẽ trong GAC)

Đoàn tàu cơ bản của tư tưởng là:

  1. mã biên dịch chống lại một số 'sơ khai' lắp ráp
  2. Khi nạp trong việc áp dụng, lắp ráp còn sơ khai không được giải quyết, nhưng thực tế một số

Tôi đề nghị bạn đặt một điểm ngắt trong trình gỡ rối và xem lắp ráp được nạp thực tế là gì và nó được nạp ở đâu.

23

Bạn có thể đang cố gắng phản ánh hội đồng tham chiếu được Visual Studio sử dụng để cung cấp hỗ trợ đa mục tiêu. Các hội đồng này chỉ là siêu dữ liệu và không có bất kỳ triển khai thực tế nào.

Nếu trường hợp đó xảy ra hơn bạn có thể sử dụng VSCommands 2010 extension để nhận đường dẫn đến lắp ráp thực tế với triển khai.

assembly details http://vscommands.com/wp-content/uploads/2011/04/image12.png

+6

Đây là câu trả lời.Các siêu dữ liệu chỉ có phiên bản nằm trong "Tham chiếu Assemblies" dưới các tập tin chương trình.Bạn phải mở các phiên bản trong windows \ microsoft.net \ framework \ .... – Will

+0

Đáng buồn thay, liên kết tới bài đăng blog không hoạt động nữa Nhưng câu trả lời này và câu trả lời từ @leppie đã giúp tôi rất nhiều.Một lưu ý phụ: Tính năng "Hiển thị chi tiết lắp ráp" của VSCommands không xuất hiện trong danh sách tính năng của các phiên bản mới hơn của tiện ích (tôi chưa thử tiện ích này). –

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