зеркало из https://github.com/mono/ikvm-fork.git
Added Module.__GetReferencedAssemblies() API.
This commit is contained in:
Родитель
7f82abb787
Коммит
83f9eaa729
|
@ -701,6 +701,11 @@ namespace IKVM.Reflection.Emit
|
|||
get { return "RefEmit_InMemoryManifestModule"; }
|
||||
}
|
||||
|
||||
public override AssemblyName[] __GetReferencedAssemblies()
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
internal override Type GetModuleType()
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
|
|
|
@ -57,6 +57,7 @@ namespace IKVM.Reflection.Emit
|
|||
private readonly Dictionary<MemberInfo, int> importedMembers = new Dictionary<MemberInfo, int>();
|
||||
private readonly Dictionary<MemberRefKey, int> importedMemberRefs = new Dictionary<MemberRefKey, int>();
|
||||
private readonly Dictionary<Assembly, int> referencedAssemblies = new Dictionary<Assembly, int>();
|
||||
private List<AssemblyName> referencedAssemblyNames;
|
||||
private int nextPseudoToken = -1;
|
||||
private readonly List<int> resolvedTokens = new List<int>();
|
||||
internal readonly TableHeap Tables = new TableHeap();
|
||||
|
@ -1217,7 +1218,36 @@ namespace IKVM.Reflection.Emit
|
|||
|
||||
public void __AddAssemblyReference(AssemblyName assemblyName)
|
||||
{
|
||||
if (referencedAssemblyNames == null)
|
||||
{
|
||||
referencedAssemblyNames = new List<AssemblyName>();
|
||||
}
|
||||
FindOrAddAssemblyRef(assemblyName);
|
||||
referencedAssemblyNames.Add((AssemblyName)assemblyName.Clone());
|
||||
}
|
||||
|
||||
public override AssemblyName[] __GetReferencedAssemblies()
|
||||
{
|
||||
List<AssemblyName> list = new List<AssemblyName>();
|
||||
if (referencedAssemblyNames != null)
|
||||
{
|
||||
foreach (AssemblyName name in referencedAssemblyNames)
|
||||
{
|
||||
if (!list.Contains(name))
|
||||
{
|
||||
list.Add(name);
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach (Assembly asm in referencedAssemblies.Keys)
|
||||
{
|
||||
AssemblyName name = asm.GetName();
|
||||
if (!list.Contains(name))
|
||||
{
|
||||
list.Add(name);
|
||||
}
|
||||
}
|
||||
return list.ToArray();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@ namespace IKVM.Reflection
|
|||
|
||||
public AssemblyName[] GetReferencedAssemblies()
|
||||
{
|
||||
return module.GetReferencedAssemblies();
|
||||
return module.__GetReferencedAssemblies();
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
|
@ -385,6 +385,8 @@ namespace IKVM.Reflection
|
|||
return Empty<CustomAttributeData>.Array;
|
||||
}
|
||||
|
||||
public abstract AssemblyName[] __GetReferencedAssemblies();
|
||||
|
||||
internal Type CanonicalizeType(Type type)
|
||||
{
|
||||
Type canon;
|
||||
|
|
|
@ -244,7 +244,7 @@ namespace IKVM.Reflection.Reader
|
|||
|
||||
public override AssemblyName[] GetReferencedAssemblies()
|
||||
{
|
||||
return manifestModule.GetReferencedAssemblies();
|
||||
return manifestModule.__GetReferencedAssemblies();
|
||||
}
|
||||
|
||||
internal override IList<CustomAttributeData> GetCustomAttributesData(Type attributeType)
|
||||
|
|
|
@ -191,6 +191,11 @@ namespace IKVM.Reflection.Reader
|
|||
get { throw new InvalidOperationException(); }
|
||||
}
|
||||
|
||||
public override AssemblyName[] __GetReferencedAssemblies()
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
internal override Type GetModuleType()
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
|
|
|
@ -890,7 +890,7 @@ namespace IKVM.Reflection.Reader
|
|||
throw new FileNotFoundException();
|
||||
}
|
||||
|
||||
internal AssemblyName[] GetReferencedAssemblies()
|
||||
public override AssemblyName[] __GetReferencedAssemblies()
|
||||
{
|
||||
List<AssemblyName> list = new List<AssemblyName>();
|
||||
for (int i = 0; i < AssemblyRef.records.Length; i++)
|
||||
|
|
|
@ -105,6 +105,11 @@ namespace IKVM.Reflection.Reader
|
|||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
public override AssemblyName[] __GetReferencedAssemblies()
|
||||
{
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
internal override Type GetTypeImpl(string typeName)
|
||||
{
|
||||
return null;
|
||||
|
|
Загрузка…
Ссылка в новой задаче