修复 RetargetTypeRefInCustomAttributes时匹配field或property没有比较TypeSig的bug
parent
688056e919
commit
1d1b257640
|
@ -34,7 +34,7 @@ namespace Obfuz
|
|||
_options = options;
|
||||
_assemblyCache = new AssemblyCache(new PathAssemblyResolver(options.AssemblySearchDirs.ToArray()));
|
||||
_renamePolicy = new CombineRenamePolicy(new SystemRenamePolicy(), new UnityRenamePolicy(), new XmlConfigRenamePolicy());
|
||||
_nameMaker = new NameMaker();
|
||||
_nameMaker = new TestNameMaker();
|
||||
}
|
||||
|
||||
public void DoIt()
|
||||
|
|
|
@ -315,7 +315,8 @@ namespace Obfuz
|
|||
}
|
||||
foreach (FieldDef field in hierarchyFields)
|
||||
{
|
||||
if (field.Name == arg.Name)
|
||||
// FIXME. field of Generic Base Type may not be same
|
||||
if (field.Name == arg.Name && TypeEqualityComparer.Instance.Equals(field.FieldType, arg.Type))
|
||||
{
|
||||
if (!refFieldMetasMap.TryGetValue(field, out var fieldMetas))
|
||||
{
|
||||
|
@ -502,7 +503,8 @@ namespace Obfuz
|
|||
}
|
||||
foreach (PropertyDef field in hierarchyProperties)
|
||||
{
|
||||
if (field.Name == arg.Name)
|
||||
// FIXME. field of Generic Base Type may not be same
|
||||
if (field.Name == arg.Name && TypeEqualityComparer.Instance.Equals(arg.Type, field.PropertySig.RetType))
|
||||
{
|
||||
if (!refPropertyMetasMap.TryGetValue(field, out var fieldMetas))
|
||||
{
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
using dnlib.DotNet;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Obfuz.Rename
|
||||
{
|
||||
public class TestNameMaker : INameMaker
|
||||
{
|
||||
private int _nextIndex;
|
||||
|
||||
private string GetDefaultNewName(string originName)
|
||||
{
|
||||
return $"{originName}>{_nextIndex++}";
|
||||
}
|
||||
|
||||
public string GetNewName(ModuleDefMD mod, string originalName)
|
||||
{
|
||||
return GetDefaultNewName(originalName);
|
||||
}
|
||||
|
||||
public string GetNewNamespace(TypeDef typeDef, string originalNamespace)
|
||||
{
|
||||
return GetDefaultNewName(originalNamespace);
|
||||
}
|
||||
|
||||
public string GetNewName(TypeDef typeDef, string originalName)
|
||||
{
|
||||
return GetDefaultNewName(originalName);
|
||||
}
|
||||
|
||||
public string GetNewName(MethodDef methodDef, string originalName)
|
||||
{
|
||||
return GetDefaultNewName(originalName);
|
||||
}
|
||||
|
||||
public string GetNewName(ParamDef param, string originalName)
|
||||
{
|
||||
return GetDefaultNewName(originalName);
|
||||
}
|
||||
|
||||
public string GetNewName(FieldDef fieldDef, string originalName)
|
||||
{
|
||||
return GetDefaultNewName(originalName);
|
||||
}
|
||||
|
||||
public string GetNewName(PropertyDef propertyDef, string originalName)
|
||||
{
|
||||
return GetDefaultNewName(originalName);
|
||||
}
|
||||
|
||||
public string GetNewName(EventDef eventDef, string originalName)
|
||||
{
|
||||
return GetDefaultNewName(originalName);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue