Commit b02a275d authored by Vinicius Jarina's avatar Vinicius Jarina
Browse files

[WinRT] Fixed Windows Phone 8 build.

parent 85c908ea
......@@ -142,9 +142,9 @@ namespace NLua.Extensions
return t.HasMethod ("op_LessThanOrEqual");
}
public static IEnumerable<MethodInfo> GetMethods (this Type t, string name, BindingFlags flags)
public static MethodInfo [] GetMethods (this Type t, string name, BindingFlags flags)
{
return t.GetMethods (flags).Where (m => m.Name == name);
return t.GetMethods (flags).Where (m => m.Name == name).ToArray ();
}
public static MethodInfo [] GetExtensionMethods (this Type type, IEnumerable<Assembly> assemblies = null)
......@@ -376,6 +376,11 @@ namespace NLua.Extensions
return t.GetTypeInfo ().IsAssignableFrom (t2.GetTypeInfo ());
}
public static MemberInfo [] GetMember (this Type t, string name, BindingFlags flags)
{
return null;
}
public static MethodInfo[] GetMethods (this Type t)
{
return null;
......
......@@ -399,8 +399,8 @@ namespace NLua
// Try to access by array if the type is right and index is an int (lua numbers always come across as double)
if (objType.IsArray && index is double) {
int intIndex = (int)((double)index);
#if NETFX_CORE
int intIndex = (int)((double)index);
#if NETFX_CORE
Type type = objType;
#else
Type type = objType.UnderlyingSystemType;
......@@ -594,7 +594,11 @@ namespace NLua
}
if (member != null) {
#if NETFX_CORE
if (member is FieldInfo) {
#else
if (member.MemberType == MemberTypes.Field) {
#endif
var field = (FieldInfo)member;
if (cachedMember == null)
......@@ -605,7 +609,11 @@ namespace NLua
} catch {
LuaLib.LuaPushNil (luaState);
}
#if NETFX_CORE
} else if (member is PropertyInfo) {
#else
} else if (member.MemberType == MemberTypes.Property) {
#endif
var property = (PropertyInfo)member;
if (cachedMember == null)
SetMemberCache (memberCache, objType, methodName, member);
......@@ -621,21 +629,31 @@ namespace NLua
return GetMember (luaState, new ProxyType(objType.UnderlyingSystemType.GetTypeInfo().BaseType), obj, methodName, bindingType);
#else
return GetMember (luaState, new ProxyType(objType.UnderlyingSystemType.BaseType), obj, methodName, bindingType);
#endif
#endif
else
LuaLib.LuaPushNil (luaState);
} catch (TargetInvocationException e) { // Convert this exception into a Lua error
ThrowError (luaState, e);
LuaLib.LuaPushNil (luaState);
}
#if NETFX_CORE
} else if (member is EventInfo) {
#else
} else if (member.MemberType == MemberTypes.Event) {
#endif
var eventInfo = (EventInfo)member;
if (cachedMember == null)
SetMemberCache (memberCache, objType, methodName, member);
translator.Push (luaState, new RegisterEventHandler (translator.pendingEvents, obj, eventInfo));
} else if (!implicitStatic) {
#if NETFX_CORE
var typeInfo = member as TypeInfo;
if (!typeInfo.IsPublic && !typeInfo.IsNotPublic) {
#else
if (member.MemberType == MemberTypes.NestedType) {
#endif
// kevinh - added support for finding nested types
// cache us
if (cachedMember == null)
......@@ -842,8 +860,12 @@ namespace NLua
return false;
}
}
#if NETFX_CORE
if (member is FieldInfo) {
#else
if (member.MemberType == MemberTypes.Field) {
#endif
var field = (FieldInfo)member;
object val = translator.GetAsType (luaState, 3, field.FieldType);
......@@ -855,7 +877,11 @@ namespace NLua
// We did a call
return true;
#if NETFX_CORE
} else if (member is PropertyInfo) {
#else
} else if (member.MemberType == MemberTypes.Property) {
#endif
var property = (PropertyInfo)member;
object val = translator.GetAsType (luaState, 3, property.PropertyType);
......
......@@ -94,7 +94,7 @@ namespace NLua.Method
_ExtractTarget = translator.typeChecker.GetExtractor (targetType);
_IsStatic = (bindingType & BindingFlags.Static) == BindingFlags.Static;
_Members = targetType.UnderlyingSystemType.GetMember (methodName, MemberTypes.Method, bindingType | BindingFlags.Public);
_Members = targetType.UnderlyingSystemType.GetMethods (methodName, bindingType | BindingFlags.Public);
}
/// <summary>
......@@ -204,11 +204,11 @@ namespace NLua.Method
string candidateName = null;
foreach (var member in _Members) {
#if NETFX_CORE
#if NETFX_CORE
candidateName = member.DeclaringType.Name + "." + member.Name;
#else
candidateName = member.ReflectedType.Name + "." + member.Name;
#endif
#endif
var m = (MethodInfo)member;
bool isMethod = _Translator.MatchParameters (luaState, m, ref _LastCalledMethod);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment