Пример #1
0
        public virtual IBinding Resolve(string name)
        {
            foreach (TypeMember member in _typeDefinition.Members)
            {
                if (name == member.Name)
                {
                    IBinding binding = BindingManager.GetOptionalBinding(member);
                    if (null == binding)
                    {
                        binding = CreateCorrectBinding(member);
                        _bindingManager.Bind(member, binding);
                    }

                    if (BindingType.Type == binding.BindingType)
                    {
                        binding = _bindingManager.ToTypeReference((ITypeBinding)binding);
                    }
                    return(binding);
                }
            }

            foreach (TypeReference baseType in _typeDefinition.BaseTypes)
            {
                IBinding binding = _bindingManager.GetBoundType(baseType).Resolve(name);
                if (null != binding)
                {
                    return(binding);
                }
            }
            return(null);
        }
Пример #2
0
 public ITypeBinding GetParameterType(int parameterIndex)
 {
     return(_bindingManager.GetBoundType(_method.Parameters[parameterIndex].Type));
 }