예제 #1
0
        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);
        }
예제 #2
0
 /// <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;
     }
 }