假设我有一个string类型的值为test(1)
那么有什么方法可以运行这个test(1),即把它当做一个函数来运行!

解决方案 »

  1.   

    Microsoft.JScript.Vsa.VsaEngine ve=Microsoft.JScript.Vsa.VsaEngine.CreateEngine();
    object qswhEval3(string Expression){
     return Microsoft.JScript.Eval.JScriptEvaluate(Expression,ve);
    }
    试一下
      

  2.   

    反射
    Assembly assembly = Assembly.Load("A") ;A为程序集名称
    Type t= assembly.GetType("clss_name",true,true) ;clss_name为类
    object o= Activator.CreateInstance (t);//创建实例
      

  3.   

    using System;
    using System.Reflection;
    using System.Globalization;namespace Lib
    {
    public class TestLib
    {
    public TestLib()
    {
    Console.WriteLine("Create a new instance");
    }
    public void FunctionA(string [] paras)
    {
    try
    {
    string b=null;
    for (int i=0;i<paras.Length;i++)
    b+=paras[i]; Console.WriteLine("A--"+System.DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss:ffff")+"---"+b);
    }
    catch (Exception ex)
    {
    Console.WriteLine("FunctionA: "+ex.ToString());
    }
    } public void FunctionB()
    {
    Console.WriteLine("B--"+System.DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss:ffff"));
    }
    }
    }================================================
    using System;
    using System.Reflection;
    using System.Globalization;
    using Lib;namespace Reflection
    {
    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    class Class1
    {
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main(string[] args)
    {
    string []  a = new string[3];
    a[0]="ABCDE";
    a[1]="DEFGHI";
    a[2]="3454564675"; Call("FunctionA", a);
    Console.ReadLine();
    } static void Call(string function_name, string [] paras)
    {
    string b = "Lib.dll";
    Assembly a = Assembly.LoadFrom(b); Type t = a.GetType("Lib.TestLib");
    try
    {
    MethodInfo m = t.GetMethod(function_name, new Type[] {typeof(string [])});
    Object obj = Activator.CreateInstance(t);
    m.Invoke(obj, new object [] {paras});
    }
    catch (Exception ex)
    {
    Console.WriteLine("Main: "+ex.ToString());
    } }
    }
    }