
是可以 你这样获取的到是xml,需要转化成对象
Object obj = messagegetContent(Listclass)get(0);
这里获取的obj对象就是cxf动态生成的class类,你debug就能看到,所有的参数都在这个obj里面
剩下就的就是反射出来了。
__ROOT__ : 网站根目录地址
__APP__ : 当前项目(入口文件)地址
__GROUP__ :当前分组地址
__URL__ : 当前模块地址
__ACTION__ : 当前 *** 作地址
__SELF__ : 当前 URL 地址
ACTION_NAME : 当前 *** 作名称
APP_PATH : 当前项目目录
APP_NAME : 当前项目名称
这些都是一些系统常量,可以在控制器里面直接调用 比如说 echo __APP__
帮你写了一下,测试通过:
public class SeleniumUtil{
public static void getFileName()
{
StackTrace trace = new StackTrace();
StackFrame frame = traceGetFrame(1);
MethodBase method = frameGetMethod();
String className = methodReflectedTypeName;
ConsoleWrite("ClassName:" + className + "\nMethodName:" + methodName);
}
}
class Program
{
static void Main(string[] args)
{
SeleniumUtilgetFileName();
ConsoleReadLine();
}
}
运行结果如下:
利用默认成员特性可以动态的获取此方法名
下面是一个示例:
using System;
using SystemReflection;
namespace Cshcn
{
public class Program
{
static void Main()
{
TestClass t=new TestClass();
string methodName=tGetMethod();//调用成员GetMethod,并返回成员名
if(methodName!=null)
ConsoleWriteLine(methodName);
}
}
[DefaultMemberAttribute("GetMethod")] //特性:绑定类型的默认成员
public class TestClass
{
public string GetMethod()
{
Type t=typeof(TestClass);
MemberInfo[] mi=tGetDefaultMembers();
if(miLength>0)
{
foreach(MemberInfo m in mi)
{
ConsoleWriteLine("Return owner name");
return mName; //返回方法名
}
}
return null;
}
}
}
"在运行时要在方法Myfun()中得到这个方法的名称,有没有什么一般的通用方法?"
利用反射技术和自定义特性就可以动态获取并实现。反射可以查询类型的成员,特性可以
对成员进行标注。有点儿复杂的示例就不写了!
无论你怎么写,对该方法不做绑定标记,恐怕不行!
"在方法中获取方法名"
有点儿让人费解,不知道你碰到了什么问题!
方法名在程序的什么地方都可以获取!只要你想
不知道,这是不是你想要的答案。
可以使用以下代码来获取src目录下所有的包名,类名,方法名 以及通过一个类名获得该类下的所有方法名。
import javaioFile;
import javalangreflectMethod;
public class LoopApp {
public static void main(String[] args) throws Exception {
String packageName = "";
File root = new File(SystemgetProperty("userdir") + "\\src");
loop(root, packageName);
}
public static void loop(File folder, String packageName) throws Exception {
File[] files = folderlistFiles();
for (int fileIndex = 0; fileIndex < fileslength; fileIndex++) {
File file = files[fileIndex];
if (fileisDirectory()) {
loop(file, packageName + filegetName() + "");
} else {
listMethodNames(filegetName(), packageName);
}
}
}
public static void listMethodNames(String filename, String packageName) {
try {
String name = filenamesubstring(0, filenamelength() - 5);
Object obj = ClassforName(packageName + name);
Method[] methods = objgetClass()getDeclaredMethods();
Systemoutprintln(filename);
for (int i = 0; i < methodslength; i++) {
Systemoutprintln("\t" + methods[i]getName());
}
} catch (Exception e) {
Systemoutprintln("exception = " + egetLocalizedMessage());
}
}
}
以上就是关于有没有办法在CXF的拦截器里获得调用方法的名称及参数值全部的内容,包括:有没有办法在CXF的拦截器里获得调用方法的名称及参数值、thinkphp5 怎么获取控制器下所有方法名称、c# 获得方法的调用者的调用者的类名,方法名等等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)