| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- using System;
- using ILRuntime.CLR.Method;
- using ILRuntime.Runtime.Enviorment;
- using ILRuntime.Runtime.Intepreter;
- namespace ET
- {
- public class IDisposableAdapter : CrossBindingAdaptor
- {
- static CrossBindingMethodInfo mDispose_0 = new CrossBindingMethodInfo("Dispose");
- public override Type BaseCLRType
- {
- get
- {
- return typeof(System.IDisposable);
- }
- }
- public override Type AdaptorType
- {
- get
- {
- return typeof(Adapter);
- }
- }
- public override object CreateCLRInstance(ILRuntime.Runtime.Enviorment.AppDomain appdomain, ILTypeInstance instance)
- {
- return new Adapter(appdomain, instance);
- }
- public class Adapter : System.IDisposable, CrossBindingAdaptorType
- {
- ILTypeInstance instance;
- ILRuntime.Runtime.Enviorment.AppDomain appdomain;
- public Adapter()
- {
- }
- public Adapter(ILRuntime.Runtime.Enviorment.AppDomain appdomain, ILTypeInstance instance)
- {
- this.appdomain = appdomain;
- this.instance = instance;
- }
- public ILTypeInstance ILInstance { get { return instance; } }
- public void Dispose()
- {
- mDispose_0.Invoke(this.instance);
- }
- public override string ToString()
- {
- IMethod m = appdomain.ObjectType.GetMethod("ToString", 0);
- m = instance.Type.GetVirtualMethod(m);
- if (m == null || m is ILMethod)
- {
- return instance.ToString();
- }
- else
- return instance.Type.FullName;
- }
- }
- }
- }
|