我想在 Eazfuscator.NET(程序集级别)中禁用“常量文字修剪”。这怎么可能?
背景: 我们在自定义属性构造函数中使用枚举。构造函数参数的类型是对象,因为属性类位于不引用包含枚举的程序集的程序集中。
混淆前:
[MyAttribute(MyEnum.Value3)]
public class MyClass
{
}
混淆后(反编译):
[MyAttribute(2)]
public class MyAttribute : Attribute
{
}
在属性的构造函数中,我将值转换为 Enum。这会在混淆程序集中生成异常,但不会在未混淆变体中生成异常:
public class MyAttribute : Attribute
{
public MyAttribute(object value)
{
var x = (Enum) value; // this throws an InvalidCastException after obfuscation
}
}