当前位置: 首页 > news >正文

Unity Assembly的灵活用法总结

 Assembly最重要的用法就是程序集反射类,并创建类对象

下面通过domain获得所有程序集

再遍历程序集内所有的类型,拿到Type

Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();
foreach (Assembly assembly in assemblies)
{Type[] types = assembly.GetTypes();foreach (Type type in types){。。。。}
}

拿到Type后,就可以根据type创建对象了。

Type与Attribute的用法
 

//自定义Attribute
[AttributeUsage(AttributeTargets.Class)]
public class TypeNameAttribute : Attribute
{public string typeName { get; set; }public TypeNameAttribute(string type){typeName = type;}
}
[TypeName("TestTypeNameClass")]
public class MyClass
{public MyClass(){}
}
Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();
foreach (Assembly assembly in assemblies)
{Type[] types = assembly.GetTypes();foreach (Type type in types){TypeNameAttribute attribute = type.GetCustomAttribute<TypeNameAttribute>();if (attribute != null) //如果这个Class添加了TypeNameAttribute,则attribute创建不为空{var instance = Activator.CreateInstance(type);}}
}

 上文Activator.CreateInstance得到的结果会是我们自定义创建的MyClass对象。

相关文章:

  • 深度学习入门(4):resnet50
  • 【Fifty Project - D36】
  • 【sqlite开发】遇到的问题及解决方法收录
  • 【chipyard】Gemmini 定制
  • 【MicronTech】eMMC 部件编号解析
  • python3.12安装记录
  • Systemctl 手记:从服务管理到资源控制的进阶实践
  • 纯血HarmonyOS ArKTS NETX 5 打造小游戏实践:大鱼吃小鱼(附源文件)
  • 明远智睿SD2351核心板:边缘计算时代的工业级核心引擎深度解析
  • 安装 Poppler(Windows)
  • linux 配置mvn
  • RK3588 ENV 环境配置之 fw_printenv
  • 高效管理Python环境:Miniforge、pyenv和Poetry深度对比与应用
  • TEXT2SQL-vanna多表关联的实验
  • 开源模型应用落地:GLM-4 上手实测体验报告!
  • 瓷器数字化展示文物三维扫描建模-中科米堆
  • Flink 系列之二十九- Flink SQL - 中间算子:窗口聚合
  • 51la工具有哪些功能?悟空统计的核心功能呢?
  • NVIDIA Isaac GR00T N1.5 适用于 LeRobot SO-101 机械臂
  • 【Python打卡Day35】模型可视化与推理@浙大疏锦行
  • 网站制作服务公司/g3云推广靠谱吗
  • 有关网站开发的文献/开封网络推广哪家好
  • wordpress模块里加载最新文章/网络推广seo公司
  • 工业网站建设/百度app推广
  • 群辉怎么进入wordpress后台/深圳seo排名优化
  • 工商总局企业信息查询/广州seo站内优化