How do you find all implementations of an interface?
How do you find all implementations of an interface?
Suppose you have an interface defined in C#. What is the easiest method to find all classes that provide an implementation of the interface?
The brute force method would be to use "Find References" in Visual Studio and manually look through the results to separate out the usages from the implementations, but for an interface in a large codebase that is heavily referenced with relatively few implementations, this can be time consuming and error prone.
In Java, running javadoc on the codebase (using the -private option to include private classes) would generate a documentation page for the interface (e.g. Comparable) that includes all implementing classes for the interface as well as any subinterfaces (though it doesn't include implementing classes of the subinterfaces, these are relatively easy to determine by drilling down into the listed subinterfaces). It's this functionality that I'm looking for but with C# and Visual Studio.
Answer by Mohit Chakraborty for How do you find all implementations of an interface?
I don't think this functionality is inbuilt into VS but IIRC Resharper has this.
Answer by Canavar for How do you find all implementations of an interface?
If you use resharper ALT + END shortcut might help to find all Inheritors.
Answer by Jon Skeet for How do you find all implementations of an interface?
(Edit based on comment...)
If you have ReSharper installed:
In Visual Studio, right click on the type name and choose "Go to Inheritor". Alternatively, select the type name, then go to ReSharper/View/Type Hierarchy to open up a new tab. (The menu will show you the keyboard shortcut - this can vary, which is why I explained how to find it :)
If you don't have ReSharper:
- You can use Reflector, which is able to show you all the type hierarchy very easily - just under the type name are expandable items for base types and derived types. Similar tools are available such as ILSpy and dotPeek.
- Buy ReSharper - it's a great tool :)
Answer by overslacked for How do you find all implementations of an interface?
I've heard tell (no experience myself) that Doxygen is to .Net as as javadoc is to java.
Answer by phoose for How do you find all implementations of an interface?
You can right click a method name (definition in interface or implementation in other class) and choose View Call Hierarchy. In Call Hierarchy window there is "Implements" folder where you can find all locations of the interface method implementation.
Answer by P.Brian.Mackey for How do you find all implementations of an interface?
With Visual Studio 2010+
Right click a member method and choose view call hierarchy. Expand the Implements folder. This lists all the types that implement the interface the method belongs to.
With Resharper 7
Right Click the interface > Navigate To > Derived Symbols. The symbols listed in bold derive directly from the interface. Non-bold symbols derive from a superclass.
Answer by JonMac1374 for How do you find all implementations of an interface?
For anyone still using VS2010, here's a solution that lets you wire up a keyboard shortcut to achieve this, assuming you only have 1 interface implementation (it goes to the first implementation found).
- Go to
OK, close down options.
Alt + F8 to bring up the Macro Explorer
Put this code in the place of the new macro (it'll be something like Sub Macro1()...End Sub
Sub GoToImplementation() '//Open call hierarchy SendKeys.SendWait("+^%K") '//Restore navigation to predictable state SendKeys.SendWait("{DOWN}") SendKeys.SendWait("{DOWN}") SendKeys.SendWait("{LEFT}") SendKeys.SendWait("{LEFT}") SendKeys.SendWait("{LEFT}") '//Navigate to the implements branch SendKeys.SendWait("{RIGHT}") SendKeys.SendWait("{DOWN}") SendKeys.SendWait("{DOWN}") SendKeys.SendWait("{DOWN}") SendKeys.SendWait("{RIGHT}") '//Go to the first implentation and open it SendKeys.SendWait("{DOWN}") SendKeys.SendWait("{ENTER}") End Sub
Answer by AkiraYamamoto for How do you find all implementations of an interface?
Use Shift + F12 to show all references, including the definitions.
Answer by Kees C. Bakker for How do you find all implementations of an interface?
You could do a regular expression search for the interface.
:(\ *[^},]+,)*\ *IMyInterfaceName
CTRL+SHIFT+F launches the following window:
Answer by Tony L. for How do you find all implementations of an interface?
I prefer the "Navigate To..." option. With your cursor on the function, try the following:
Shortcut Key:
- Ctrl+, (Ctrl+comma)
Menu:
- Edit Menu
- Click "Navigate To..."
Benefits:
- Doesn't show all references like "Find All References"
- Shows the "type" of the implementation so it will note which is your interface
Answer by Nik A. for How do you find all implementations of an interface?
For those using Visual Studio 2015, there is this awesome extension called Go To Implementation. Give it a try.
Once you've installed the extension, you can just right click at any occurrences of the interface (e.g. IUrlShortener) and click on Go To Implementation
menu. If you only have one class that implements the interface, clicking the menu will bring you directly to the class. If you have more than one class that implements the interface, it will list all the classes.
Answer by Nate Cook for How do you find all implementations of an interface?
For those using Visual Studio 2015, install Visual Studio 2015 Update 1 RC. From the Visual Studio blog:
Today we released Visual Studio 2015 Update 1 RC, which builds on the Update 1 CTP we released three weeks ago. In addition to the features introduced in the CTP as described here, the Release Candidate includes the following:
- Go To Implementation. The feature many of you have been waiting for: just right-click on an interface or abstract method and select this command to navigate to the implementation.
Answer by Bahtiyar Özdere for How do you find all implementations of an interface?
Put the cursor to class or interface type and
CTRL + F12
Fatal error: Call to a member function getElementsByTagName() on a non-object in D:\XAMPP INSTALLASTION\xampp\htdocs\endunpratama9i\www-stackoverflow-info-proses.php on line 72
0 comments:
Post a Comment