mirror of
https://github.com/vrm-c/UniVRM.git
synced 2026-08-28 13:54:45 -05:00
Replace Invoke with GenericInvokeCallFactory
This commit is contained in:
@@ -56,10 +56,7 @@ namespace UniJSON
|
||||
}
|
||||
else
|
||||
{
|
||||
return (Func<S, T>)((S s) =>
|
||||
{
|
||||
return (T)mi.Invoke(null, new object[] { s });
|
||||
});
|
||||
return GenericInvokeCallFactory.StaticFunc<S, T>(mi);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -319,9 +319,11 @@ namespace UniJSON
|
||||
var mi = typeof(Enum).GetMethods(BindingFlags.Static | BindingFlags.Public).First(
|
||||
x => x.Name == "Parse" && x.GetParameters().Length == 3
|
||||
);
|
||||
|
||||
var enumParse = GenericInvokeCallFactory.StaticFunc<Type, string, bool, object>(mi);
|
||||
s_d = x =>
|
||||
{
|
||||
var enumValue = mi.Invoke(null, new object[] { typeof(U), x.GetString(), true });
|
||||
var enumValue = enumParse(typeof(U), x.GetString(), true);
|
||||
return GenericCast<object, U>.Cast(enumValue);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -338,7 +338,7 @@ namespace UniJSON
|
||||
BindingFlags.Static | BindingFlags.NonPublic)
|
||||
;
|
||||
var g = mi.MakeGenericMethod(fi.FieldType);
|
||||
return (FieldValidator)g.Invoke(null, new object[] { fi });
|
||||
return GenericInvokeCallFactory.StaticFunc<FieldInfo, FieldValidator>(g)(fi);
|
||||
}
|
||||
|
||||
static FieldValidator _CreateFieldValidator<U>(FieldInfo fi)
|
||||
@@ -498,7 +498,7 @@ namespace UniJSON
|
||||
var mi = typeof(Serializer).GetMethod("_CreateFieldSerializer",
|
||||
BindingFlags.Static | BindingFlags.NonPublic);
|
||||
var g = mi.MakeGenericMethod(fi.FieldType);
|
||||
return (FieldSerializer)g.Invoke(null, new object[] { fi });
|
||||
return GenericInvokeCallFactory.StaticFunc<FieldInfo, FieldSerializer>(g)(fi);
|
||||
}
|
||||
|
||||
static FieldSerializer _CreateFieldSerializer<U>(FieldInfo fi)
|
||||
|
||||
Reference in New Issue
Block a user