private void TryAddPropertyResolver( MemberResolverBinding binding, List <FieldResolverDescriptor> resolverDescriptors) { if (binding.FieldMember is PropertyInfo p) { FieldReference fieldReference = new FieldReference( binding.TypeName, binding.FieldName); resolverDescriptors.Add(FieldResolverDescriptor .CreateSourceProperty(fieldReference, p.ReflectedType, p)); } }
private void TryAddMethodResolver( MemberResolverBinding binding, List <FieldResolverDescriptor> resolverDescriptors) { if (binding.FieldMember is MethodInfo m) { FieldReference fieldReference = new FieldReference(binding.TypeName, binding.FieldName); bool isAsync = typeof(Task).IsAssignableFrom(m.ReturnType); IReadOnlyCollection <FieldResolverArgumentDescriptor> argumentDescriptors = FieldResolverDiscoverer.CreateResolverArgumentDescriptors( m, m.ReflectedType, m.ReflectedType); resolverDescriptors.Add(FieldResolverDescriptor.CreateSourceMethod( fieldReference, m.ReflectedType, m, isAsync, argumentDescriptors)); } }