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;
         }
     }
 }
Exemple #2
0
        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);
        }