#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