Beispiel #1
0
        /// <summary>调用委托</summary>
        /// <param name="e"></param>
        public void Invoke(TArgs e)
        {
            //if (!Target.IsAlive) return;
            // Keep in mind that,不要用上面的写法,因为判断可能通过,但是接着就被GC回收了,如果判断Target,则会增加引用
            Object target = null;

            if (Target == null)
            {
                if (Method.Method.IsStatic)
                {
                    Method.Invoke(null, new Object[] { e });
                }
            }
            else
            {
                target = Target.Target;
                if (target != null)
                {
                    Method.Invoke(target, new Object[] { e });
                }
            }

            // 调用方已被回收,或者该事件只使用一次,则取消注册
            if ((Target != null && target == null || Once) && UnHandler != null)
            {
                UnHandler(Handler);
                UnHandler = null;
            }
        }
Beispiel #2
0
        protected override void CreateDatabase()
        {
            //base.CreateDatabase();

            if (String.IsNullOrEmpty(FileName) || File.Exists(FileName))
            {
                return;
            }

            //The miminum you must specify:

            //Hashtable parameters = new Hashtable();
            //parameters.Add("User", "SYSDBA");
            //parameters.Add("Password", "masterkey");
            //parameters.Add("Database", @"c:\database.fdb");
            //FbConnection.CreateDatabase(parameters);

            DAL.WriteDebugLog("创建数据库:{0}", FileName);

            DbConnection conn   = Database.Factory.CreateConnection();
            MethodInfoX  method = MethodInfoX.Create(conn.GetType(), "CreateDatabase", new Type[] { typeof(String) });

            if (method == null)
            {
                return;
            }

            method.Invoke(null, Database.ConnectionString);
        }
Beispiel #3
0
 public void Shrink()
 {
     MethodInfoX.Invoke <Object>(Engine, "Shrink");
 }
Beispiel #4
0
 public void CreateDatabase()
 {
     MethodInfoX.Invoke <Object>(Engine, "CreateDatabase");
 }