I'm using the open source obfuscation software "Obfuscar". Is there a way to configure it to not obfuscate the property names in my anonymous types?
I'm using RestSharp to send HTTP requests, and my Json body content is an anonymous type.
request.AddJsonBody(new {
data = new {
type = "attachments",
attributes = new {
name = "foo"
}
}
});
I would like it to NOT rename those properties like "data", "type" etc in the anonymous type, because renaming them affects the Json string that it gets serialized to.
In github obfuscar issues i found this answer and it worked for me
You need to create the node in Obfuscar xml configuration file:
<SkipType name="*AnonymousType*" skipProperties="true" skipMethods="true" skipFields="true" skipEvents="true" skipStringHiding="true" />
Example of full xml configuration file:
<?xml version="1.0" encoding="utf-8"?>
<Obfuscator>
<Var name="OutPath" value="C:\TMP" />
<AssemblySearchPath path="C:\Users\user\Documents\Projects\MyProject\bin\Release\net6.0" />
<AssemblySearchPath path="C:\Program Files\dotnet\shared\Microsoft.NETCore.App\6.0.0" />
<Module file="C:\Users\user\Documents\Projects\MyProject\bin\Release\net6.0\MyProject.dll">
<SkipType name="*AnonymousType*" skipProperties="true" skipMethods="true" skipFields="true" skipEvents="true" />
</Module>
<Var name="KeepPublicApi" value="false" />
<Var name="HidePrivateApi" value="true" />
</Obfuscator>
Next, you need to start obfuscar.exe -s "path_to_xml_configuration_file"
Also see the section in the Obfuscar documentation
https://docs.obfuscar.com/getting-started/configuration#exclusion-rules-by-configuration