2009-03-03 12 views
3

Bir kütüphanenin kod kullanım örneklerini görüntülemek için bir aspx sayfası üzerinde çalışıyorum. Aksine kopyalama daha Açıklama Kaynak Kodu Düğme Çıktı (bir datagrid içinde)Gerçek kaynak kodunu aspx sayfasındaki codebehind'den gösterme olasılığı var (kod örneği sayfaları için)

ve aspx sayfası için içine düğme arkasından kodunu yapıştırdıktan:

Yani temelde, ben mesela olmasını istiyorum görüntüleme amaçlı olarak, gerçek kaynak kodunu çalışma zamanında okuyabilmenin ve görüntüleyebilmenin güzel olabileceğini düşünüyordum. Kaygan olmanın dışında, bu, görüntülenen kaynak kodun güncel olmasını sağlamanın ek yararına sahip olurken, bir değişiklik yaparsa ve yeni koduyla aspx sayfasını güncellemeyi unutursa bir kopyanın ve yapıştırma tarihinin güncelliğini yitirebilir.

Bunu yapmanın 2 olası yolunu düşünebilirim: 1) (kludgy) - Dosyaların arkasındaki kodu dağıtın, daha sonra çalışma zamanında okunabilir ve uygun işlev kodu ayrıştırılıp görüntülenebilir. 2) (Tercih edilen) Çalışma zamanı DLL'yi (yansıtıcı olarak) decompile edin ve kodu görüntüleyin.

Yani # 1'i nasıl yapacağımı biliyorum ama # 2 hakkında bir fikrim yok (eğer mümkünse).

cevap

5

Kodun çalışma zamanında ayrıştırılması, yazdıklarınızla tam olarak aynı kodu vermez. Bu noktada daha çok bir yorum haline gelir.

Üçüncü bir seçenek, uygulamanızın belirli bir dosyayı almak için kod deponuzda çalışmasını sağlamaktır. Ardından, bu dosyanın içeriğini tarayıcıda görüntülersiniz. Bu seçenek 1'e benzer, ancak .cs dosyalarını doğrudan sunucuya dağıtmayacaksınız. Kod havuzundan kaynak kodu almak için

+0

+1. –

0

Yorumlar ve orijinal değişken adlarını korumak isterseniz, yansıma çalışmaz. Kodu ayrıştırmak muhtemelen bunu yapmanın en yalın yolu olurdu. PDB dosyalarından veri ayıklama seçeneği de olabilir.

3

Gerçek kaynak dosyalarının okunması buradan gitmenin yoludur, IMO - eğer gerçekten, sunucunuzun kaynak kodunu herkesin görebileceğinden emin değilsiniz. Reflector gibi bir şey kullanırsanız, tüm yorumları kaybedersiniz, muhtemelen yerel değişkenler ve yineleyici blokları gibi şeyler özellikle garip olur.

C# in Depth web site üzerinde kullandığım bir kod biçimlendiriciye (aslında bir denetim olarak) sahibim. Nispeten ilkel, ama istersen buna hoş geldiniz. (Bunu bir deneyin vermek istiyorsanız, bir page on the site itself aracılığıyla kullanabilirsiniz.)

İlgili konular