private void PopulateMetaInfoFromType(TransactionMetaInfo metaInfo, Type implementation)
{
if (implementation == typeof(object) || implementation == typeof(MarshalByRefObject)) return;
MethodInfo[] methods = implementation.GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.DeclaredOnly);
foreach (MethodInfo method in methods)
{
object[] atts = method.GetCustomAttributes(typeof(TransactionAttribute), true);
if (atts.Length != 0)
{
metaInfo.Add(method, atts[0] as TransactionAttribute);
}
}
PopulateMetaInfoFromType(metaInfo, implementation.BaseType);
}