Castle Windsor are there any downsides?

To answer your questions:

  1. That is using reflection and each
    time that an object is called from the
    container, reflection must used so
    performance will be terrible. (Is this
    the case? does it use reflection on
    every call?)
  • No, it does not. Most of the time it uses little reflection when you register the component. It may also use reflection while generating proxy type, first time you request a component from the container.
  1. If I am relying on Interfaces; how
    do I deal with objects that have extra
    methods and properties which have been
    tacked onto the class? (through
    inheritance)
  • It’s all a matter of design. You don’t want to have each and every object created by the container. You use it primarily for service dependencies. In this case, you don’t care about what type is actually hiding behind the interface (that’s the whole point of it, isn’t it?).

You also can have class components, but they have limitations, and you must be aware of those (for example you can’t intercept calls to non-virtual methods). I have found Windsor to be the most mature, and best suited to my style of development container of all.

Other than that, Performance, I haven’t heard of a project that had to discard dependency container because of unacceptable performance. Windsor is really smart about it, and it caches the results of lengthy operations so that you don’t have to pay the price twice.
You may find charts on the Internet, comparing speed of many IoC containers. Two things to note about those: All containers are really fast.
Don’t think that the fact that other containers are faster on these charts than Windsor, means that they are better. Windsor does a lot of stuff for you that other containers don’t.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)