private static CadKit.Interfaces.IPlugin _getInterface(string file, System.Reflection.Assembly assembly) { CadKit.Interfaces.IClassFactory factory = (CadKit.Interfaces.IClassFactory)assembly.CreateInstance("CadKit.Plugins.Factory"); if (null == factory) { throw new System.Exception("Error 1407956654: Assembly file " + file + " does not have a class factory"); } CadKit.Interfaces.IPlugin plugin = (CadKit.Interfaces.IPlugin)factory.createInstance("CadKit.Interfaces.IPlugin"); if (null == plugin) { throw new System.Exception("Error 1689831654: Failed to create plugin instance in assembly file: " + file); } return(plugin); }
/// <summary> /// Return a new plugin interface. /// </summary> private static CadKit.Interfaces.IPlugin _createInstance(CadKit.Interfaces.IClassFactory factory, string file) { try { object temp = factory.createInstance("CadKit.Interfaces.IPlugin"); if (null == temp) { throw new System.Exception(System.String.Format("Error 3887634468: Failed to create plugin instance in assembly file: {0}", file)); } using (PluginHandle plugin = new PluginHandle(temp as CadKit.Interfaces.IPlugin)) { if (false == plugin.Valid) { throw new System.Exception(System.String.Format("Error 1228345170: object created in assembly file '{0}' is not a plugin", file)); } return(plugin.release()); } } catch (System.Exception e) { System.Console.WriteLine("Error 1716255460: Failed to create plugin interface in assembly file '{0}', {1}", file, e.Message); throw; } }