Exemplo n.º 1
0
        PluginConfigAccessor GetConfigAccessor(INamedVersionedUniqueId idEdited)
        {
            Debug.Assert(idEdited != null);
            Debug.Assert(_contextObject != null);

            // Switch from whatever INamedVersionedUniqueId is to IPluginProxy... if it is loaded.
            IPluginProxy p = idEdited as IPluginProxy;

            if (p == null)
            {
                p = (IPluginProxy)_host.FindLoadedPlugin(idEdited.UniqueId, true);
                if (p == null)
                {
                    _configAccessors.Remove(idEdited);
                    return(null);
                }
            }
            PluginConfigAccessor result;

            if (!_configAccessors.TryGetValue(p, out result))
            {
                result = new PluginConfigAccessor(p, _config.Extended, _contextObject);
                _configAccessors.Add(p, result);
            }
            return(result);
        }
Exemplo n.º 2
0
        private void ConfigureConfigAccessors(IPluginProxy p)
        {
            Type pType = p.RealPluginObject.GetType();

            foreach (IPluginConfigAccessorInfo e in p.PluginKey.EditorsInfo)
            {
                Debug.Assert(e.Plugin == p.PluginKey);
                if (e.IsConfigurationPropertyValid)
                {
                    // The PluginConfigAccessor may be null.
                    PluginConfigAccessor a       = GetConfigAccessor(e.EditedSource);
                    PropertyInfo         pEdited = pType.GetProperty(e.ConfigurationPropertyName);
                    Debug.Assert(pEdited != null);
                    pEdited.SetValue(p.RealPluginObject, a, null);
                }
            }
        }
 PluginConfigAccessor GetConfigAccessor( INamedVersionedUniqueId idEdited )
 {
     Debug.Assert( idEdited != null );
     Debug.Assert( _contextObject != null );
     
     // Switch from whatever INamedVersionedUniqueId is to IPluginProxy... if it is loaded.
     IPluginProxy p = idEdited as IPluginProxy;
     if( p == null )
     {
         p = (IPluginProxy)_host.FindLoadedPlugin( idEdited.UniqueId, true );
         if( p == null )
         {
             _configAccessors.Remove( idEdited );
             return null;
         }
     }            
     PluginConfigAccessor result;
     if( !_configAccessors.TryGetValue( p, out result ) )
     {
         result = new PluginConfigAccessor( p, _config.Extended, _contextObject );
         _configAccessors.Add( p, result );
     }
     return result;
 }