private void AddResolvers( IDescriptorContext context, ObjectType objectType, Type resolverType) { foreach (MemberInfo member in context.Inspector.GetMembers(resolverType)) { if (IsResolverRelevant(objectType.ClrType, member)) { NameString fieldName = context.Naming.GetMemberName( member, MemberKind.ObjectField); var fieldMember = new FieldMember( objectType.Name, fieldName, member); var resolver = new RegisteredResolver( resolverType, objectType.ClrType, fieldMember); _res[fieldMember.ToFieldReference()] = resolver; } } }
public void RegisterResolver( NameString fieldName, MemberInfo member, Type sourceType, Type resolverType) { if (member == null) { throw new ArgumentNullException(nameof(member)); } if (sourceType == null) { throw new ArgumentNullException(nameof(sourceType)); } fieldName.EnsureNotEmpty(nameof(fieldName)); var fieldMember = new FieldMember(InternalName, fieldName, member); Resolvers[fieldMember.ToFieldReference()] = resolverType == null ? new RegisteredResolver(sourceType, fieldMember) : new RegisteredResolver(resolverType, sourceType, fieldMember); }