Ejemplo n.º 1
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.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;
     })));
 }
Ejemplo n.º 2
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));
 }