Eventuali duplicati:
C# wrap method via attributesimplementazione di base di AOP come attributo utilizzando standard di .NET Framework
mi piacerebbe ottenere tale funzionalità:
[Atomic]
public void Foo()
{
/* foo logic */
}
Dove [Atomic]
attributo è un attributo che racchiude la logica della funzione nell'ambito di una transazione:
using(var scope = new TransactionScope())
{
/* foo logic */
scope.Complete();
}
Come scrivere un attributo simile?
Ho chiesto prima sostanzialmente lo stesso question, so che questo può essere fatto utilizzando AOP, ma non ho menzionato sto cercando qualche semplice prova di implementazione del concetto o articoli utili che possono aiutarmi a scrivere questo utilizzando puro .NET Framework (suppongo che utilizzi i tipi RealProxy
e MarshalByRefObject
, di cui ho letto le domande relative alla navigazione).
Ho bisogno di risolvere esattamente questo esempio mostrato. Sembra una cosa fondamentale quindi voglio imparare come farlo partendo da zero. Per ora non ha bisogno di essere sicuro e flessibile.
Se stai facendo questo per la tua istruzione, va bene, ma se stai facendo questo per risolvere un requisito aziendale, allora è già stato fatto per te in WCF e COM +. –