code_junkie

Assembly.GetCallingAssembly() and static constructors?

Nov 11th, 2011
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. public class TestBase {
  2. private static Assembly _assembly;
  3. private static Assembly _calling_assembly;
  4.  
  5. static TestBase() {
  6. _assembly = Assembly.GetExecutingAssembly();
  7. _calling_assembly = Assembly.GetCallingAssembly();
  8. }
  9. }
  10.  
  11. private static Assembly _assembly;
  12. private static Assembly Assembly {
  13. get {
  14. if (_assembly == null) _assembly = Assembly.GetExecutingAssembly();
  15. return _assembly;
  16. }
  17. }
  18.  
  19. private static Assembly _calling_assembly;
  20. private static Assembly CallingAssembly {
  21. get {
  22. if (_calling_assembly == null) _calling_assembly = Assembly.GetCallingAssembly();
  23. return _calling_assembly;
  24. }
  25. }
  26.  
  27. private static Assembly GetMyCallingAssembly()
  28. {
  29. Assembly me = Assembly.GetExecutingAssembly();
  30.  
  31. StackTrace st = new StackTrace(false);
  32. foreach (StackFrame frame in st.GetFrames())
  33. {
  34. MethodBase m = frame.GetMethod();
  35. if (m != null && m.DeclaringType != null && m.DeclaringType.Assembly != me)
  36. return m.DeclaringType.Assembly;
  37. }
  38.  
  39. return null;
  40. }
Add Comment
Please, Sign In to add comment