예제 #1
0
        /// <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);
        }
예제 #2
0
 // 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);
     }
 }
예제 #3
0
 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);
     }
 }
예제 #4
0
 internal AddinExtension(AddinRecord addinRecord, AddinEngine addinEngine, DefaultAddinContext addinContext)
 {
     _addinRecord  = addinRecord;
     _addinEngine  = addinEngine;
     _addinContext = addinContext;
 }