示例#1
0
        internal bool TryGetValueSource(
            IValueDescriptor valueDescriptor,
            out IValueSource valueSource)
        {
            foreach (var symbol in ParseResult.ValueDescriptors())
            {
                if (ValueDescriptor.CanBind(
                        from: symbol,
                        to: valueDescriptor))
                {
                    valueSource = new SymbolValueSource((ISymbol)symbol);

                    return(true);
                }
            }

            if (ServiceProvider.AvailableServiceTypes.Contains(valueDescriptor.Type))
            {
                valueSource = new ServiceProviderValueSource();
                return(true);
            }

            valueSource = null;
            return(false);
        }
示例#2
0
        internal bool TryGetValueSource(
            IValueDescriptor valueDescriptor,
            [MaybeNullWhen(false)] out IValueSource valueSource)
        {
            if (ServiceProvider.AvailableServiceTypes.Contains(valueDescriptor.ValueType))
            {
                valueSource = new ServiceProviderValueSource();
                return(true);
            }

            valueSource = default !;
示例#3
0
        internal bool TryGetValueSource(
            IValueDescriptor valueDescriptor,
            out IValueSource valueSource)
        {
            if (ServiceProvider.AvailableServiceTypes.Contains(valueDescriptor.Type))
            {
                valueSource = new ServiceProviderValueSource();
                return(true);
            }

            valueSource = null;
            return(false);
        }