ReplaceMouseTool uses only the type you pass it.
IGoTool t = FindMouseTool(typeof(GoToolLinkingNew), true);
So, In my case, when i try to replace the linking tool with the same type (myLinkingTool) but another instance it has no effect because you see that the type is the same and ignore it… Am i correct? if so, then i must find other ways to replace the tool behavior.
No, GoView.ReplaceMouseTool, when looking for a Type of tool, just does an exact comparison instead of looking for a subtype class relationship.
So you can do it either way that Jake suggested.