首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跳过Enum值的Obfuscar配置问题

跳过Enum值的Obfuscar配置问题
EN

Stack Overflow用户
提问于 2019-01-03 20:13:09
回答 1查看 477关注 0票数 0

我有一个带有内部日志模块的类库,它在名称空间级别使用Enum来定义日志级别(调试、跟踪、错误等等)。我在日志文本中使用这些枚举值的字符串转换。枚举标记为Friend (即内部,不公开暴露)。

当我最初运行模糊处理时,日志缺少枚举描述,最终我发现Obfuscar合理地混淆了枚举值,因此我添加了一个SkipEnum指令:

代码语言:javascript
复制
<Module file="$(InPath)\MyCompany.MyLibrary.dll">
  <SkipEnums type="MyCompany.MyLibrary.Logging.LogLevel" name="*" />
</Module>

(更新:将SkipEnum更正为上面的SkipEnums。)我尝试的代码有后一个元素,所以这不是问题。)

根据Obfuscar的地图文件,这似乎没有做任何事情:

代码语言:javascript
复制
[MyCompany.MyLibrary]MyCompany.MyLibrary.Logging.LogLevel -> [MyCompany.MyLibrary] {unprintable obfuscated name}
{
    MyCompany.MyLibrary.Logging.LogLevel [MyCompany.MyLibrary]MyCompany.MyLibrary.Logging.LogLevel MyCompany.MyLibrary.Logging.LogLevel::Debug -> {unprintable obfuscated name}
    MyCompany.MyLibrary.Logging.LogLevel [MyCompany.MyLibrary]MyCompany.MyLibrary.Logging.LogLevel MyCompany.MyLibrary.Logging.LogLevel::Trace -> {unprintable obfuscated name}
    MyCompany.MyLibrary.Logging.LogLevel [MyCompany.MyLibrary]MyCompany.MyLibrary.Logging.LogLevel MyCompany.MyLibrary.Logging.LogLevel::Info -> {unprintable obfuscated name}
    ...
    MyCompany.MyLibrary.Logging.LogLevel [MyCompany.MyLibrary]MyCompany.MyLibrary.Logging.LogLevel MyCompany.MyLibrary.Logging.LogLevel::Off -> {unprintable obfuscated name}

    System.Int32 [MyCompany.MyLibrary]System.Int32 MyCompany.MyLibrary.Logging.LogLevel::value__ skipped:  special name
}

所以我试着用SkipTypeskipEnums

代码语言:javascript
复制
<Module file="$(InPath)\MyCompany.MyLibrary.dll">
  <!--SkipType name="MyCompany.MyLibrary.Logging.LogLevel" skipEnums="true" /-->
</Module>

这起作用了;它隐藏了枚举的名称("LogLevel"),而不隐藏枚举本身的价值。

所以我试着用SkipTypeskipFields

代码语言:javascript
复制
<Module file="$(InPath)\MyCompany.MyLibrary.dll">
  <!--SkipType name="MyCompany.MyLibrary.Logging.LogLevel" skipFields="true" /-->
</Module>

这个成功了。

但是..。当我检查结果程序集时,公开了以前隐藏的/内部名称空间MyCompany.MyLibrary.Logging,并且希望这个名称空间保持隐藏。

这里面有什么窃听器吗?我做错了什么吗?虽然我认为这个产品很好,但奥弗塞卡的doco相当结实,所以我不得不猜测其中的一些。

EN

回答 1

Stack Overflow用户

发布于 2022-01-07 09:05:06

SkipEnums应以下列格式使用:

代码语言:javascript
复制
<SkipEnums value="true" />

跳过重命名所有枚举类型的。但是,我不能成功地按名称进行筛选。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54029149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档