I just noticed something with the way the facility logger works. I am saying this without trying to pick through the source code so maybe someone can correct me if I'm wrong but it seems that the facility analyzes components at registration and decides when and how to inject loggers at this point.
The problem occurs if you are using a factory method without an ImplementedBy clause (for example an abstract factory). In this case the logging facility does not inject the logger because the specific type is not known at registration time. What probably should be occurring is that in this case the decision to inject a logger should be happening when the component is created. Another problem is that registration CAN use an ImplementedBy clause with a factory method in which case the logger is injected fine. However just because an ImplementedBy clause is used doesn't mean that this is necessarily the type the factory returns. As a matter of fact as pointed out in this thread here: http://groups.google.com/group/castle-project-devel/browse_thread/thread/12a0320f36a2e9a7/d2bb40e8d292d90f#d2bb40e8d292d90f an ImplementedBy clause when a factory method is used doesn't really do anything at all. So what happens if an ImplementedBy clause specifies a logging type but the actual component returned from the factory method doesn't have an ILogger property? ActivationError. I don't know if I have the chops to try and fix this myself but if anyone is interested I can try and provide more information. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Castle Project Development List" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/castle-project-devel?hl=en -~----------~----~----~----~------~----~------~--~---
