Yansıma yoluyla anonim yöntemleri nasıl tanımlayabilirsiniz?System.Reflection içinde anonim yöntemler nasıl tanımlanır
cevap
Yöntemin özniteliklerine bakın ve yöntemin CompilerGeneratedAttribute ile dekore edilmiş olup olmadığına bakın.
Anonim yöntemler (otomatik olarak uygulanan özellikler gibi diğer nesnelerin yanı sıra) de bu öznitelik eklenecektir. Örneğin, sınıfınız için bir türünüz olduğunu varsayalım.
Type myClassType = typeof(MyClass);
IEnumerable<MethodInfo> anonymousMethods = myClassType
.GetMethods(
BindingFlags.NonPublic
| BindingFlags.Public
| BindingFlags.Instance
| BindingFlags.Static)
.Where(method =>
method.GetCustomAttributes(typeof(CompilerGeneratedAttribute)).Any());
Bu MyClass
üzerinde tanımlı herhangi anonim yöntemleri dönmelidir: Anonim yöntemler olacaktır. Regex desen olacağını görebiliyorum kadarıyla
Ve başka herhangi bir yöntem (veya üye/tip) olabilir. – leppie
Doğru - bunu herhangi bir yöntemde el ile tanımlayabilir ve onu kandırabilirsiniz, ancak genellikle, bu anonim yöntemler ve diğer derleyici tarafından oluşturulan bilgiler için kullanılır. –
Otomatik özellikler için ve mülk alıcıları ve ayarlayıcıları için. – leppie
, IL: düzeyinde anonim yöntemle diye bir şey yoktur, çünkü
<(\w|_)+>b_.+
Yapamazsın, - hepsi İsminin ve tüm aittir adlandırılmış türler. Ve C# ve VB derleyicileri, anonim yöntemleri adlandırılmış yöntem ve türlere çevirme yönteminin tamamen uygulanmasıyla tanımlanmış olup, bunlara güvenilemez (bu, örneğin, küçük sürümlerde/düzeltmelerde bile herhangi bir güncelleştirmeyle değişebilir).
+1: Bu teknik olarak, "doğru" cevabı - ama [CompilerGenerated] uygulamada oldukça güvenilir bir şekilde çalışıyor. –
- 1. "Dinamik" etkinlik aboneliğinde anonim yöntemler nasıl önlenir?
- 2. Environment.CurrentDirectory vs System.Reflection
- 3. ArangoDB FOXX içinde bir dizin nasıl tanımlanır?
- 4. Cesium'daki SampledProperty içinde özellik tipi nasıl tanımlanır
- 5. StaticResource kullanarak XAML içinde DataContext nasıl tanımlanır
- 6. Tüm genel yöntemler nasıl * .dll içinde edinilir
- 7. System.Reflection GetProperties yöntemi değerleri döndürmüyor
- 8. Koşullu değişken, Makefile içinde ifeq ile tanımlanır
- 9. F # Özel Statik Yöntemler
- 10. Bir döngü içinde Anonim C# delege
- 11. Yöntemler
- 12. C++ 'da özel bir sınıf içinde sınıf nasıl tanımlanır?
- 13. Kaynaklar xaml içinde nasıl tanımlanır ve kullanılır C#
- 14. Javascript: İçinde 60 eleman bulunan boole dizisi nasıl tanımlanır
- 15. Swagger'da harita nasıl tanımlanır?
- 16. artifact groupId nasıl tanımlanır?
- 17. ESC karakterleri nasıl tanımlanır?
- 18. FrontEndEventActions nasıl yeniden tanımlanır?
- 19. Kodda DataTemplate nasıl tanımlanır?
- 20. Scipy.optimize.curve_fit işlevi nasıl tanımlanır?
- 21. Javascript'te yeni bir global işlev nasıl tanımlanır
- 22. Java'da Scala'yı içe aktarma: garip sınıflar ve yöntemler
- 23. Yöntemler setlere nasıl koyulur?
- 24. Swift'de genel işlevler nasıl tanımlanır?
- 25. Delphi 2009'da jenerik ve anonim yöntemler kullanarak ne gibi sorunlar var?
- 26. Maven'de koşullu özellikler nasıl tanımlanır?
- 27. Enum en3'te nasıl tanımlanır?
- 28. Bir cevap adresi nasıl tanımlanır?
- 29. WiX'te genel değişken nasıl tanımlanır
- 30. Özel şablon etiketi nasıl tanımlanır
Neyi başarmak istediğiniz hakkında biraz daha bilgi verebilir misiniz? –