using System;
using System.Reflection;
namespace NLua
{
///
/// Summary description for ProxyType.
///
public class ProxyType
{
private Type proxy;
public ProxyType(Type proxy)
{
this.proxy = proxy;
}
///
/// Provide human readable short hand for this proxy object
///
///
public override string ToString()
{
return "ProxyType(" + UnderlyingSystemType + ")";
}
public Type UnderlyingSystemType {
get { return proxy; }
}
public override bool Equals(object obj)
{
if (obj is Type)
return proxy.Equals((Type)obj);
if (obj is ProxyType)
return proxy.Equals(((ProxyType)obj).UnderlyingSystemType);
return proxy.Equals(obj);
}
public override int GetHashCode()
{
return proxy.GetHashCode();
}
public MemberInfo[] GetMember(string name, BindingFlags bindingAttr)
{
return proxy.GetMember(name, bindingAttr);
}
public MethodInfo GetMethod(string name, BindingFlags bindingAttr, Type[] signature)
{
#if NETFX_CORE
return proxy.GetMethod (name, bindingAttr, signature);
#else
return proxy.GetMethod(name, bindingAttr, null, signature, null);
#endif
}
}
}