首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dotfuscator +委托(Func<> )

Dotfuscator +委托(Func<> )
EN

Stack Overflow用户
提问于 2014-04-08 21:00:09
回答 1查看 357关注 0票数 0

在一个被(通过名称空间)从混淆中排除的类中(因为它必须被传输),我有一个具有这种构造函数的构造函数

代码语言:javascript
复制
public MyClass<T> (T currentObject, Func<T, int> extrator) : where T : XYZ{}

当我调用构造函数时,我会这样做

代码语言:javascript
复制
new MyClass(myObject, o=>o.Id)

编译后,我看到在反编译时添加了一个静态方法:

代码语言:javascript
复制
[CompilerGenerated]
private static int <.ctor>b__b(CurrentObjectClass e)
{
    return e.Id;
}

因为它是一个方法,而且我的命名空间被排除在外,所以我希望这个类不会被更改。但是在dotfuscator出现之后,我得到了这个:

代码语言:javascript
复制
[CompilerGenerated]
private static int <.ctor>b__5(CurrentObjectClass e)
{
//Obfuscated code
}

因为我在客户端和服务器之间使用这个类,所以经常发生这样的情况:服务器在发布(模糊处理)时运行,而客户端只在调试时运行,所以我们不希望这个类被混淆,以允许交换这个类(通过.Net远程处理)。

有没有办法防止这种行为?

EN

回答 1

Stack Overflow用户

发布于 2014-04-15 21:58:41

我找到了问题所在:

混淆实际上没有任何作用,这个问题是因为客户端和服务器不是在同一个构建中生成的,这意味着编译器在每次编译时生成两个不同的名称。

我避免了使用委托类型,现在它可以工作了,即使是模糊处理。

谢谢你的帮助。

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

https://stackoverflow.com/questions/22937874

复制
相关文章

相似问题

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