using System;
|
using ILRuntime.CLR.Method;
|
using ILRuntime.Runtime.Enviorment;
|
using ILRuntime.Runtime.Intepreter;
|
|
namespace ILCrossBinding
|
{
|
public class GameNetPackBasicAdapter : CrossBindingAdaptor
|
{
|
static CrossBindingMethodInfo<System.Byte[]> mReadFromBytes_0 = new CrossBindingMethodInfo<System.Byte[]>("ReadFromBytes");
|
static CrossBindingMethodInfo mWriteToBytes_1 = new CrossBindingMethodInfo("WriteToBytes");
|
public override Type BaseCLRType
|
{
|
get
|
{
|
return typeof(global::GameNetPackBasic);
|
}
|
}
|
|
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 : global::GameNetPackBasic, 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 override void ReadFromBytes(System.Byte[] vBytes)
|
{
|
if (mReadFromBytes_0.CheckShouldInvokeBase(this.instance))
|
base.ReadFromBytes(vBytes);
|
else
|
mReadFromBytes_0.Invoke(this.instance, vBytes);
|
}
|
|
public override void WriteToBytes()
|
{
|
if (mWriteToBytes_1.CheckShouldInvokeBase(this.instance))
|
base.WriteToBytes();
|
else
|
mWriteToBytes_1.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;
|
}
|
}
|
}
|
}
|