0

Je crée une application Android en utilisant Xamarin.Forms que je suis obfuscating avec ConfuserEx. Je voulais utiliser l'obfuscation déclarative comme dans ce example afin que je puisse changer les propriétés d'Obfuscation pour chacune de mes classes. Toutefois, l'espace de noms System.Reflection dans Xamarin.Forms ne reconnaît pas la classe System.Reflection.ObfuscationAttribute. Dois-je utiliser un autre paquet NuGet ou ai-je oublié quelque chose?Obfuscation déclarative dans Xamarin Forms avec ConfuserEx

Sinon, existe-t-il un moyen d'inclure ou d'exclure des fonctionnalités d'obfuscation dans différentes classes d'une manière différente?

Répondre

0

ConfuserEx est que la recherche au nom de l'attribut: projet

if (ca.TypeFullName != "System.Reflection.ObfuscationAttribute") 

Je voudrais juste créer une classe System.Reflection.ObfuscationAttribute dans le PCL (Xamarin.Forms) lui-même.

à savoir

using System.Runtime.InteropServices; 

namespace System.Reflection 
{ 
    [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Interface | AttributeTargets.Parameter | AttributeTargets.Delegate, AllowMultiple = true, Inherited = false), ComVisible(true)] 
    public sealed class ObfuscationAttribute : Attribute 
    { 
     // 
     // Fields 
     // 
     private bool m_strip = true; 

     private bool m_exclude = true; 

     private bool m_applyToMembers = true; 

     private string m_feature = "all"; 

     // 
     // Properties 
     // 
     public bool ApplyToMembers 
     { 
      get 
      { 
       return this.m_applyToMembers; 
      } 
      set 
      { 
       this.m_applyToMembers = value; 
      } 
     } 

     public bool Exclude 
     { 
      get 
      { 
       return this.m_exclude; 
      } 
      set 
      { 
       this.m_exclude = value; 
      } 
     } 

     public string Feature 
     { 
      get 
      { 
       return this.m_feature; 
      } 
      set 
      { 
       this.m_feature = value; 
      } 
     } 

     public bool StripAfterObfuscation 
     { 
      get 
      { 
       return this.m_strip; 
      } 
      set 
      { 
       this.m_strip = value; 
      } 
     } 
    } 
} 

Re: https://github.com/yck1509/ConfuserEx/blob/3c9c29d9daf2f1259edf69054c5693d5d225a980/Confuser.Core/ObfAttrMarker.cs#L138

+0

J'ai essayé d'ajouter la fonction de changement de nom à une classe en utilisant cette méthode et il n'a pas changé quoi que ce soit. Ai-je besoin de mettre quelque chose dans mon fichier .crproj pour que ConfuserEx reconnaisse que j'utilise aussi l'obfuscation déclarative? – cvanbeek