c# 属性操作(2)

复制代码
[AttributeUsage(AttributeTargets.Method)]
public sealed class AsyncToSyncWarningAttribute : Attribute
{
}
1. 特性作为标记
  • 特性(Attribute)本质上是附加到代码元素上的"标签"或"注释"。例如,你定义了一个 [AsyncToSyncWarning] 特性,并将其应用于某些方法。
  • 这些特性本身不执行任何逻辑,它们只是提供额外的信息。
2. 手动标注
  • 开发者需要手动 为那些可能存在潜在问题的方法添加这些特性。比如,在你的例子中,你需要明确地为某个异步方法加上 [AsyncToSyncWarning] 标签。
  • 这种方式依赖于开发者的自觉性和对代码的理解。如果开发者忘记添加或者错误地标记了方法,那么这些特性就无法发挥应有的作用。
3. 警告机制的实现
复制代码
public string GetData()
{
    var methodInfo = typeof(DataService).GetMethod(nameof(FetchDataAsync));
    var attribute = methodInfo.GetCustomAttribute<AsyncToSyncWarningAttribute>();

    if (attribute != null)
    {
        Console.WriteLine($"⚠️ {attribute.WarningMessage}");
        Console.WriteLine($"💡 {attribute.Suggestion}");
    }

    return FetchDataAsync().Result;
}
相关推荐
asdzx6713 小时前
使用 Python 精准操控 Word 字体:获取与替换方案
python·c#·word
逝水无殇15 小时前
C# 特性详解
开发语言·后端·c#
LongtengGensSupreme15 小时前
C#图像内存高速拷贝:使用Marshal.AllocHGlobal与ArrayPool实现内存拷贝的几个方法
开发语言·数码相机·c#
影寂ldy17 小时前
C# 五大加密算法全套实战(AES/DES对称、RSA非对称、MD5/SHA256哈希)
开发语言·c#·哈希算法
互联网底层民工17 小时前
异步 / 多线程并发(高频八股 · 详解版)
c#
逝水无殇18 小时前
C# 反射详解
开发语言·后端·c#
神秘的MT18 小时前
SQL Server 分页查询 ROW_NUMBER () OFFSET...FETCH游标(Cursor) 数据插入
数据库·sql·学习·c#·winform
我才是银古18 小时前
一个人写出的 3D 几何引擎:Ara3D SDK 技术深度剖析
c#·三维几何·ai平台
逝水无殇1 天前
C# 异常处理详解
开发语言·后端·c#