зеркало из https://github.com/mono/ikvm-fork.git
Introduced base class for virtual Module classes to have common place to implement abstract Module methods that aren't supported.
This commit is contained in:
Родитель
1c8b1c0cd5
Коммит
602e60e74c
|
@ -641,7 +641,7 @@ namespace IKVM.Reflection.Emit
|
|||
}
|
||||
}
|
||||
|
||||
sealed class ManifestModule : Module
|
||||
sealed class ManifestModule : NonPEModule
|
||||
{
|
||||
private readonly AssemblyBuilder assembly;
|
||||
private readonly Guid guid = Guid.NewGuid();
|
||||
|
@ -686,64 +686,14 @@ namespace IKVM.Reflection.Emit
|
|||
get { return guid; }
|
||||
}
|
||||
|
||||
public override Type ResolveType(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
|
||||
{
|
||||
throw new ArgumentException();
|
||||
}
|
||||
|
||||
public override MethodBase ResolveMethod(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
|
||||
{
|
||||
throw new ArgumentException();
|
||||
}
|
||||
|
||||
public override FieldInfo ResolveField(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
|
||||
{
|
||||
throw new ArgumentException();
|
||||
}
|
||||
|
||||
public override MemberInfo ResolveMember(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
|
||||
{
|
||||
throw new ArgumentException();
|
||||
}
|
||||
|
||||
public override string ResolveString(int metadataToken)
|
||||
{
|
||||
throw new ArgumentException();
|
||||
}
|
||||
|
||||
public override Type[] __ResolveOptionalParameterTypes(int metadataToken)
|
||||
{
|
||||
throw new ArgumentException();
|
||||
}
|
||||
|
||||
public override string ScopeName
|
||||
{
|
||||
get { return "RefEmit_InMemoryManifestModule"; }
|
||||
}
|
||||
|
||||
public override AssemblyName[] __GetReferencedAssemblies()
|
||||
protected override Exception NotSupportedException()
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
public override string[] __GetReferencedModules()
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
internal override Type GetModuleType()
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
internal override IKVM.Reflection.Reader.ByteReader GetBlob(int blobIndex)
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
protected override long GetImageBaseImpl()
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
return new InvalidOperationException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -194,7 +194,7 @@ namespace IKVM.Reflection
|
|||
}
|
||||
}
|
||||
|
||||
sealed class MissingModule : Module
|
||||
sealed class MissingModule : NonPEModule
|
||||
{
|
||||
private readonly MissingAssembly assembly;
|
||||
|
||||
|
@ -229,36 +229,6 @@ namespace IKVM.Reflection
|
|||
get { throw new MissingModuleException(this); }
|
||||
}
|
||||
|
||||
public override Type ResolveType(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
|
||||
{
|
||||
throw new MissingModuleException(this);
|
||||
}
|
||||
|
||||
public override MethodBase ResolveMethod(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
|
||||
{
|
||||
throw new MissingModuleException(this);
|
||||
}
|
||||
|
||||
public override FieldInfo ResolveField(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
|
||||
{
|
||||
throw new MissingModuleException(this);
|
||||
}
|
||||
|
||||
public override MemberInfo ResolveMember(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
|
||||
{
|
||||
throw new MissingModuleException(this);
|
||||
}
|
||||
|
||||
public override string ResolveString(int metadataToken)
|
||||
{
|
||||
throw new MissingModuleException(this);
|
||||
}
|
||||
|
||||
public override Type[] __ResolveOptionalParameterTypes(int metadataToken)
|
||||
{
|
||||
throw new MissingModuleException(this);
|
||||
}
|
||||
|
||||
public override string ScopeName
|
||||
{
|
||||
get { throw new MissingModuleException(this); }
|
||||
|
@ -274,26 +244,6 @@ namespace IKVM.Reflection
|
|||
throw new MissingModuleException(this);
|
||||
}
|
||||
|
||||
public override AssemblyName[] __GetReferencedAssemblies()
|
||||
{
|
||||
throw new MissingModuleException(this);
|
||||
}
|
||||
|
||||
public override string[] __GetReferencedModules()
|
||||
{
|
||||
throw new MissingModuleException(this);
|
||||
}
|
||||
|
||||
internal override Type GetModuleType()
|
||||
{
|
||||
throw new MissingModuleException(this);
|
||||
}
|
||||
|
||||
internal override IKVM.Reflection.Reader.ByteReader GetBlob(int blobIndex)
|
||||
{
|
||||
throw new MissingModuleException(this);
|
||||
}
|
||||
|
||||
public override void __GetDataDirectoryEntry(int index, out int rva, out int length)
|
||||
{
|
||||
throw new MissingModuleException(this);
|
||||
|
@ -339,9 +289,19 @@ namespace IKVM.Reflection
|
|||
throw new MissingModuleException(this);
|
||||
}
|
||||
|
||||
protected override long GetImageBaseImpl()
|
||||
protected override Exception InvalidOperationException()
|
||||
{
|
||||
throw new MissingModuleException(this);
|
||||
return new MissingModuleException(this);
|
||||
}
|
||||
|
||||
protected override Exception NotSupportedException()
|
||||
{
|
||||
return new MissingModuleException(this);
|
||||
}
|
||||
|
||||
protected override Exception ArgumentOutOfRangeException()
|
||||
{
|
||||
return new MissingModuleException(this);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -142,7 +142,7 @@ namespace IKVM.Reflection
|
|||
internal readonly MethodSpecTable MethodSpec = new MethodSpecTable();
|
||||
internal readonly GenericParamConstraintTable GenericParamConstraint = new GenericParamConstraintTable();
|
||||
|
||||
internal Module(Universe universe)
|
||||
protected Module(Universe universe)
|
||||
{
|
||||
this.universe = universe;
|
||||
}
|
||||
|
@ -487,6 +487,84 @@ namespace IKVM.Reflection
|
|||
}
|
||||
}
|
||||
|
||||
abstract class NonPEModule : Module
|
||||
{
|
||||
protected NonPEModule(Universe universe)
|
||||
: base(universe)
|
||||
{
|
||||
}
|
||||
|
||||
protected virtual Exception InvalidOperationException()
|
||||
{
|
||||
return new InvalidOperationException();
|
||||
}
|
||||
|
||||
protected virtual Exception NotSupportedException()
|
||||
{
|
||||
return new NotSupportedException();
|
||||
}
|
||||
|
||||
protected virtual Exception ArgumentOutOfRangeException()
|
||||
{
|
||||
return new ArgumentOutOfRangeException();
|
||||
}
|
||||
|
||||
internal sealed override Type GetModuleType()
|
||||
{
|
||||
throw InvalidOperationException();
|
||||
}
|
||||
|
||||
internal sealed override ByteReader GetBlob(int blobIndex)
|
||||
{
|
||||
throw InvalidOperationException();
|
||||
}
|
||||
|
||||
public sealed override AssemblyName[] __GetReferencedAssemblies()
|
||||
{
|
||||
throw NotSupportedException();
|
||||
}
|
||||
|
||||
public sealed override string[] __GetReferencedModules()
|
||||
{
|
||||
throw NotSupportedException();
|
||||
}
|
||||
|
||||
protected sealed override long GetImageBaseImpl()
|
||||
{
|
||||
throw NotSupportedException();
|
||||
}
|
||||
|
||||
public sealed override Type ResolveType(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
|
||||
{
|
||||
throw ArgumentOutOfRangeException();
|
||||
}
|
||||
|
||||
public sealed override MethodBase ResolveMethod(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
|
||||
{
|
||||
throw ArgumentOutOfRangeException();
|
||||
}
|
||||
|
||||
public sealed override FieldInfo ResolveField(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
|
||||
{
|
||||
throw ArgumentOutOfRangeException();
|
||||
}
|
||||
|
||||
public sealed override MemberInfo ResolveMember(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
|
||||
{
|
||||
throw ArgumentOutOfRangeException();
|
||||
}
|
||||
|
||||
public sealed override string ResolveString(int metadataToken)
|
||||
{
|
||||
throw ArgumentOutOfRangeException();
|
||||
}
|
||||
|
||||
public sealed override Type[] __ResolveOptionalParameterTypes(int metadataToken)
|
||||
{
|
||||
throw ArgumentOutOfRangeException();
|
||||
}
|
||||
}
|
||||
|
||||
public delegate bool TypeFilter(Type m, object filterCriteria);
|
||||
public delegate bool MemberFilter(MemberInfo m, object filterCriteria);
|
||||
}
|
||||
|
|
|
@ -94,13 +94,23 @@ namespace IKVM.Reflection.Reader
|
|||
private static readonly DummyModule module = new DummyModule();
|
||||
private readonly int position;
|
||||
|
||||
private sealed class DummyModule : Module
|
||||
private sealed class DummyModule : NonPEModule
|
||||
{
|
||||
internal DummyModule()
|
||||
: base(new Universe())
|
||||
{
|
||||
}
|
||||
|
||||
protected override Exception NotSupportedException()
|
||||
{
|
||||
return new InvalidOperationException();
|
||||
}
|
||||
|
||||
protected override Exception ArgumentOutOfRangeException()
|
||||
{
|
||||
return new InvalidOperationException();
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
|
@ -151,65 +161,10 @@ namespace IKVM.Reflection.Reader
|
|||
get { throw new InvalidOperationException(); }
|
||||
}
|
||||
|
||||
public override Type ResolveType(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
public override MethodBase ResolveMethod(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
public override FieldInfo ResolveField(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
public override MemberInfo ResolveMember(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
public override string ResolveString(int metadataToken)
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
public override Type[] __ResolveOptionalParameterTypes(int metadataToken)
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
public override string ScopeName
|
||||
{
|
||||
get { throw new InvalidOperationException(); }
|
||||
}
|
||||
|
||||
public override AssemblyName[] __GetReferencedAssemblies()
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
public override string[] __GetReferencedModules()
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
internal override Type GetModuleType()
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
internal override ByteReader GetBlob(int blobIndex)
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
protected override long GetImageBaseImpl()
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
}
|
||||
|
||||
internal static Type Make(int position)
|
||||
|
|
|
@ -26,7 +26,7 @@ using System.Collections.Generic;
|
|||
|
||||
namespace IKVM.Reflection.Reader
|
||||
{
|
||||
sealed class ResourceModule : Module
|
||||
sealed class ResourceModule : NonPEModule
|
||||
{
|
||||
private readonly Assembly assembly;
|
||||
private readonly string scopeName;
|
||||
|
@ -75,51 +75,6 @@ namespace IKVM.Reflection.Reader
|
|||
get { throw new NotSupportedException(); }
|
||||
}
|
||||
|
||||
public override Type ResolveType(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
|
||||
{
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
public override MethodBase ResolveMethod(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
|
||||
{
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
public override FieldInfo ResolveField(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
|
||||
{
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
public override MemberInfo ResolveMember(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
|
||||
{
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
public override string ResolveString(int metadataToken)
|
||||
{
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
public override Type[] __ResolveOptionalParameterTypes(int metadataToken)
|
||||
{
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
public override AssemblyName[] __GetReferencedAssemblies()
|
||||
{
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
public override string[] __GetReferencedModules()
|
||||
{
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
protected override long GetImageBaseImpl()
|
||||
{
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
internal override Type FindType(TypeName typeName)
|
||||
{
|
||||
return null;
|
||||
|
@ -129,14 +84,9 @@ namespace IKVM.Reflection.Reader
|
|||
{
|
||||
}
|
||||
|
||||
internal override Type GetModuleType()
|
||||
protected override Exception ArgumentOutOfRangeException()
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
internal override ByteReader GetBlob(int blobIndex)
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
return new NotSupportedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче