只有在编译器生成此属性时,如何从程序集中删除所有DebuggerHiddenAttribute?
我正在尝试使用此代码,但它不起作用。
ModuleDefinition module = ...;
MethodDefinition targetMethod = ...;
MethodReference attributeConstructor = module.Import(
typeof(DebuggerHiddenAttribute).GetConstructor(Type.EmptyTypes));
targetMethod.CustomAttributes.Remove(new CustomAttribute(attributeConstructor));
module.Write(...);
提前致谢。
答案 0 :(得分:0)
这实际上是不可能的。已编译程序集中定义的属性是不可变的。如果不复制整个组件,则无法更改它们。
在这个特定的答案中,当你调用Remove
时,它会被CustomAttributes
属性返回的数组调用。它将从数组中删除它,而不是从程序集中的元数据中删除它