Hanya untuk bertanya apakah ada yang tahu alternatif sumber terbuka untuk RedGate's Reflector ? Saya tertarik memeriksa bagaimana alat yang mirip dengan Reflector sebenarnya berfungsi.
Catatan, jika Anda mengetahui alternatif sumber bebas tapi tidak terbuka untuk Reflektor, Anda dapat menjawab pertanyaan terkait berikut:
Ringkasan - Diperbarui 11 Mei 2011
Ringkasan singkat berbagai proyek sumber terbuka dan alat yang telah disarankan:
- Infrastruktur Penyusun Umum (CCI)
- Mono Cecil
- ILSpy
- dnSpy (garpu ILSpy, proyek tampak lebih aktif daripada yang asli)
- Dotnet IL Editor (DILE)
- IL.View
- Monoflektor ( tidak lagi aktif pada April 2011)
Sumber daya berikut mungkin juga menarik:
- TypeView.cs
- Catatan Jason Haley tentang pembongkaran .NET
- Posting blog terbaru Adrian Bank merangkum sejumlah alternatif Reflector, termasuk beberapa opsi yang tidak disebutkan di bawah ini.
- Posting rinci blog Mark Lichtenberg membandingkan beberapa alternatif sumber terbuka (DILE, ILSpy dan Mono Cecil menggunakan MonoDevelop) ke Reflector.
.net
reflection
open-source
reflector
MagicAndi
sumber
sumber
Jawaban:
2 opsi yang saya tahu.
Ini tidak akan memberi Anda C # sekalipun.
sumber
Updated 13 Desember 2011
Alat sumber terbuka berikut tersedia:
sumber
Pengganti lainnya adalah dotPeek . JetBrains mengumumkannya sebagai alat gratis. Itu mungkin akan memiliki lebih banyak fitur ketika digunakan dengan Resharper mereka tetapi bahkan ketika digunakan sendiri itu bekerja dengan sangat baik.
Pengalaman pengguna lebih seperti MSVS daripada disassembler mandiri. Saya suka membaca kode daripada di Reflector. Navigasi Ctrl + T juga cocok untuk saya. Hanya menyinkronkan pohon dengan panel kode bisa lebih baik.
Semua dalam semua, itu masih dalam pengembangan tetapi sudah dapat digunakan dengan sangat baik.
sumber
Telerik hari ini merilis Beta dari alat dekompilasi mereka sendiri, JustDecompile . Sumber tertutup, tetapi gratis dan terlihat menjanjikan.
sumber
ILSpy berfungsi dengan baik!
Sejauh yang saya tahu itu melakukan semua yang Reflector lakukan dan terlihat sama juga.
sumber
Sebenarnya, saya cukup yakin Reflector dianggap disassembler dengan beberapa fungsi dekompiler. Disassembler karena ia membaca byte dari file assembly dan mengubahnya menjadi bahasa assembly (ILasm dalam hal ini). Fungsionalitas Decompiler yang disediakannya dengan mem-parsing IL ke dalam pola-pola terkenal (seperti ekspresi dan pernyataan) yang kemudian diterjemahkan ke dalam bahasa tingkat yang lebih tinggi seperti C #, VB.Net, dll. Addin api untuk Reflector memungkinkan Anda untuk menulis penerjemah bahasa Anda sendiri jika Anda berharap ... namun keajaiban bagaimana mem-parsing IL ke dalam pohon ekspresi adalah rahasia yang dijaga ketat.
Saya akan merekomendasikan melihat salah satu dari tiga hal yang disebutkan di atas jika Anda ingin memahami cara kerja pembongkar IL: Dile, CCI dan Mono adalah sumber yang bagus untuk hal ini.
Saya juga sangat merekomendasikan mendapatkan spec Ecma 335 dan buku Serge Lidin juga.
sumber
Alasan utama saya menggunakan Reflector (dan, saya pikir, alasan utama kebanyakan orang menggunakannya) adalah karena dekompilernya: ia dapat menerjemahkan kembali metode IL ke dalam kode sumber.
Pada hitungan itu, Monoflector akan menjadi proyek untuk menonton. Ia menggunakan Cecil, yang melakukan refleksi, dan Cecil.Decompiler, yang melakukan dekompilasi. Tapi Monoflector melapisi UI di atas kedua pustaka, yang seharusnya memberi Anda ide yang sangat baik tentang cara menggunakan API.
Monoflektor juga merupakan alternatif yang layak untuk Reflector secara langsung. Ini memungkinkan Anda menelusuri jenis dan mendekompilasi metode, yang merupakan 99% dari apa yang digunakan Reflektor untuk orang. Sangat kasar di tepinya, tapi saya berpikir itu akan berubah dengan cepat.
sumber
Yah, Reflector itu sendiri adalah .NET assembly sehingga Anda dapat membuka Reflector.exe di Reflector untuk memeriksa bagaimana itu dibangun.
sumber
Saat ini saya sedang mengerjakan disassembler / decompiler open source yang disebut Assembly Analyzer. Ini menghasilkan kode sumber untuk metode, menampilkan majelis metadata dan sumber daya, dan memungkinkan Anda untuk berjalan melalui dependensi.
Proyek ini di-host di CodePlex => http://asmanalyzer.codeplex.com/
sumber
Alat Reflektor menggunakan Refleksi.- ternyata ini tidak benar.Anda meminta dua hal - kode yang menunjukkan apa yang reflektor lakukan, dan juga alternatif untuk reflektor.
Berikut ini sebuah contoh, jauh disederhanakan dari apa yang dilakukan Reflector, tetapi ini menunjukkan teknik refleksi: TypeView.cs
Saya tidak punya saran untuk penggantian Reflektor open-source.
sumber
System.Reflection
dalam kerangka kerja, Roeder menyatakan sangat awal karena masalah dengan bongkar muat perakitan.System.Reflection
namespace telah diperpanjang sejak awal. NET Reflector. Sekarang mendukung rakitan bongkar dan muat dalam konteks hanya refleksi: stackoverflow.com/questions/225330/…