This document is archived and information here might be outdated. Recommended version. |
ArcObjects Help for .NET developers > ESRI.ArcGIS.Snippets > Snippets > Get Interfaces Snippet (ArcObjects .NET 10.4 SDK) |
Get all matching Interface Types as compared to an unknown object x.
/// <summary> /// Get all matching Interface Types as compared to an unknown object x. /// </summary> /// <param name="anAssembly">A System.Reflection.Assembly that is a .NET Assembly. This would be created by System.Reflection.Assembly.LoadFrom() Method. Example: the Assembly ESRI.ArcGIS.Carto</param> /// <param name="x">A System.Object that is a Class to interrogate. Example: ESRI.ArcGIS.Carto.EnvelopeClass</param> /// <returns>A System.Collection.ArrayList containing a series of System.String values.</returns> /// <remarks></remarks> public System.Collections.ArrayList GetInterfaces(System.Reflection.Assembly anAssembly, object x) { // Create an ArrayList to store the names (strings) of Interfaces that are used by an unknown object x System.Collections.ArrayList returnArrayList=new System.Collections.ArrayList(); //Get the Type of the unknown object x System.Type xType=x.GetType(); //For a specified .NET Assembly obtain all of it's Types in an Array System.Type[] assemblyTypes=anAssembly.GetTypes(); //Loop through all of the Types in the .NET Assembly foreach (System.Type assemblyType in assemblyTypes) { //If the Assembly Type is an Interface proceed if (assemblyType.IsInterface) { //If the Assembly Type matches the unknown object x Type proceed if (assemblyType.IsInstanceOfType(x)) { //Add the fully qualified Interface name of the Assembly Type to the ArrayList returnArrayList.Add(assemblyType.FullName); } } } //Return the ArrayList of matched Initerface names return returnArrayList; }
''' <summary> ''' Get all matching Interface Types as compared to an unknown object x. ''' </summary> ''' <param name="anAssembly">A System.Reflection.Assembly that is a .NET Assembly. This would be created by System.Reflection.Assembly.LoadFrom() Method. Example: the Assembly ESRI.ArcGIS.Carto</param> ''' <param name="x">A System.Object that is a Class to interrogate. Example: ESRI.ArcGIS.Carto.EnvelopeClass</param> ''' <returns>A System.Collection.ArrayList containing a series of System.String values.</returns> ''' <remarks></remarks> Public Function GetInterfaces(ByVal anAssembly As System.Reflection.Assembly, ByVal x As System.Object) As System.Collections.ArrayList ' Create an ArrayList to store the names (strings) of Interfaces that are used by an unknown object x Dim returnArrayList As New System.Collections.ArrayList 'Get the Type of the unknown object x Dim xType As System.Type=x.GetType 'For a specified .NET Assembly obtain all of it's Types in an Array Dim assemblyTypes As System.Type()=anAssembly.GetTypes 'Loop through all of the Types in the .NET Assembly Dim assemblyType As System.Type For Each assemblyType In assemblyTypes 'If the Assembly Type is an Interface proceed If assemblyType.IsInterface Then 'If the Assembly Type matches the unknown object x Type proceed If assemblyType.IsInstanceOfType(x) Then 'Add the fully qualified Interface name of the Assembly Type to the ArrayList returnArrayList.Add(assemblyType.FullName) End If End If Next 'Return the ArrayList of matched Initerface names Return returnArrayList End Function