SharedInterfaces( System.Collections.Generic.IEnumerable <Bam.Core.Module> objectFiles) { System.Collections.Generic.IEnumerable <System.Type> sharedInterfaces = null; foreach (var input in objectFiles) { var interfaces = input.Settings.GetType().GetInterfaces().Where(item => (item != typeof(Bam.Core.ISettingsBase)) && typeof(Bam.Core.ISettingsBase).IsAssignableFrom(item)); if (null == sharedInterfaces) { sharedInterfaces = interfaces; } else { sharedInterfaces = sharedInterfaces.Intersect(interfaces); } } return(new Bam.Core.TypeArray(sharedInterfaces.OrderByDescending(item => { var precedenceAttribs = item.GetCustomAttributes(typeof(Bam.Core.SettingsPrecedenceAttribute), false); if (precedenceAttribs.Length > 0) { return (precedenceAttribs[0] as Bam.Core.SettingsPrecedenceAttribute).Order; } return 0; }))); }
SharedInterfaces( System.Collections.Generic.IEnumerable <Bam.Core.Module> objectFiles) { System.Collections.Generic.IEnumerable <System.Type> sharedInterfaces = null; foreach (var input in objectFiles) { var interfaces = input.Settings.GetType().GetInterfaces().Where(item => (item != typeof(Bam.Core.ISettingsBase)) && typeof(Bam.Core.ISettingsBase).IsAssignableFrom(item));; if (null == sharedInterfaces) { sharedInterfaces = interfaces; } else { sharedInterfaces = sharedInterfaces.Intersect(interfaces); } } return(new Bam.Core.TypeArray(sharedInterfaces)); }