{"record":{"id":"9cc19589cd24e5cc","repo":"JamesNK/Newtonsoft.Json","slug":"unexpected-member-type-0-for-member-1","errorCode":null,"errorMessage":"Unexpected member type '{0}' for member '{1}'.","messagePattern":"Unexpected member type '(.+?)' for member '(.+?)'\\.","errorType":"exception","errorClass":"ArgumentException","httpStatus":null,"severity":"error","filePath":"Src/Newtonsoft.Json/Utilities/ReflectionObject.cs","lineNumber":170,"sourceCode":"                    case MemberTypes.Method:\n                        MethodInfo method = (MethodInfo)member;\n                        if (method.IsPublic)\n                        {\n                            ParameterInfo[] parameters = method.GetParameters();\n                            if (parameters.Length == 0 && method.ReturnType != typeof(void))\n                            {\n                                MethodCall<object, object?> call = delegateFactory.CreateMethodCall<object>(method);\n                                reflectionMember.Getter = target => call(target);\n                            }\n                            else if (parameters.Length == 1 && method.ReturnType == typeof(void))\n                            {\n                                MethodCall<object, object?> call = delegateFactory.CreateMethodCall<object>(method);\n                                reflectionMember.Setter = (target, arg) => call(target, arg);\n                            }\n                        }\n                        break;\n                    default:\n                        throw new ArgumentException(\"Unexpected member type '{0}' for member '{1}'.\".FormatWith(CultureInfo.InvariantCulture, member.MemberType(), member.Name));\n                }\n\n                reflectionMember.MemberType = ReflectionUtils.GetMemberUnderlyingType(member);\n\n                d.Members[memberName] = reflectionMember;\n            }\n\n            return d;\n        }\n    }\n}\n","sourceCodeStart":152,"sourceCodeEnd":182,"githubUrl":"https://github.com/JamesNK/Newtonsoft.Json/blob/4f73e74372445108d2c1bda37b36e6f5e43402e0/Src/Newtonsoft.Json/Utilities/ReflectionObject.cs#L152-L182","documentation":"Thrown by ReflectionObject.Create's switch default case when a resolved member's MemberType is not Field, Property, or Method. ReflectionObject only wires up fields, properties, and zero-or-one-argument methods; events, nested types, constructors, and TypeInfo fall into this default branch.","triggerScenarios":"Calling ReflectionObject.Create with a member name that resolves to an EventInfo, a nested type, or a constructor rather than a field/property/method.","commonSituations":"A type that has an event or nested type whose name shadows the intended field/property, or exploration/tooling code that passes arbitrary member names found via reflection.","solutions":["Use a member name that refers to a field, property, or suitable method (parameterless with a return, or single-param void).","Avoid passing names of events or nested types to ReflectionObject.Create.","Inspect member.MemberType before calling Create to filter to supported kinds."],"exampleFix":"// before\nvar ro = ReflectionObject.Create(typeof(Foo), \"Clicked\");\n// 'Clicked' is an event -> Unexpected member type 'Event'\n\n// after\nvar ro = ReflectionObject.Create(typeof(Foo), \"Value\"); // Value is a property","handlingStrategy":"validation","validationCode":"MemberTypes supported = MemberTypes.Field | MemberTypes.Property | MemberTypes.Method;\nMemberInfo m = type.GetMember(name, BindingFlags.Instance | BindingFlags.Public).Single();\nif ((m.MemberType & supported) == 0) throw new ArgumentException($\"{m.MemberType} not supported\");","typeGuard":"static bool IsSupportedMember(MemberInfo m) => m.MemberType is MemberTypes.Field or MemberTypes.Property or MemberTypes.Method;","tryCatchPattern":null,"preventionTips":["Check member.MemberType against Field/Property/Method before calling ReflectionObject.Create.","Avoid names that collide with events or nested types.","Document which member kinds ReflectionObject supports for your team."],"tags":["reflection","reflectionobject","member-type","event"],"analyzedSha":"4f73e74372445108d2c1bda37b36e6f5e43402e0","analyzedAt":"2026-08-07T06:10:08.596Z","schemaVersion":2},"datasetVersion":"2026-08-07T07:17:06.508Z"}