IGLib  1.7.2
The IGLib base library EXTENDED - with other lilbraries and applications.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros
NUnit.Engine.Services.ExtensionService Class Reference

The ExtensionService discovers ExtensionPoints and Extensions and maintains them in a database. It can return extension nodes or actual extension objects on request. More...

+ Inheritance diagram for NUnit.Engine.Services.ExtensionService:
+ Collaboration diagram for NUnit.Engine.Services.ExtensionService:

Public Member Functions

ExtensionPoint GetExtensionPoint (string path)
 Get an ExtensionPoint based on it's unique identifying path. More...
 
ExtensionPoint GetExtensionPoint (Type type)
 Get an ExtensionPoint based on the required Type for extensions. More...
 
ExtensionPoint GetExtensionPoint (TypeReference type)
 Get an ExtensionPoint based on a Cecil TypeReference. More...
 
IEnumerable< ExtensionNodeGetExtensionNodes (string path)
 
ExtensionNode GetExtensionNode (string path)
 
IEnumerable< ExtensionNodeGetExtensionNodes< T > ()
 
IEnumerable< T > GetExtensions< T > ()
 
override void StartService ()
 Initialize the Service More...
 
- Public Member Functions inherited from NUnit.Engine.Services.Service
virtual void StopService ()
 Do any cleanup needed before terminating the service More...
 
void Dispose ()
 

Properties

IEnumerable< ExtensionPointExtensionPoints [get]
 
IEnumerable< ExtensionNodeExtensions [get]
 
- Properties inherited from NUnit.Engine.Services.Service
IServiceLocator ServiceContext [get, set]
 The ServiceContext More...
 
ServiceStatus Status [get, protected set]
 Gets the ServiceStatus of this service More...
 
- Properties inherited from NUnit.Engine.IService
IServiceLocator ServiceContext [get, set]
 The ServiceContext More...
 
ServiceStatus Status [get]
 Gets the ServiceStatus of this service More...
 

Private Member Functions

void FindExtensionPoints (Assembly assembly)
 Find the extension points in a loaded assembly More...
 
ExtensionPoint DeduceExtensionPointFromType (TypeReference typeRef)
 Deduce the extension point based on the Type of an extension. Returns null if no extension point can be found that would be satisfied by the provided Type. More...
 
void FindExtensionsInDirectory (DirectoryInfo startDir)
 Scans a directory for addins. Note that assemblies in the directory are only scanned if no file of type .addins is found. If such a file is found, then those assemblies it references are scanned. More...
 
void ProcessAddinsFile (DirectoryInfo baseDir, string fileName)
 Process a .addins type file. The file contains one entry per line. Each entry may be a directory to scan, an assembly path or a wildcard pattern used to find assemblies. Blank lines and comments started by # are ignored. More...
 
void FindExtensionsInAssembly (string assemblyName)
 Scan a single assembly for extensions marked by ExtensionAttribute. For each extension, create an ExtensionNode and link it to the correct ExtensionPoint. More...
 

Private Attributes

List< ExtensionPoint_extensionPoints = new List<ExtensionPoint>()
 
Dictionary< string,
ExtensionPoint
_pathIndex = new Dictionary<string, ExtensionPoint>()
 
List< ExtensionNode_extensions = new List<ExtensionNode>()
 

Additional Inherited Members

- Protected Member Functions inherited from NUnit.Engine.Services.Service
virtual void Dispose (bool disposing)
 
- Protected Attributes inherited from NUnit.Engine.Services.Service
bool _disposed = false
 

Detailed Description

The ExtensionService discovers ExtensionPoints and Extensions and maintains them in a database. It can return extension nodes or actual extension objects on request.

Member Function Documentation

ExtensionPoint NUnit.Engine.Services.ExtensionService.GetExtensionPoint ( Type  type)
inline

Get an ExtensionPoint based on the required Type for extensions.

ExtensionPoint NUnit.Engine.Services.ExtensionService.GetExtensionPoint ( TypeReference  type)
inline

Get an ExtensionPoint based on a Cecil TypeReference.

IEnumerable<ExtensionNode> NUnit.Engine.Services.ExtensionService.GetExtensionNodes ( string  path)
inline
ExtensionNode NUnit.Engine.Services.ExtensionService.GetExtensionNode ( string  path)
inline
IEnumerable<T> NUnit.Engine.Services.ExtensionService.GetExtensions< T > ( )
inline
override void NUnit.Engine.Services.ExtensionService.StartService ( )
inlinevirtual
ExtensionPoint NUnit.Engine.Services.ExtensionService.DeduceExtensionPointFromType ( TypeReference  typeRef)
inlineprivate

Deduce the extension point based on the Type of an extension. Returns null if no extension point can be found that would be satisfied by the provided Type.

void NUnit.Engine.Services.ExtensionService.FindExtensionsInDirectory ( DirectoryInfo  startDir)
inlineprivate

Scans a directory for addins. Note that assemblies in the directory are only scanned if no file of type .addins is found. If such a file is found, then those assemblies it references are scanned.

void NUnit.Engine.Services.ExtensionService.ProcessAddinsFile ( DirectoryInfo  baseDir,
string  fileName 
)
inlineprivate

Process a .addins type file. The file contains one entry per line. Each entry may be a directory to scan, an assembly path or a wildcard pattern used to find assemblies. Blank lines and comments started by # are ignored.

void NUnit.Engine.Services.ExtensionService.FindExtensionsInAssembly ( string  assemblyName)
inlineprivate

Scan a single assembly for extensions marked by ExtensionAttribute. For each extension, create an ExtensionNode and link it to the correct ExtensionPoint.

References NUnit.Engine.Extensibility.ExtensionPoint.Install(), and NUnit.Engine.Extensibility.ExtensionPoint.Path.

Member Data Documentation

List<ExtensionPoint> NUnit.Engine.Services.ExtensionService._extensionPoints = new List<ExtensionPoint>()
private
Dictionary<string, ExtensionPoint> NUnit.Engine.Services.ExtensionService._pathIndex = new Dictionary<string, ExtensionPoint>()
private
List<ExtensionNode> NUnit.Engine.Services.ExtensionService._extensions = new List<ExtensionNode>()
private

Property Documentation

IEnumerable<ExtensionPoint> NUnit.Engine.Services.ExtensionService.ExtensionPoints
get
IEnumerable<ExtensionNode> NUnit.Engine.Services.ExtensionService.Extensions
get

The documentation for this class was generated from the following file: