2011-03-05 6 views

cevap

5

Yansıma tam .NET Framework sağlanan API'ler bir alt kümesi ile, Silverlight bulunmaktadır.

en bariz fark Silverlight özel üyelerin üzerine yansıtamaz (veya belki kendi takım içinde can ama sınırları oldukça hızlı belirgin olacaktır) olmasıdır. Bu, çerçevenin kendisinin iç taraflarıyla uğraşmadığınızdan emin olmanız için bir güvenlik özelliğidir. Bunun dışında

(Kuşkusuz, oldukça büyük) sınırlaması, Yansıma temel olarak aynı olmalıdır. Austin söylediklerine ek olarak

+0

Özel üyelere yansıtabilirsiniz, ancak bunları değiştiremez veya değiştiremezsiniz. Örneğin bir FieldInfo için GetValue çağırmak için denedim ama SetValue çağrısı mümkün değildi, bir istisna atar. –

4

, Silverlight Yansıma ile kural normal kodu aracılığıyla erişebilir ne olursa olsun yansıma yoluyla erişmek sadece olmasıdır. Yani sadece özel üyeler değil. Korunan üyeleri yalnızca sınıfın kendisinde veya herhangi bir sınıfta miras alarak yansıtabilirsiniz.

Orada API sayısız özlemdir ancak tam NET'te daha Yansıma bilgi edinme olanağı sağlar Reflection

0

Güvenlik Kaygıları biraz daha çalışma gerektiren bile genel olarak çoğu şeyi, mümkün olmalıdır türleri ve üyeleri hakkında ve üyelere erişmek için.

Numaralandırma türleri ve üyeleri ve bunların meta incelemek: Silverlight, aşağıdaki görevleri gerçekleştirmek için yansıma kullanabilirsiniz.

Montajları ve modülleri numaralandırın ve inceleyin.

Genel üyelere erişim.

Çağıran kodun derlemesine iç üyelere (Visual Basic'te arkadaş üyeleri) erişin. (Yansıma olarak, bu kadar montaj düzeyinde erişim adlandırılır.)

Silverlight olarak, özel türleri ve üyeleri erişmek için yansıma kullanamazsınız. Bir tür veya üyenin erişim düzeyi, statik olarak derlenmiş kodda erişmenizi engelliyorsa, yansıma kullanarak dinamik olarak erişemezsiniz.

İlgili konular