Click here to Skip to main content
15,886,873 members
Home / Discussions / C#
   

C#

 
GeneralRe: c# windows application Pin
naghoumeh144-Jan-10 23:46
naghoumeh144-Jan-10 23:46 
GeneralRe: c# windows application Pin
OriginalGriff5-Jan-10 0:00
mveOriginalGriff5-Jan-10 0:00 
AnswerRe: c# windows application Pin
Programm3r4-Jan-10 23:12
Programm3r4-Jan-10 23:12 
AnswerRe: c# windows application Pin
Isaac Gordon6-Jan-10 1:25
Isaac Gordon6-Jan-10 1:25 
QuestionException context in C# Pin
Antoine Jaussoin4-Jan-10 22:51
Antoine Jaussoin4-Jan-10 22:51 
AnswerRe: Exception context in C# Pin
Nicholas Butler4-Jan-10 23:20
sitebuilderNicholas Butler4-Jan-10 23:20 
GeneralRe: Exception context in C# Pin
Antoine Jaussoin5-Jan-10 0:10
Antoine Jaussoin5-Jan-10 0:10 
GeneralRe: Exception context in C# Pin
Nicholas Butler5-Jan-10 0:30
sitebuilderNicholas Butler5-Jan-10 0:30 
There's no Exception.Current property or similar that I know of, so I think you're going to have to implement this explicitly.

My second example in my previous post can work. I've removed the name clash to make it clearer:

C#
 // no exception
using ( var work = Dao.GetUnitOfWork() )
{
  Console.WriteLine( "Everything works" );

  work.RegisterSuccess(); // always last line of using block
}


C#
 // exception thrown
using ( var work = Dao.GetUnitOfWork() )
{
  throw new Exception();

  work.RegisterSuccess(); // always last line of using block
}


C#
partial class UnitOfWork
{
  private bool _Success = false;

  public void RegisterSuccess() { _Success = true; }

  public void Dispose()
  {
    if ( _Success )
      Commit();
    else
      Rollback();
  }
}


When an exception is not thrown, work.RegisterSuccess() is called and _Success is set to true, so you can call Commit() in Dispose().

When an exception is thrown, work.RegisterSuccess() is not called and _Success is still false, so you call Rollback() is Dispose().

Is that what you wanted?

Nick

----------------------------------
Be excellent to each other Smile | :)

GeneralRe: Exception context in C# Pin
Antoine Jaussoin5-Jan-10 1:21
Antoine Jaussoin5-Jan-10 1:21 
GeneralRe: Exception context in C# Pin
Nicholas Butler5-Jan-10 1:35
sitebuilderNicholas Butler5-Jan-10 1:35 
GeneralRe: Exception context in C# Pin
Luc Pattyn5-Jan-10 2:26
sitebuilderLuc Pattyn5-Jan-10 2:26 
QuestionEnumerate eventlog sources Pin
Sunil G4-Jan-10 22:02
Sunil G4-Jan-10 22:02 
AnswerRe: Enumerate eventlog sources Pin
Programm3r4-Jan-10 23:19
Programm3r4-Jan-10 23:19 
AnswerRe: Enumerate eventlog sources Pin
Programm3r4-Jan-10 23:31
Programm3r4-Jan-10 23:31 
GeneralRe: Enumerate eventlog sources Pin
Sunil G5-Jan-10 1:31
Sunil G5-Jan-10 1:31 
QuestionC# Avr Pin
jojoba20104-Jan-10 21:30
jojoba20104-Jan-10 21:30 
AnswerRe: C# Avr Pin
OriginalGriff4-Jan-10 21:56
mveOriginalGriff4-Jan-10 21:56 
QuestionRe: C# Avr Pin
jojoba20104-Jan-10 22:00
jojoba20104-Jan-10 22:00 
AnswerRe: C# Avr Pin
OriginalGriff4-Jan-10 22:15
mveOriginalGriff4-Jan-10 22:15 
AnswerRe: C# Avr Pin
Luc Pattyn5-Jan-10 2:32
sitebuilderLuc Pattyn5-Jan-10 2:32 
QuestionHelp Pin
levan omadze4-Jan-10 20:58
levan omadze4-Jan-10 20:58 
AnswerRe: Help Pin
0x3c04-Jan-10 21:11
0x3c04-Jan-10 21:11 
GeneralRe: Help Pin
levan omadze4-Jan-10 21:43
levan omadze4-Jan-10 21:43 
GeneralRe: Help Pin
0x3c05-Jan-10 5:58
0x3c05-Jan-10 5:58 
AnswerRe: Help Pin
Game-point4-Jan-10 21:58
Game-point4-Jan-10 21:58 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.