我正在使用我用 ConfuserEx 混淆的 Xamarin.Forms 创建一个 Android 应用程序。我想像在这个例子中那样使用声明性混淆,这样我就可以为我的每个类更改混淆属性。
但是,Xamarin.Forms 中的 System.Reflection 命名空间无法识别 System.Reflection.ObfuscationAttribute 类。我需要使用另一个 NuGet 包还是我遗漏了什么?
否则,有没有办法以不同的方式在不同的类中包含或排除混淆功能?
我正在使用我用 ConfuserEx 混淆的 Xamarin.Forms 创建一个 Android 应用程序。我想像在这个例子中那样使用声明性混淆,这样我就可以为我的每个类更改混淆属性。
但是,Xamarin.Forms 中的 System.Reflection 命名空间无法识别 System.Reflection.ObfuscationAttribute 类。我需要使用另一个 NuGet 包还是我遗漏了什么?
否则,有没有办法以不同的方式在不同的类中包含或排除混淆功能?
ConfuserEx
只看属性的名称:
if (ca.TypeFullName != "System.Reflection.ObfuscationAttribute")
所以我会System.Reflection.ObfuscationAttribute
在 PCL ( Xamarin.Forms
) 项目本身中创建一个类。
IE
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;
}
}
}
}