是否有可能獲得有關方法返回的運行時信息?瞭解該方法返回的部分
我的意思是,如果該方法在運行其所有代碼行之後返回,或者由於某種情況而發生的較早的 返回語句。
該場景使用攔截器來創建應存在於方法範圍內的UnitOfWork。 例如,讓我們考慮這樣的代碼:
[UnitOfWork]
public void Foo()
{
// insert some values to the database, using repositories interfaces...
DoSomeChangesInTheDataBaseUsingRepositories();
var result = DoSomethingElse();
if (!result) return;
DoMoreLogicBecuseTheResultWasTrue();
}
我有打開螺紋工作的靜態單位來表示該標記有[的UnitOfWork],並且當該方法的範圍結束運行它提交的UOW方法攔截器類並處置它。
這很好,但讓我們考慮一下上面的場景,由於某些原因,程序員因某種原因決定返回方法的中間位置,並且在這種情況下,存儲庫所做的更改不應保留。
我知道這可能表明該方法的設計錯誤,但請注意,這是一個可能由程序員編寫的場景,我想從這些場景中捍衛我的數據庫。
此外,我不想向方法本身添加代碼,它會告訴我它在哪裏結束。我想通過方法info以某種方式推斷它的返回點,並且如果它不在其範圍的末端,攔截器將知道不會提交。
您的場景是什麼?您想完成什麼? –
並非沒有合作/重寫。 –
創建一些日誌 –