c#如何获取某一命名空间下的所有的类的信息(方法以及参数)

c#如何获取某一命名空间下的所有的类的信息(方法以及参数),第1张

如果是当前下的。用AssemblyGetExecutingAssembly()GetTypes();

如果是外部DLL,用AssemblyLoad("namespace")GetTypes();

原理是反射,所以上面一定要加上using SystemReflection;

示例代码:

var classes = AssemblyLoad("test")GetTypes();

foreach (var item in classes)

{

ConsoleWriteLine(itemName);

}

注意的是,如果查看的对象是外部的DLL,一定要把DLL复制到项目的调试文件夹Debug下。

给你写了个例子你看下哈。。

import javalangreflectField;

public class GetField {

public static void main(String[] args) {

try {

Class clazz = ClassforName("");//根据类名获得其对应的Class对象 写上你想要的类名就是了 注意是全名 如果有包的话要加上 比如javaLangString

Field[] fields = clazzgetDeclaredFields();//根据Class对象获得属性 私有的也可以获得

for(Field f : fields) {

Systemoutprintln(fgetType()getName());//打印每个属性的类型名字

}

} catch(Exception e) {

eprintStackTrace();

}

}

}

1、获取父类的所有子类

-(void)getSubclass

{

int numClasses;

Class classes = NULL;

numClasses = objc_getClassList(NULL,0);

if (numClasses >0 )

{

classes = (__unsafe_unretained Class )malloc(sizeof(Class) numClasses);

numClasses = objc_getClassList(classes, numClasses);

for (int i = 0; i < numClasses; i++) {

if (class_getSuperclass(classes[i]) == [BaseTableViewController class]){

NSLog(@"%@===%@",classes[i], NSStringFromClass(classes[i]));

}

}

free(classes);

}

}

2、在添加页面统计等时,直接在父类实现添加方法,但是要读到子类的类名

比如在父类中添加友盟页面统计

-(void)viewWillAppear:(BOOL)animated

{

[super viewWillAppear:animated];

NSLog(@"%@",[NSString stringWithUTF8String:object_getClassName(self)]);

[MobClick beginLogPageView:[NSString stringWithUTF8String:object_getClassName(self)]];

}

-(void)viewWillDisappear:(BOOL)animated

{

[super viewWillDisappear:animated];

[MobClick endLogPageView:[NSString stringWithUTF8String:object_getClassName(self)]];

}

以上就是关于c#如何获取某一命名空间下的所有的类的信息(方法以及参数)全部的内容,包括:c#如何获取某一命名空间下的所有的类的信息(方法以及参数)、写一个Java方法,取得某个类里的所有属性、IOS 获取父类的所有子类等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9317499.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存