Возможный дубликат:
Метод переноса С# через атрибуты
Я хотел бы достичь такой функциональности:
[Atomic]
public void Foo()
{
/* foo logic */
}
Где атрибут [Atomic]
- это атрибут, который переносит функциональную логику в пределах транзакции:
using(var scope = new TransactionScope())
{
/* foo logic */
scope.Complete();
}
Как написать такой атрибут?
Я попросил в основном тот же question, я знаю, что это можно сделать с помощью AOP, но я не упоминал, что я ищу некоторые простейшее доказательство реализации концепции или полезные статьи, которые могут помочь мне написать это, используя чистую .NET Framework (я полагаю, используя типы RealProxy
и MarshalByRefObject
, о которых я прочитал связанные с просмотром вопросы).
Мне нужно решить именно этот показанный пример. Это похоже на основную вещь, поэтому я хочу научиться делать это с нуля. На данный момент он не должен быть безопасным и гибким.