使用反射获取类变量值



在我的业务逻辑中,我为数据库操作(如插入,更新等(创建了类。为此,我创建了一个类 CDatabase,其中设置了一些定义的方法,如开放连接和关闭连接转换等。

现在我的逻辑类继承了该类

CAnswerLogic : CDatabase
{
   OpenConnection();
   BeginTrans();
   Command.CommandText = "PKG_ANSWER.PROC_ADD_ANSWERS";
}

我可以使用反射获取 Command.CommandText 的值吗?命令是 CDatabse 类中的一个属性。

我写了一个方法来返回一个类的所有方法

private IEnumerable<string> GetAllMethod(string pstrClassName)
{
    const BindingFlags flags = BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static;
    var llistMethod = new List<string>();
    var assembly = Assembly.LoadFile(Server.MapPath(@"bin/InfoDomeBLL.dll"));
    try
    {
        foreach (Type type in assembly.GetTypes())
        {
            if (type.IsClass && type.Name == pstrClassName)
            {
                var method = type.GetMethods(flags);
                foreach (var methodInfo in method)
                {
                    llistMethod.Add(methodInfo.Name);
                    //var mb = methodInfo.GetMethodBody();
                    //foreach (LocalVariableInfo lvi in mb.LocalVariables)
                    //{
                    //    Response.Write("Local variable: " + lvi);
                    //}
                }
                var basetype= type.BaseType;
            }
        }
    }
    catch (Exception)
    {
    }
    return llistMethod;
}

在 Web 项目中,我添加了 bll 项目的引用。请帮帮我。

如果您使用type.GetProperties(flags);而不是type.GetMethods(flags);您将找到所需的属性。然后,执行propertyInfo.GetValue( Command, null );以获取值。

相关内容

  • 没有找到相关文章

最新更新