By default Agile.NET obfuscates all classes and methods that are internal to the assembly, this is true for internal classes and method that are marked either private, internal or protected internal.
It is possible to tell Agile.net how to obfuscate an assembly by using declarative obfuscation attributes. This will allow you to enforce restriction on classes or methods that you don't wish to obfuscate or would like to ensure that they will get obfuscated.
To do so you will have to annotate your code using the System.Reflection.ObfuscationAttribute.
This attribute was introduced in .NET Framework 2.0 in order to provide
developers means to instruct obfuscation tools to take specified actions for an
assembly, type or member.
The following describes how Agile.net refers to information declared using System.Reflection.ObfuscationAttribute. For more information on how to use this attribute please refer to Microsoft's documentation.
This Boolean property has a default value of True. When true, it indicates that the tagged item should not be obfuscated. When false, it indicates that the tagged item should be obfuscated.
This Boolean property has a default value of True. When the attribute is applied to an assembly or a type, a True value indicates that the operation should be applied to all the members of selected types as well. If false, the operation is applied to types only and not their members. In case a member decorated with the ObfuscationAttribute belongs to type decorated with the ApplyToMembers property set to true the method's obfuscation attribute takes precedence and the type's obfuscation attribute is not considered in this case.
/*
This class is excluded from the obfuscation process,
because the exclude property is set to true by default.
*/
[ObfuscationAttribute(ApplyToMembers = true)]
public class Type1
{
/*
This member is excluded from obfuscation because the class is excluded.
*/
public void MethodA() { }
/*
Mark this method for obfuscation.
Obfuscation attribute set on the method takes precedence.
*/
[ObfuscationAttribute(Exclude = false)]
public void MethodB() { }
}