gpt4 book ai didi

c# - Cecil - 获取定义的属性属性

转载 作者:太空宇宙 更新时间:2023-11-03 11:53:55 25 4
gpt4 key购买 nike

我正在使用 Cecil 来尝试读取我的属性属性:

[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)]
public sealed class TraceMethodAttribute : Attribute {
public TraceMethodAttribute() {
MethodStart = true;
MethodReturn = true;
MethodMessages = true;
}

public bool MethodStart { get; set; }
public bool MethodReturn { get; set; }
public bool MethodMessages { get; set; }
}

[TraceMethod(MethodMessages = false)]
static void Main(string[] args) {
}

...

if (attribute.Constructor.DeclaringType.FullName == typeof(TraceMethodAttribute).FullName) {         
if ((bool)attribute.Fields["MethodMessages"] == true) {
EditMethodStart(assembly, method);
}

也就是说,我希望这最后一个代码块能够检查何时应用于 Main 的属性,例如,将 MethodMessages 设置为 true 或 false。据我所见,attributes.Fields.Count 和 attributes.Properties.Count 似乎都设置为 0。这是为什么呢?

谢谢

最佳答案

通过索引器访问 Properties 集合应该可以正常工作。

if (attribute.Constructor.DeclaringType.FullName == typeof(TraceMethodAttribute).FullName) {         
if ((bool)attribute.Properties["MethodMessages"] == true) {
EditMethodStart(assembly, method);
}

刚刚编译检查了一下。

关于c# - Cecil - 获取定义的属性属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1242990/

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