public virtual SearcherFilter GetOutputToGraphSearcherFilter(IPortModel portModel)
        {
            // TODO : Need to be handled by TypeHandle.Resolve
            TypeHandle      typeHandle = portModel.DataType == TypeHandle.ThisType ? m_Stencil.GetThisType() : portModel.DataType;
            Type            type       = typeHandle.Resolve(m_Stencil);
            GraphAssetModel assetModel = portModel.AssetModel as GraphAssetModel;

            return(new SearcherFilter(SearcherContext.Graph)
                   .WithVisualScriptingNodes()
                   .WithFields(type)
                   .WithUnaryOperators(type, portModel.NodeModel is IConstantNodeModel)
                   .WithBinaryOperators(type)
                   .WithMethods(type)
                   .WithProperties(type, false)
                   .WithGraphAsset(assetModel));
        }
        public virtual List <SearcherDatabase> GetTypeMembersSearcherDatabases(TypeHandle typeHandle)
        {
            // TODO : Need to be handled by TypeHandle.Resolve
            Type type = typeHandle == TypeHandle.ThisType
                ? m_Stencil.GetThisType().Resolve(m_Stencil)
                : typeHandle.Resolve(m_Stencil);

            return(new List <SearcherDatabase>
            {
                new GraphElementSearcherDatabase(m_Stencil)
                .AddMembers(
                    new[] { type },
                    MemberFlags.Field | MemberFlags.Method | MemberFlags.Property | MemberFlags.Extension,
                    BindingFlags.Instance | BindingFlags.Public
                    )
                .Build()
            });
        }