Ich versuche RunOutOfProcessAttribute
einen Postsharp Aspekt einzurichten, so dass es gilt für:einen Aspekt nur Methoden anwenden, die ein bestimmtes Attribut haben
- alle öffentlichen Methoden
- jede Methode mit dem
DoSpecialFunctionAttribute
gekennzeichnet, unabhängig von der Zugänglichkeit für Mitglieder (öffentlich/geschützt/privat/was auch immer).
Bisher meine RunOutOfProcessAttribute
ist thusly definiert:
[Serializable]
[MulticastAttributeUsage(MulticastTargets.Method, TargetMemberAttributes = MulticastAttributes.Public)]
[AttributeUsage(AttributeTargets.Class)]
public class RunOutOfProcessAttribute : MethodInterceptionAspect
{
public override void OnInvoke(MethodInterceptionArgs args)
{
...
}
}
Die MulticastAttributeUsageAttribute
bereits an Ort und Stelle sollte 1 oben Kriterium erfüllen, aber ich habe keine Ahnung, wie 2 erfüllen Kriterium ohne einfach das Duplizieren Verhalten des vorhandenen Aspekts in ein neues Attribut.
Wie würde ich diesen Aspekt auf jede mit der DoSpecialFunctionAttribute
gekennzeichnete Methode anwenden, unabhängig von der Zugänglichkeit für Mitglieder (öffentlich/geschützt/privat/was auch immer)?
im verwirrt, warum dies erforderlich ist. Wenn Sie bereits ein DoSpecialFunctionAttribute haben, warum sollten Sie nicht einfach die Funktion in dieses Attribut einfügen? anstatt einen ANDEREN Aspekt zu erschaffen. – caesay
Ich möchte in der Lage sein, 'RunOutOfProcessAttribute' auf eine Klasse zu setzen, da es ein Klassenverhalten eher definiert als ein Methodenverhalten. 'RunOutOfProcessAttribute' sollte mit * all * öffentlichen Klassenmethoden arbeiten, zusätzlich zu allen geschützten Klassen, die mit' DoSpecialFunctionAttribute' gekennzeichnet sind. 'DoSpecialFunctionAttribute' ist kein Aspekt. –