Exemplo n.º 1
0
    /// <summary>
    /// 调用类型的 实例 方法。
    /// </summary>
    /// <param name="type">当前类型。</param>
    /// <param name="name">方法名称。</param>
    /// <param name="instance">当前实例。</param>
    /// <param name="args">参数列表。</param>
    /// <returns>返回方法调用的结果。</returns>
    public static object MethodInvoke(
#if !net20
        this
#endif
        object instance, string name, System.Type type, params object[] args)
    {
        return(FastWrapper.MethodInvoke(type, name, instance, args));
    }
Exemplo n.º 2
0
        /// <summary>
        /// 注册函数
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        public static bool RegisterFunction(System.Type type)
        {
            if (type == null)
            {
                return(false);
            }
            if (!type.IsClass || type.IsAbstract || !type.IsPublic)
            {
                return(false);
            }
            if (type.Assembly.GetName().Name == "System.Data.SQLite")
            {
                if (!LoadAssembly(type.Assembly))
                {
                    return(false);
                }
                GetType("System.Data.SQLite.SQLiteFunction").MethodInvoke("RegisterFunction", type);
                return(true);
            }
            FastWrapper wrapper = GetType("System.Data.SQLite.SQLiteFunction");

            if (!TypeExtensions.IsInheritFrom(type, typeof(SQLiteFunction)))
            {
                return(false);
            }
            if (!_typeNames.Add(type.FullName))
            {
                return(true);
            }
            System.Type newType = GenerateFunctionType(type);
            if (newType == null)
            {
                return(false);
            }
            wrapper.MethodInvoke("RegisterFunction", newType);
            return(true);
        }
Exemplo n.º 3
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="julianDay"></param>
 /// <returns></returns>
 public System.DateTime ToDateTime(double julianDay)
 {
     return(_wrapper == null ? System.DateTime.Now : (System.DateTime)_wrapper.MethodInvoke("ToDateTime", julianDay));
 }
Exemplo n.º 4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="s1"></param>
 /// <param name="s2"></param>
 /// <returns></returns>
 public int Compare(string s1, string s2)
 {
     return((int)_wraaper.MethodInvoke("Compare", s1, s2));
 }
Exemplo n.º 5
0
 void Map_MethodInvoke(PathNode node)
 {
     try {
         node.value = FastWrapper.MethodInvoke(node.model.GetType(), node.key, node.model, new object[0]);
     } catch { }
 }