¿Cómo determina Castle Castle qué constructor resolver cuando hay varios constructores presentes?¿Cuál es la orden de resolución del constructor?
Respuesta
Todos los constructores disponibles se modelan como candidatos y básicamente se ejecuta un concurso entre ellos.
Cada parámetro en un constructor representa una dependencia que puede ser satisfecha o no. Para cada candidato de constructor, se analizan todas las dependencias.
Si se puede cumplir una dependencia, eso es dos puntos para el candidato. Si no se puede satisfacer, se restan dos puntos del candidato.
El candidato de constructor con la mayor cantidad de puntos gana y se elige para crear una instancia del componente.
El código para este algoritmo es here.
Castle Windsor utilizará el constructor con la mayoría de los parámetros cuyas dependencias puede resolver.
Cuando hay dos constructores con el mismo número de parámetros que Windsor puede resolver, el comportamiento solía ser aparentemente arbitrario, pero puede haber sido corregido.
ver este post de Krzysztof Kozmic
- 1. En C++, ¿cuál es la resolución del alcance ("orden de precedencia") para nombres de variables sombreados?
- 2. ¿Cuál es la resolución de la pantalla del iPhone?
- 3. Orden de constructor en la herencia virtual
- 4. Orden de ejecución en la lista de inicialización del constructor
- 5. ¿Cuál es la resolución estándar de la tableta Android?
- 6. C# base) orden constructor (
- 7. ¿Cuál es el propósito del constructor de cadenas de ostringstream?
- 8. C# constructor orden de ejecución
- 9. listas de inicialización del constructor orden/asignación pregunta
- 10. Problemas con el fin resolución constructor
- 11. ¿Cuál es la necesidad de un constructor privado en C#?
- 12. Controlar el orden del constructor de objetos estáticos
- 13. ¿Cuál es el patrón de constructor revisado?
- 14. ¿Cuál es la importancia del orden de las declaraciones en la salida de explicación de mysql?
- 15. ¿Cuál es la importancia de la propiedad del constructor de Javascript?
- 16. Orden del miembro constructor y llamadas al destructor
- 17. ¿Cuál es la ventaja de SMT-Solver sobre CSP-Solver en la resolución de restricciones?
- 18. ¿Cuál es la forma preferida de construir objetos en C#? ¿Parámetros o propiedades del constructor?
- 19. ¿Cuál es el significado de tener vacío en la definición del constructor?
- 20. ¿Cuál es el significado de ": base" en la definición del constructor?
- 21. ¿Cuál es la forma correcta de manejar imágenes de alta resolución para pantallas de alta resolución (principalmente pantallas retina iOS)?
- 22. ¿Cuál es el uso del orden y la ficha Exportar Vía de construcción Java
- 23. ¿Qué es la resolución de símbolo?
- 24. COI y constructor de sobre-inyección resolución anti-patrón
- 25. Sugerencias para la resolución de problemas del servidor TFS lento
- 26. ¿Cuál es el tamaño del montón del Samsung Galaxy S3?
- 27. ¿Cuál es la resolución de pantalla mínima para la que actualmente optimiza sus diseños web?
- 28. Barra de pestañas del iPhone ¿Resolución de imagen del objeto?
- 29. cuál es la diferencia entre operador de punto y operador de resolución de alcance
- 30. Constructor de Java y orden de inicialización de campo
Gracias por la información ... –
Gracias por la información Mauricio. Estoy teniendo "problemas" con Windsor en un proyecto relacionado con S # arpArch y eso ayuda mucho. – WillCodeForCoffee
¡Muy bien dicho! Encontré este enlace más en algo similar que habla sobre el problema inherente de tener constructores sobrecargados en primer lugar en sus componentes cuando está utilizando contenedores DI para instanciar su clase: http://stackoverflow.com/questions/7926686/castle- windsor-force-resolver-to-use-specified-constructor – RBT