Пример #1
0
        private static IBooksProvider GetPlugin(Assembly assembly, IRestRequestManager reqMngr)
        {
            if (assembly == null)
            {
                throw new ArgumentNullException(nameof(assembly), "assembly cannot be null.");
            }

            Type availableTypes2 =
                assembly.ExportedTypes.FirstOrDefault(type => type.GetInterface("IBooksProvider") != null);


            //  Type availableTypes = assembly.DefinedTypes.FirstOrDefault(info => info.Name == "IBooksProvider");//. .GetInterface("IBooksProvider");


//.FirstOrDefault(info => info.ImplementedInterfaces.FirstOrDefault(type => type.Name == "IBooksProvider") != null );

            if (availableTypes2 != null)
            {
                return((IBooksProvider)Activator.CreateInstance(availableTypes2, reqMngr));
                //              var res = Activator.CreateInstance(availableTypes);
            }
            //return Activator.CreateInstance(availableTypes) as IBooksProvider;
            return(null);
        }
Пример #2
0
 public GoogleBookProvider(IRestRequestManager restMngr)
 {
     this.restMngr = restMngr;
 }
Пример #3
0
        public static IBooksProvider GetPluginFromFolder(string pluginName, string pluginFolder, IRestRequestManager reqMngr)
        {
            var assembly = LoadPlugInAssembly(pluginName, pluginFolder);

            return(GetPlugin(assembly, reqMngr));
        }