Exemplo n.º 1
0
 public void LoadApplicationParts(List <Type> types)
 {
     foreach (var type in types)
     {
         // Load parts
         var attr = (TLCGenPluginAttribute)type.GetCustomAttribute(typeof(TLCGenPluginAttribute));
         if (attr != null)
         {
             ApplicationParts.Add(
                 new Tuple <TLCGenPluginElems, ITLCGenPlugin>(
                     attr.PluginElements,
                     (ITLCGenPlugin)Activator.CreateInstance(type)));
         }
         else
         {
             // load tabs
             var attrt = (TLCGenTabItemAttribute)type.GetCustomAttribute(typeof(TLCGenTabItemAttribute));
             if (attrt != null)
             {
                 ApplicationParts.Add(
                     new Tuple <TLCGenPluginElems, ITLCGenPlugin>(
                         TLCGenPluginElems.TabControl,
                         (ITLCGenPlugin)Activator.CreateInstance(type)));
             }
         }
     }
 }
Exemplo n.º 2
0
        public static IEnumerable <Type> FindTypesInAssemblies(Predicate <Type> predicate)
        {
            var assemblyParts = ApplicationParts.OfType <AssemblyPart>();
            var result        = (
                from assemblyPart in assemblyParts
                let assembly = assemblyPart.Assembly
                               select assembly);

            return(FindTypesInAssemblies(result, predicate));
        }
Exemplo n.º 3
0
        public static Assembly FindAssembyByName(string name)
        {
            /*
             * IEnumerable<AssemblyName> assemblyNames = DependencyContext.Default.GetDefaultAssemblyNames();
             * var resultQ = (
             * from aName in assemblyNames
             *               where System.String.Compare(name, aName.Name, System.StringComparison.OrdinalIgnoreCase) == 0
             * select aName);
             * var assemblyName = resultQ.FirstOrDefault();
             * Assembly assembly = Assembly.Load(assemblyName);
             * return assembly;
             */

            var assemblyParts = ApplicationParts.OfType <AssemblyPart>();
            var result        = (
                from assemblyPart in assemblyParts
                let assemblyName = assemblyPart.Assembly.GetName()
                                   where System.String.Compare(name, assemblyName.Name, System.StringComparison.OrdinalIgnoreCase) == 0
                                   select assemblyPart.Assembly);

            return(result.FirstOrDefault());
        }
Exemplo n.º 4
0
 public ApplicationPartLoaded(ApplicationParts part)
 {
     Part = part;
 }