public void PerformAction() { Class1A c1a = new Class1A(); Class1B c1b = new Class1B(); Class2A c2a = new Class2A(); Class2B c2b = new Class2B(); int result1a = c1a.Method1A(); int result1b = c1b.Method1B(result1a); int result2a = c2a.Method2A(result1a); c2b.Method2B(result1b, result2a); }
static void Main(string[] args) { Class1A.Dummy(); Class1B.Dummy(); foreach (var assem in AppDomain.CurrentDomain.GetAssemblies()) { foreach (var type in assem.GetTypes()) { var att = type.GetCustomAttribute(typeof(MyFlagsAttribute)); if (att == null) { continue; } if (type.GetMethod("Save") == null) { continue; } type.InvokeMember("Save", BindingFlags.Static | BindingFlags.Public | BindingFlags.InvokeMethod, null, null, null); } } }