Exemplo n.º 1
0
    private void SetupTarget()
    {
        object target = _targetRef.Target;
        Type targetType = _targetRef.Target.GetType();

        BindingFlags bindingFlags = BindingFlags.Public;

        if(target is Type)
        {
            bindingFlags |= BindingFlags.Static;
            targetType = target as Type;
        }
        else
        {
            bindingFlags |= BindingFlags.Instance;
        }

        if(_shouldShowNonPublicMembers)
        {
            bindingFlags |= BindingFlags.NonPublic;
        }

        FieldInfo[] fieldInfos = targetType.GetFields(bindingFlags);
        PropertyInfo[] propertyInfos = targetType.GetProperties(bindingFlags);

        for(int f = 0; f<fieldInfos.Length; f++)
        {
            FWatcherLinkMember member = new FWatcherLinkMember(this, fieldInfos[f]);

            if(member.CheckIfValid())
            {
                _members.Add(member);
            }
        }

        for(int p = 0; p<propertyInfos.Length; p++)
        {
            FWatcherLinkMember member = new FWatcherLinkMember(this, propertyInfos[p]);

            if(member.CheckIfValid())
            {
                _members.Add(member);
            }
        }
    }