/// <summary> /// Create an <see cref="Addin"/> instance. /// </summary> /// <param name="addinEngine"></param> /// <param name="addinFramework"></param> /// <param name="addinRecord"></param> internal Addin(AddinEngine addinEngine, AddinFramework addinFramework, AddinRecord addinRecord) { _addinEngine = addinEngine; _addinRecord = addinRecord; _addinContext = new DefaultAddinContext(addinFramework, this); _addinRuntime = new AddinRuntime(addinEngine.RuntimeAssemblyResolver, this); _addinFile = new AddinFile(addinRecord); _addinExtension = new AddinExtension(addinRecord, addinEngine, _addinContext); }
// if there is any extension points has been loaded for which this addin extends, loads the extension builders and extensions of this addin [addinRecord] // that extending the extension point. internal void LoadIntoLoadedExtensionPoints(DefaultAddinContext adnContext, AddinRecord addinRecord) { if (_runtimeExtensionLoader.LoadedExtensionPointCount == 0) { return; } for (int i = 0; i < _runtimeExtensionLoader.LoadedExtensionPointCount; i++) { var loadedExtensionPointRecord = _runtimeExtensionLoader.GetLoadedExtensionPoint(i); LoadIntoExtensionPoint(adnContext, loadedExtensionPointRecord); } }
internal void UnloadFromLoadedExtensionPoints(DefaultAddinContext adnContext) { if (_runtimeExtensionLoader.LoadedExtensionPointCount == 0) { return; } for (int i = 0; i < _runtimeExtensionLoader.LoadedExtensionPointCount; i++) { var loadedExtensionPointRecord = _runtimeExtensionLoader.GetLoadedExtensionPoint(i); UnloadFromExtensionPoint(adnContext, loadedExtensionPointRecord); } }
internal AddinExtension(AddinRecord addinRecord, AddinEngine addinEngine, DefaultAddinContext addinContext) { _addinRecord = addinRecord; _addinEngine = addinEngine; _addinContext = addinContext; }