当前位置: 首页>>代码示例>>C#>>正文


C# IReference.Select方法代码示例

本文整理汇总了C#中IReference.Select方法的典型用法代码示例。如果您正苦于以下问题:C# IReference.Select方法的具体用法?C# IReference.Select怎么用?C# IReference.Select使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IReference的用法示例。


在下文中一共展示了IReference.Select方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: GetReferences

        public IReference[] GetReferences(ITreeNode element, IReference[] oldReferences)
        {
            var expression = element as ICSharpExpression;
            if (expression != null)
            {
                if (oldReferences != null && oldReferences.Length > 0)
                {
                    if (oldReferences
                        .Select(reference => reference as IReflectedReference)
                        .All(reference => reference != null && reference.GetTreeNode() == expression && reference.IsInternalValid))
                    {
                        return oldReferences;
                    }
                }

                expression.AssertIsValid("element is not valid");
                if (expression.ConstantValue.IsString())
                {
                    var argument = expression.GetContainingNode<IArgument>();
                    if (argument != null && argument.Expression == expression)
                    {
                        var argumentsOwner = argument.Invocation as IInvocationExpression;
                        if (argumentsOwner != null)
                        {
                            var invokedExpression = argumentsOwner.InvokedExpression as IReferenceExpression;
                            if (invokedExpression != null && invokedExpression.QualifierExpression != null)
                            {
                                var declaredType = invokedExpression.QualifierExpression.Type() as IDeclaredType;

                                if (declaredType != null && declaredType.GetClrName().FullName == "System.Type")
                                {
                                    var kind = GetMemberKind(argumentsOwner);
                                    if (kind != null)
                                    {
                                        var parameter = argument
                                            .IfNotNull(d => d.MatchingParameter)
                                            .IfNotNull(p => p.Element);

                                        if (parameter != null && parameter.ShortName == "name")
                                        {
                                            return new IReference[]
                                            {
                                                new ReflectedMemberReference(kind.Value, expression, argumentsOwner)
                                            };
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            return EmptyArray<IReference>.Instance;
        }
开发者ID:hazzik,项目名称:ReSharper.Reflection,代码行数:54,代码来源:ReflectedReferenceProvider.cs


注:本文中的IReference.Select方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。