如果是当前下的。用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 获取父类的所有子类等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)