-Changed StringEnumConverter.AllowIntegerValues to also reject writing enum values with no name
This commit is contained in:
@@ -49,35 +49,35 @@ namespace Newtonsoft.Json.Utilities
|
||||
|
||||
public override DynamicMetaObject BindGetMember(GetMemberBinder binder)
|
||||
{
|
||||
return IsOverridden("TryGetMember")
|
||||
? CallMethodWithResult("TryGetMember", binder, NoArgs, e => binder.FallbackGetMember(this, e))
|
||||
return IsOverridden(nameof(DynamicProxy<T>.TryGetMember))
|
||||
? CallMethodWithResult(nameof(DynamicProxy<T>.TryGetMember), binder, NoArgs, e => binder.FallbackGetMember(this, e))
|
||||
: base.BindGetMember(binder);
|
||||
}
|
||||
|
||||
public override DynamicMetaObject BindSetMember(SetMemberBinder binder, DynamicMetaObject value)
|
||||
{
|
||||
return IsOverridden("TrySetMember")
|
||||
? CallMethodReturnLast("TrySetMember", binder, GetArgs(value), e => binder.FallbackSetMember(this, value, e))
|
||||
return IsOverridden(nameof(DynamicProxy<T>.TrySetMember))
|
||||
? CallMethodReturnLast(nameof(DynamicProxy<T>.TrySetMember), binder, GetArgs(value), e => binder.FallbackSetMember(this, value, e))
|
||||
: base.BindSetMember(binder, value);
|
||||
}
|
||||
|
||||
public override DynamicMetaObject BindDeleteMember(DeleteMemberBinder binder)
|
||||
{
|
||||
return IsOverridden("TryDeleteMember")
|
||||
? CallMethodNoResult("TryDeleteMember", binder, NoArgs, e => binder.FallbackDeleteMember(this, e))
|
||||
return IsOverridden(nameof(DynamicProxy<T>.TryDeleteMember))
|
||||
? CallMethodNoResult(nameof(DynamicProxy<T>.TryDeleteMember), binder, NoArgs, e => binder.FallbackDeleteMember(this, e))
|
||||
: base.BindDeleteMember(binder);
|
||||
}
|
||||
|
||||
public override DynamicMetaObject BindConvert(ConvertBinder binder)
|
||||
{
|
||||
return IsOverridden("TryConvert")
|
||||
? CallMethodWithResult("TryConvert", binder, NoArgs, e => binder.FallbackConvert(this, e))
|
||||
return IsOverridden(nameof(DynamicProxy<T>.TryConvert))
|
||||
? CallMethodWithResult(nameof(DynamicProxy<T>.TryConvert), binder, NoArgs, e => binder.FallbackConvert(this, e))
|
||||
: base.BindConvert(binder);
|
||||
}
|
||||
|
||||
public override DynamicMetaObject BindInvokeMember(InvokeMemberBinder binder, DynamicMetaObject[] args)
|
||||
{
|
||||
if (!IsOverridden("TryInvokeMember"))
|
||||
if (!IsOverridden(nameof(DynamicProxy<T>.TryInvokeMember)))
|
||||
{
|
||||
return base.BindInvokeMember(binder, args);
|
||||
}
|
||||
@@ -101,11 +101,11 @@ namespace Newtonsoft.Json.Utilities
|
||||
Fallback fallback = e => binder.FallbackInvokeMember(this, args, e);
|
||||
|
||||
return BuildCallMethodWithResult(
|
||||
"TryInvokeMember",
|
||||
nameof(DynamicProxy<T>.TryInvokeMember),
|
||||
binder,
|
||||
GetArgArray(args),
|
||||
BuildCallMethodWithResult(
|
||||
"TryGetMember",
|
||||
nameof(DynamicProxy<T>.TryGetMember),
|
||||
new GetBinderAdapter(binder),
|
||||
NoArgs,
|
||||
fallback(null),
|
||||
@@ -117,50 +117,50 @@ namespace Newtonsoft.Json.Utilities
|
||||
|
||||
public override DynamicMetaObject BindCreateInstance(CreateInstanceBinder binder, DynamicMetaObject[] args)
|
||||
{
|
||||
return IsOverridden("TryCreateInstance")
|
||||
? CallMethodWithResult("TryCreateInstance", binder, GetArgArray(args), e => binder.FallbackCreateInstance(this, args, e))
|
||||
return IsOverridden(nameof(DynamicProxy<T>.TryCreateInstance))
|
||||
? CallMethodWithResult(nameof(DynamicProxy<T>.TryCreateInstance), binder, GetArgArray(args), e => binder.FallbackCreateInstance(this, args, e))
|
||||
: base.BindCreateInstance(binder, args);
|
||||
}
|
||||
|
||||
public override DynamicMetaObject BindInvoke(InvokeBinder binder, DynamicMetaObject[] args)
|
||||
{
|
||||
return IsOverridden("TryInvoke")
|
||||
? CallMethodWithResult("TryInvoke", binder, GetArgArray(args), e => binder.FallbackInvoke(this, args, e))
|
||||
return IsOverridden(nameof(DynamicProxy<T>.TryInvoke))
|
||||
? CallMethodWithResult(nameof(DynamicProxy<T>.TryInvoke), binder, GetArgArray(args), e => binder.FallbackInvoke(this, args, e))
|
||||
: base.BindInvoke(binder, args);
|
||||
}
|
||||
|
||||
public override DynamicMetaObject BindBinaryOperation(BinaryOperationBinder binder, DynamicMetaObject arg)
|
||||
{
|
||||
return IsOverridden("TryBinaryOperation")
|
||||
? CallMethodWithResult("TryBinaryOperation", binder, GetArgs(arg), e => binder.FallbackBinaryOperation(this, arg, e))
|
||||
return IsOverridden(nameof(DynamicProxy<T>.TryBinaryOperation))
|
||||
? CallMethodWithResult(nameof(DynamicProxy<T>.TryBinaryOperation), binder, GetArgs(arg), e => binder.FallbackBinaryOperation(this, arg, e))
|
||||
: base.BindBinaryOperation(binder, arg);
|
||||
}
|
||||
|
||||
public override DynamicMetaObject BindUnaryOperation(UnaryOperationBinder binder)
|
||||
{
|
||||
return IsOverridden("TryUnaryOperation")
|
||||
? CallMethodWithResult("TryUnaryOperation", binder, NoArgs, e => binder.FallbackUnaryOperation(this, e))
|
||||
return IsOverridden(nameof(DynamicProxy<T>.TryUnaryOperation))
|
||||
? CallMethodWithResult(nameof(DynamicProxy<T>.TryUnaryOperation), binder, NoArgs, e => binder.FallbackUnaryOperation(this, e))
|
||||
: base.BindUnaryOperation(binder);
|
||||
}
|
||||
|
||||
public override DynamicMetaObject BindGetIndex(GetIndexBinder binder, DynamicMetaObject[] indexes)
|
||||
{
|
||||
return IsOverridden("TryGetIndex")
|
||||
? CallMethodWithResult("TryGetIndex", binder, GetArgArray(indexes), e => binder.FallbackGetIndex(this, indexes, e))
|
||||
return IsOverridden(nameof(DynamicProxy<T>.TryGetIndex))
|
||||
? CallMethodWithResult(nameof(DynamicProxy<T>.TryGetIndex), binder, GetArgArray(indexes), e => binder.FallbackGetIndex(this, indexes, e))
|
||||
: base.BindGetIndex(binder, indexes);
|
||||
}
|
||||
|
||||
public override DynamicMetaObject BindSetIndex(SetIndexBinder binder, DynamicMetaObject[] indexes, DynamicMetaObject value)
|
||||
{
|
||||
return IsOverridden("TrySetIndex")
|
||||
? CallMethodReturnLast("TrySetIndex", binder, GetArgArray(indexes, value), e => binder.FallbackSetIndex(this, indexes, value, e))
|
||||
return IsOverridden(nameof(DynamicProxy<T>.TrySetIndex))
|
||||
? CallMethodReturnLast(nameof(DynamicProxy<T>.TrySetIndex), binder, GetArgArray(indexes, value), e => binder.FallbackSetIndex(this, indexes, value, e))
|
||||
: base.BindSetIndex(binder, indexes, value);
|
||||
}
|
||||
|
||||
public override DynamicMetaObject BindDeleteIndex(DeleteIndexBinder binder, DynamicMetaObject[] indexes)
|
||||
{
|
||||
return IsOverridden("TryDeleteIndex")
|
||||
? CallMethodNoResult("TryDeleteIndex", binder, GetArgArray(indexes), e => binder.FallbackDeleteIndex(this, indexes, e))
|
||||
return IsOverridden(nameof(DynamicProxy<T>.TryDeleteIndex))
|
||||
? CallMethodNoResult(nameof(DynamicProxy<T>.TryDeleteIndex), binder, GetArgArray(indexes), e => binder.FallbackDeleteIndex(this, indexes, e))
|
||||
: base.BindDeleteIndex(binder, indexes);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user