0

仅当编译器生成此属性时,如何从程序集中删除所有 DebuggerHiddenAttribute?

我正在尝试这段代码,但它不起作用。

    ModuleDefinition module = ...;
MethodDefinition targetMethod = ...;
MethodReference attributeConstructor = module.Import(
    typeof(DebuggerHiddenAttribute).GetConstructor(Type.EmptyTypes));

targetMethod.CustomAttributes.Remove(new CustomAttribute(attributeConstructor));
module.Write(...);

提前致谢。

4

1 回答 1

0

这是不可能的。编译程序集中定义的属性是不可变的。如果不复制整个程序集,您将无法更改它们。

在这个特定的答案中,当您调用它时,它会在属性Remove返回的数组上被调用。CustomAttributes它将从数组中删除,而不是从程序集的元数据中删除

于 2013-08-09T17:04:14.050 回答