Example #1
0
        /// <summary>
        /// Get all the hardware providers
        /// </summary>
        /// <param name="baseType"></param>
        /// <returns></returns>
        public static List <IHardwareProxyProvider> GetProviders(Type baseType)
        {
            var availabelType = GetAssignableFrom(typeof(IHardwareProxyProvider));

            List <IHardwareProxyProvider> ret = new List <IHardwareProxyProvider>();

            foreach (Type type in availabelType)
            {
                if (!type.IsAbstract)
                {
                    BrowsableAttribute attribute = Attribute.GetCustomAttribute(type, typeof(BrowsableAttribute)) as BrowsableAttribute;
                    if (attribute == null || (attribute != null && attribute.Browsable))
                    {
                        IHardwareProxyProvider provider = (IHardwareProxyProvider)Activator.CreateInstance(type);
                        if (provider != null)
                        {
                            if (baseType.IsAssignableFrom(provider.GenerateType))
                            {
                                ret.Add(provider);
                            }
                        }
                    }
                }
            }
            ret = ret.OrderBy(x => x.Name).ToList();
            return(ret);
        }
 private void MenuItem_Click(object sender, EventArgs e)
 {
     if (sender is MenuItem)
     {
         var mi = (MenuItem)sender;
         IHardwareProxyProvider provider = ((IHardwareProxyProvider)mi.Tag);
         LaunchProvider(provider);
         AlignInterface();
     }
 }
        public void LaunchProvider(IHardwareProxyProvider provider)
        {
            /// else find the type selectorDialog and register
            object proxy = provider.Select(this);

            if (proxy != null)
            {
                Settings.RegisterInstance(proxy, true);
                NotifyChange();
            }
            AlignInterface();
        }
 private void UnregisterInstance(IHardwareProxyProvider provider)
 {
     UnregisterInstance(provider.GenerateType);
 }