#25: Core Refactoring: IExtension Refactor
-----------------------+----------------------------------------------------
 Reporter:  sier       |       Owner:  sier 
     Type:  task       |      Status:  new  
 Priority:  normal     |   Milestone:  0.2.0
Component:  core       |     Version:       
 Severity:  normal     |    Keywords:       
  Profile:  developer  |  
-----------------------+----------------------------------------------------
 Ich möchte jene Methoden auf {{{IExtension}}} eliminieren, welche eine
 internen Charakter haben und deren Funktion mit Ereignisse ersetzten.
  * {{{NotifyPlug}}}
  * {{{NotifyUnPlug}}}
  * {{{CanPlugExtension}}}
  * {{{CanPligManaer}}}

 Es soll nur noch eine Methode {{{OnPlug(IPlugContext)}}} geben. Diese
 Methode ersetzt {{{CanPlugManager(IExtensionManager)}}}. Der Plug-Kontext
 sieht etwa so aus:
 {{{
 public interface IPlugContext {
    IExtensionManager Manager { get; }
    IExtension Extension { get; }
    ExtensionPoint Point { get; }
    PlugContextState State { get; }
    bool Success { get; set; }
    event EventHandler<IPlugContext> PlugContextChange;
 }
 }}}
 In {{{OnPlug()}}} geht es darum in erster Linie festzulegen ob die
 Erweiterung in den Manager aufgenommen werden darf und zweitens darum den
 optionalen Ereignis-Handler  zu setzen. Erweiterung die von
 {{{Extension}}} erben, denen stehen fix fertige geschützt Methoden zu
 überschreiben bereit.

-- 
Ticket URL: <http://trac.pm3.ch/ticket/25>
Pm3 <http://www.pm3.ch/>
Pm3
_______________________________________________
devel mailing list
[email protected]
https://lists.pm3.ch/mailman/listinfo/devel

Antwort per Email an