Was sind Ihre besten Beispiele für die Verwendung von Reflection im Produktionscode?Echte Beispiele für Reflection
Antwort
ASP.NET MVC leitet die Aktion und den Controller zum Aufrufen von URL ab. Routing im Allgemeinen.
WPF Databinding:
1) Binding-Pfad "(TextBox.Text)" vs "Text"?
Wenn Sie an einen Pfad namens Text binden, verwendet WPF die Reflektion, um den Namen aufzulösen. Wenn Sie den für die Klasse qualifizierten Namen verwenden, wird durch die Bindung der Reflexionsleistungstreffer vermieden. Klassenqualifizierte Namen können auch an angehängte Eigenschaften gebunden werden!
(via http://dotnet.org.za/rudi/archive/2008/03/25/10-things-i-didn-t-know-about-wpf-data-binding.aspx)
In jüngster Zeit hatte ich Reflektion verwenden eine Anordnung (in der Reihenfolge ihrer öffentlichen Arten zu untersuchen) laden von nur den Weg der Versammlung.
- NUnit Unit Testing Framework - Nicht sehr typisch, obwohl
- CSLA verwendet Reflektion eine Menge
- ziemlich jeder Windows-Anwendung Formulare, die Plug-in
Vor Linq unterstützt Um Sql herauskam ... Ich musste schreibe mein eigenes ORM in .NET 2.0.
benutzte ich Reflexion stark zurück zu reflektieren:
- Klassen auf ihre CRUD gespeicherte Prozeduren
- Eigenschaften, um ihre Spaltennamen
- Welche Operationen gültig für die Klasse waren
I verwendete auch reflection, um alle Variablenzuweisungen zu behandeln, nachdem die Ergebnisse abgerufen wurden (alle Klassen erbten eine ActiveRecord-Klasse, die die Aufrufe in die DAL umwandelte).
Grobe Sachen ... aber nach einigen Performance-Tuning war es nicht halb so schlimm.
Meine DAL ist alle Reflexion basiert. Es spiegelt die POCO-Eigenschaften wider, um SQL zu erstellen.
Daten aus einer SQL-Tabelle ziehen, wo Sie eine ID hatte, eine Art, und andere Daten
Dann könnten Sie „Chevrolet“ laden und mit allen funktioniert Methoden
Innerhalb einer Fabrik wir, Verwenden Sie die Reflektion, um entweder eine "Dummy" -Implementierung einer Schnittstelle oder eine reale (an die DB angeschlossene) Implementierung einer Schnittstelle zurückzuleiten, basierend auf der Klasse, die in einer Eigenschaftendatei (in Java) angegeben ist.
Ich hatte Gelegenheit, einen Python O/R Mapper auf einmal zu schreiben, aber es war ein Proof of Concept und ging nie in Produktion.
Ich mache eine Menge Arbeit, die das Systemdatenwörterbuch auf einem DBMS ausgiebig verwendet (zum Beispiel ein generischer sich langsam ändernder Dimensionslader). Man könnte argumentieren, dass dies der reflektiven Programmierung im Prinzip nicht unähnlich ist.
Schließlich ist Python in all seinen Formen sehr einfach zu tun mit Reflexion. In der Tat ist es so gut, dass ich es verwendet habe, um mit den zugrunde liegenden APIs in anderen Sprachen zu stochern - und die reflektiven Fähigkeiten zu verwenden, um die zugrunde liegenden Schnittstellen abzufragen. Ich habe dies mit so ziemlich jedem reflektierenden Mechanismus getan, der in der Python-Welt existiert: CPython auf Python-APIs und COM-APIs verwendet makepy, Jython für Java-APIs und IronPython für .Net-APIs.
In einer meiner letzten Apps, einem Add-In für Kofax Express, habe ich die Option, eine Datei zu OCR zu schreiben und eine PDF auszugeben. Da das OCR-Tool, das ich verwende, eine Laufzeitgebühr hat, habe ich den OCR-Teil zu einer separaten Assembly gemacht. Wenn die Datei existiert, zeige ich die OCR-Optionen und verbinde die Assembly spä- ter und rufe die erforderlichen Methoden auf und lege sie mit Reflexion an die Ereignisse an. Eine einfache Plug-in-Architektur ohne Schnittstellen und erspart Kunden die Zahlung von Lizenzgebühren, wenn sie OCR nicht benötigen; Wir geben ihnen einfach nicht die OCR-DLL.
- 1. Echte Welt Beispiele für @optional Protokoll Methoden
- 2. Echte Beispiele für Ecmascript-Funktionen, die eine Referenz zurückgeben?
- 3. Echte Welt Beispiele zu entscheiden, welche Sortieralgorithmus am besten funktioniert
- 4. echte Vollshell für Windows
- 5. Reflection-API für Scala
- 6. Echte Benutzerüberwachung: Standards für Zuverlässigkeit
- 7. Beispiele für gute JPA Java Desktop-Anwendung
- 8. Beispiele für gute Systemtestberichte?
- 9. Beispiele für TypeScript-Sprachdienste
- 10. Beispiele für -webkit -Erscheinungseinstellungen
- 11. Beispiele für parametrisierte Abfragen
- 12. Scala für alle Beispiele?
- 13. Beispiele für Winsock?
- 14. Praktische Beispiele für Idris
- 15. Beispiele für Robotium
- 16. Beispiele für "Objektwörterbücher" in Anwendungsprotokollen
- 17. Gute Beispiele für MVVM Template
- 18. Beispiele für VS2015 + Cordova + Angular2
- 19. Beispiele für Produktion Erlang-Implementierungen
- 20. Klassendiagramm Beispiele für RPG (Rollenspiel)
- 21. Beispiele für SOA-fähige Softwareprodukte?
- 22. "Universelle" Suchmaschine für PHP-Beispiele
- 23. ZMQ-Kompilierungsprobleme für C++ - Beispiele
- 24. Beispiele und Tutorials für TopLink
- 25. Praktische Beispiele für NLTK Verwendung
- 26. Andere Beispiele für magische Berechnungen
- 27. MVP-Beispiele für Windows Forms
- 28. der Suche nach Beispielen für „echte“ verwendet von Fortsetzungen
- 29. Beispiele für RESTful-Webdienste für WCF
- 30. Stringcomparison OrdinalIgnoreCase für echte falsche Werte