Components not updating

while developing(C#) a plugin I will often change the components input, output and or behaviour.
It seems that Grasshopper is not always updating existing components ?
see screenshot:

It never does, you have to replace the components manually in the document. The document has saved the component with the parameters with which it has been saved. In order for it to be automatically updated, it would have to include a kind of parameter validation every time you add a component to the canvas, which is unnecessary, because of what I explain below.

Actually, you shouldn’t do that, it’s not good practice. If you change the inputs or outputs, you should create a new component, with another ID, and mark the other one as obsolete.

And if I only change the behaviour of the components SolveInstance method ?

Not in that case. Think of it this way. The identity of an operation is not only defined by its usefulness, you can change the internal process and for practical purposes is the same operation, only performed differently, as a black box it doesn’t matter what it have inside. But if you change the parameters, it is another different implementation, a variation of the operation, because it no longer relates in the same way to the other components, it has another identity.

Ok that clears it up.