TypechoJoeTheme

至尊技术网

统计
登录
用户名
密码
搜索到 2 篇与 的结果
2025-07-05

.NETCore特性(Attribute)底层原理解析

.NETCore特性(Attribute)底层原理解析
1. 特性的定义与使用在.NET Core中,特性通过派生自System.Attribute基类来定义。例如,定义一个简单的日志记录特性LogAttribute:csharp [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] public class LogAttribute : Attribute { public string Description { get; } public LogAttribute(string description) { Description = description; } }这个LogAttribute特性可以被附加到类或方法上,以记录相关的日志描述信息。使用方式如下:csharp [Log("This is a logging class.")] public class MyClass { }2. 特性的存储与读取编译时:在编译时,编译器会将所有的特性信息嵌入到程序的元数据中(Metadata)。这允许运行时通过反射机制访问这些信息,而不...
2025年07月05日
18 阅读
0 评论
2025-06-12

深入.NETCore:反射的底层原理与实现

深入.NETCore:反射的底层原理与实现
一、.NET Core的内存管理与类型系统在.NET Core中,所有对象都是从System.Object派生而来,而类型信息则通过Type System来管理。Type System不仅负责维护所有类型的元数据,还为运行时提供了类型检查和转换的依据。每个类型都通过System.Type对象表示,该对象包含了类型的所有必要信息,如方法、属性、字段等。二、元数据与反射的关系元数据(Metadata)是程序编译时生成的信息,它描述了程序中的类型、成员、方法签名等。在.NET Core中,元数据以一种称为Portable Executable (PE)格式的文件存储,例如.dll或.exe文件。当使用反射时,.NET运行时通过访问这些PE文件中的元数据来获取类型信息。例如,使用typeof(T)操作符时,CLR会从当前程序集或引用的程序集中读取并解析T的元数据。三、反射的实现过程 解析阶段:当调用typeof(T)时,CLR首先检查T是否在当前程序集或引用的程序集中已定义。如果是,则直接从该程序集的元数据中读取T的类型信息;如果不是,则向公共语言运行时(CLR)的元数据服务请求T的元数...
2025年06月12日
30 阅读
0 评论

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

最新回复

  1. 强强强
    2025-04-07
  2. jesse
    2025-01-16
  3. sowxkkxwwk
    2024-11-20
  4. zpzscldkea
    2024-11-20
  5. bruvoaaiju
    2024-11-14

标签云