在我的业务逻辑中,我为数据库操作创建了类,例如insert,update等。 为此,我创建了一个类CDatabase,其中set设置了一些方法,如openconnection和closeconnection transation等。
现在我的逻辑类继承了该类
CAnswerLogic : CDatabase
{
OpenConnection();
BeginTrans();
Command.CommandText = "PKG_ANSWER.PROC_ADD_ANSWERS";
}
我可以使用反射获取Command.CommandText的值。 Command是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项目的引用。 请帮助我。
答案 0 :(得分:1)
如果您使用type.GetProperties(flags);
代替type.GetMethods(flags);
,则会找到您要查找的媒体资源。然后,执行propertyInfo.GetValue( Command, null );
以获取值。