我有一个像这样的JSON类:
public class UpdateCheck
{
public bool UpdatesAvailable { get; set; }
public string LinkOfNewVersion { get; set; }
}
但是当我使用ConfuserEx混淆程序集时,UpdatesAvailable
和LinkOfNewVersion
的值为null:/
我尝试了以下所有操作:
在我的JSON类上方添加[Obfuscation(Exclude = false, Feature = "-rename")]
属性:
[Obfuscation(Exclude = false, Feature = "-rename")]
public class UpdateCheck
{
public bool UpdatesAvailable { get; set; }
public string LinkOfNewVersion { get; set; }
}
在我的JSON类上方添加[Serializable]
属性:
[Serializable]
public class UpdateCheck
{
public bool UpdatesAvailable { get; set; }
public string LinkOfNewVersion { get; set; }
}
在JSON类上方添加两个属性:
[Serializable]
[Obfuscation(Exclude = false, Feature = "-rename")]
public class UpdateCheck
{
public bool UpdatesAvailable { get; set; }
public string LinkOfNewVersion { get; set; }
}
但是我尝试过的所有方法都失败了:/
我的混淆属性:
<rule pattern="true" preset="maximum" inherit="false">
<protection id="anti ildasm" />
<protection id="anti tamper" />
<protection id="constants" />
<protection id="ctrl flow" />
<protection id="anti dump" />
<protection id="anti debug" />
<protection id="invalid metadata" />
<protection id="ref proxy" />
<protection id="resources" />
<protection id="typescramble" />
<protection id="rename" />
</rule>
当我从ConfuserEx配置文件中删除“重命名”保护时,我的程序集会像这样崩溃:Screenshot
任何帮助将不胜感激。
谢谢!
答案 0 :(得分:4)
尝试使用JsonProperty
属性将字段名称设置为其固定值:
public class UpdateCheck
{
[JsonProperty("UpdatesAvailable")]
public bool UpdatesAvailable { get; set; }
[JsonProperty("LinkOfNewVersion")]
public string LinkOfNewVersion { get; set; }
}