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))); } } } }
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)); }
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()); }
public ApplicationPartLoaded(ApplicationParts part) { Part = part; }