/// <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)); }
/// <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); }
/// <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)); }
/// <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)); }
void Map_MethodInvoke(PathNode node) { try { node.value = FastWrapper.MethodInvoke(node.model.GetType(), node.key, node.model, new object[0]); } catch { } }