gpt4 book ai didi

c# - 使用反射查找弃用

转载 作者:太空狗 更新时间:2023-10-29 22:55:10 25 4
gpt4 key购买 nike

我很好奇是否有人编写过任何代码来反射(reflect)到类中并找到其弃用的方法?

我已经为响应式创建了一个 T4 模板,并希望它停止为已弃用的事件生成处理程序,那里有聪明的黑客已经先发制人了吗?

最佳答案

我不知道您是否需要 t4 框架,但这里有一个针对已过时标记方法的通用反射示例。

class TestClass
{
public TestClass()
{
DeprecatedTester.FindDeprecatedMethods(this.GetType());
}

[Obsolete("SomeDeprecatedMethod is deprecated, use SomeNewMethod instead.")]
public void SomeDeprecatedMethod() { }

[Obsolete("YetAnotherDeprecatedMethod is deprecated, use SomeNewMethod instead.")]
public void YetAnotherDeprecatedMethod() { }

public void SomeNewMethod() { }
}

public class DeprecatedTester
{
public static void FindDeprecatedMethods(Type t)
{
MethodInfo[] methodInfos = t.GetMethods();

foreach (MethodInfo methodInfo in methodInfos)
{
object[] attributes = methodInfo.GetCustomAttributes(false);

foreach (ObsoleteAttribute attribute in attributes.OfType<ObsoleteAttribute>())
{
Console.WriteLine("Found deprecated method: {0} [{1}]", methodInfo.Name, attribute.Message);
}
}
}
}

关于c# - 使用反射查找弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4938715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com