File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -15,6 +15,26 @@ Obfuz与Unity工作流深度集成,已经内置了以下规则:
1515
1616更多的规则可查看文档[ 符号混淆] ( ./symbol-obfuscation ) 。不在默认规则内的类型需要使用下面的特殊的解决办法。
1717
18+ ## 运行时反射相关支持
19+
20+ ### ObfuscationTypeMapper
21+
22+ Obfuz提供了` Obfuz.ObfuscationTypeMapper ` 维护混淆前类型全名到类型的映射关系,ObfuscationTypeMapper提供了以下接口:
23+
24+ - ` Type GetTypeByOriginalFullName(Assembly assembly, string originalFullName) ` 根据原始类型名查找它的Type。
25+ - ` string GetOriginalTypeFullName(Type type) ` 根据Type获得它的原始类型全名。
26+ - ` string GetOriginalTypeFullNameOrCurrent(Type type) ` 根据Type获得它的原始类型全名,如果在注册的映射类型字典中找不到该类型,则返回类型的` Type.FullName ` 值。
27+
28+ ### ObfuscationInstincts
29+
30+ Obfuz提供了[ ObfuscationInstincts] ( ./obfuscation-instincts ) 用于获取原始类型名。
31+
32+ ObfuscationTypeMapper用于只知道运行时` Type ` 变量的情况下获得原始类型名,如果当前位置知道是哪个具体类型,
33+ ObfuscationInstincts提供了更直接的接口获取原始类型名,并不需要注册类型映射。
34+
35+ - ` FullNameOf<T> ` 返回类型的原始类型命名
36+ - ` NameOf<T> ` 返回类型的原始类型名,不含命名空间
37+
1838## 解决混淆后反射找不到类型的问题
1939
2040### 1. 对需要反射查找的元数据禁用符号混淆
@@ -71,16 +91,6 @@ class MyClass
7191
7292```
7393
74- ObfuscationTypeMapper还提供了以下接口:
75-
76- - ` string GetOriginalTypeFullName(Type type) ` 根据Type获得它的原始类型全名。
77- - ` string GetOriginalTypeFullNameOrCurrent(Type type) ` 根据Type获得它的原始类型全名,如果在注册的映射类型字典中找不到该类型,则返回类型的` Type.FullName ` 值。
78-
79- 以上两个接口用于只知道运行时` Type ` 变量的情况下获得原始类型名,如果当前位置知道是哪个具体类型,` ObfuscationInstincts ` 提供了更直接的接口获取原始类型名,并不需要提前注册类型映射。
80-
81- - ` FullNameOf<T> ` 返回类型的原始类型命名
82- - ` NameOf<T> ` 返回类型的原始类型名,不含命名空间
83-
8494### 3. 手动维护原始名称与类型的映射关系
8595
8696使用类似下面的代码:
You can’t perform that action at this time.
0 commit comments