예제 #1
0
 /// <summary>
 /// Agrega todos los plugins disponibles de el assembly
 /// que pasa como argumento y ademas evalua un criterio
 /// de acceptacion
 /// </summary>
 /// <param name="assembly"></param>
 /// <returns></returns>
 public PluginLoader Load(Assembly assembly, Predicate <Type> predicate)
 {
     PluginAssets
     .AddRange(
         assembly
         .FromContract <IPlugin>()
         .Where(x => predicate(x))
         );
     return(this);
 }
예제 #2
0
 // Checkea si un plugins esta disponible para agregarlos a una lista de instancias
 private void CheckAvaliable()
 {
     if (PluginAssets.Count > 0)
     {
         Plugins.AddRange(
             PluginAssets
             .Instance <IPlugin>()
             .Execute(Configure)
             );
         PluginAssets.Clear();
     }
 }
예제 #3
0
 /// <summary>
 /// Agrega todos los plugins disponibles de el assembly
 /// que pasa como argumento
 /// </summary>
 /// <param name="assembly"></param>
 /// <returns></returns>
 public PluginLoader Load(Assembly assembly)
 {
     PluginAssets.AddRange(assembly.FromContract <IPlugin>());
     return(this);
 }
예제 #4
0
 /// <summary>
 /// Agrega un una lista de tipos como plugins
 /// </summary>
 /// <param name="types"></param>
 /// <returns></returns>
 public PluginLoader Load(IEnumerable <Type> types)
 {
     PluginAssets.AddRange(types);
     return(this);
 }
예제 #5
0
 /// <summary>
 /// Agrega un tipo como plugin
 /// </summary>
 /// <param name="type"></param>
 /// <returns></returns>
 public PluginLoader Load(Type type)
 {
     PluginAssets.Add(type);
     return(this);
 }
 private void Awake()
 {
     Instance = this;
 }