WoF_Angel WoF_Angel - 1 month ago 10
C# Question

Run a method before all methods of a class

Is it possible to do that in C# 3 or 4? Maybe with some reflection?

class Magic{

[RunBeforeAll]
public void BaseMethod(){
}

//runs BaseMethod before being executed
public void Method1(){
}

//runs BaseMethod before being executed
public void Method2(){
}
}


Thanks

EDIT--------------------------

There is an alternate solution for this, make Magic a singleton and put your code on the getter of the static instance. That's what i did.

public class Magic{

private static Magic magic = new Magic();
public static Magic Instance{
get
{
magic.BaseMethod();
return magic;
}
}

public void BaseMethod(){
}

//runs BaseMethod before being executed
public void Method1(){
}

//runs BaseMethod before being executed
public void Method2(){
}
}

Answer

There is an alternate solution for this, make Magic a singleton and put your code on the getter of the static instance. That's what i did.

public class Magic{

private static Magic magic;
public static Magic Instance{
  get
    {
   BaseMethod();
    return magic;
    }
}

public void BaseMethod(){
}

//runs BaseMethod before being executed
public void Method1(){
}

//runs BaseMethod before being executed
public void Method2(){
}
}