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


C# Expressions.TypeBinaryExpression类代码示例

本文整理汇总了C#中System.Linq.Expressions.TypeBinaryExpression的典型用法代码示例。如果您正苦于以下问题:C# TypeBinaryExpression类的具体用法?C# TypeBinaryExpression怎么用?C# TypeBinaryExpression使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


TypeBinaryExpression类属于System.Linq.Expressions命名空间,在下文中一共展示了TypeBinaryExpression类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: TypeEqual

 internal static TypeEqual TypeEqual(TypeBinaryExpression expression)
 {
     return new TypeEqual()
     {
         Expression = Serialize(expression.Expression),
         TypeOperand = TypeRef.Serialize(expression.TypeOperand),
     }.Apply(n => n.Type = TypeRef.Serialize(expression.Type));
 }
开发者ID:takeshik,项目名称:yacq,代码行数:8,代码来源:TypeEqual.cs

示例2: SerializableTypeBinaryExpression

        /// <summary>
        /// Constructor with an <see cref="TypeBinaryExpression"/> and an <see cref="ExpressionConverter"/>.
        /// </summary>
        /// <param name="expression">The original, not serializable <see cref="Expression"/>.</param>
        /// <param name="expConverter">The <see cref="ExpressionConverter"/> to convert contained <see cref="Expression">Expressions</see>.</param>
        public SerializableTypeBinaryExpression(TypeBinaryExpression expression, ExpressionConverter expConverter)
            : base(expression, expConverter)
        {
            Expression = expression.Expression.MakeSerializable(expConverter);
#if !NETFX_CORE
            TypeOperand = InterLinqTypeSystem.Instance.GetInterLinqVersionOf<InterLinqType>(expression.TypeOperand);
#else
            TypeOperand = InterLinqTypeSystem.Instance.GetInterLinqVersionOf<InterLinqType>(expression.TypeOperand.GetTypeInfo());
#endif
        }
开发者ID:modulexcite,项目名称:Interlinq-2,代码行数:15,代码来源:SerializableTypeBinaryExpression.cs

示例3: ParseExpression

 static Node ParseExpression(TypeBinaryExpression e)
 {
     switch (e.NodeType)
     {
         case ExpressionType.TypeIs:
             return new BinaryNode
                 {
                     Left = Parse(e.Expression),
                     Operator = "is",
                     Right = new ConstantNode() { Text = NameOfType(e.TypeOperand) },
                     Value = GetValue(e)
                 };
         default:
             throw new NotImplementedException(string.Format(CultureInfo.CurrentCulture,
                                                             "Can't handle TypeBinaryExpression of type {0}",
                                                             e.NodeType));
     }
 }
开发者ID:joshrobb,项目名称:PowerAssert.Net,代码行数:18,代码来源:ExpressionParser.cs

示例4: VisitTypeIs

 protected virtual System.Linq.Expressions.Expression VisitTypeIs(TypeBinaryExpression b)
 {
     System.Linq.Expressions.Expression expr = Visit(b.Expression);
     if(expr != b.Expression)
     {
         return System.Linq.Expressions.Expression.TypeIs(expr, b.TypeOperand);
     }
     return b;
 }
开发者ID:NatashaSchutte,项目名称:Warewolf-ESB,代码行数:9,代码来源:ExpressionVisitor.cs

示例5: VisitTypeBinary

 /// <summary>
 /// Visits a TypeBinaryExpression.
 /// </summary>
 /// <param name="node">The TypeBinaryExpression.</param>
 /// <returns>The TypeBinaryExpression.</returns>
 protected override Expression VisitTypeBinary(TypeBinaryExpression node)
 {
     throw new NotImplementedException();
 }
开发者ID:mpobrien,项目名称:mongo-csharp-driver,代码行数:9,代码来源:ExpressionPrettyPrinter.cs

示例6: TypeBinaryExpressionMutator

 public TypeBinaryExpressionMutator(TypeBinaryExpression expression)
 {
     TypeBinaryExpression = expression;
 }
开发者ID:nlhepler,项目名称:mono,代码行数:4,代码来源:TypeBinaryExpressionMutator.cs

示例7: VisitTypeBinary

 private static string VisitTypeBinary(TypeBinaryExpression node)
 {
     throw new NotImplementedException();
 }
开发者ID:bryangrossman,项目名称:ZuoraMagic,代码行数:4,代码来源:ZOQLVisitor.cs

示例8: UpdateTypeIs

 protected TypeBinaryExpression UpdateTypeIs(TypeBinaryExpression binary, Expression expression, Type typeOperand)
 {
     if (expression != binary.Expression || typeOperand != binary.TypeOperand)
     {
         return Expression.TypeIs(expression, typeOperand);
     }
     return binary;
 }
开发者ID:Bitwix,项目名称:XeroAPI.Net,代码行数:8,代码来源:ExpressionVisitor.cs

示例9: VisitTypeIs

        /// <summary>
        /// Serializes an TypeBinaryExpression to a string
        /// </summary>
        /// <param name="b">TypeBinaryExpression to serialize</param>
        /// <returns>serialized expression</returns>
        internal override Expression VisitTypeIs(TypeBinaryExpression b)
        {
            this.builder.Append(UriHelper.ISOF);
            this.builder.Append(UriHelper.LEFTPAREN);

            if (!this.IsImplicitInputReference(b.Expression))
            {
                this.Visit(b.Expression);
                this.builder.Append(UriHelper.COMMA);
                this.builder.Append(UriHelper.SPACE);
            }

            this.builder.Append(UriHelper.QUOTE);
            this.builder.Append(UriHelper.GetTypeNameForUri(b.TypeOperand, this.context));
            this.builder.Append(UriHelper.QUOTE);
            this.builder.Append(UriHelper.RIGHTPAREN);

            return b;
        }
开发者ID:AlineGuan,项目名称:odata.net,代码行数:24,代码来源:ExpressionWriter.cs

示例10: VisitTypeBinaryExpression

 protected override Expression VisitTypeBinaryExpression(TypeBinaryExpression expression)
 {
     return expression;
 }
开发者ID:aishaloshik,项目名称:EntityFramework,代码行数:4,代码来源:EntityResultFindingExpressionTreeVisitor.cs

示例11: BuildTypeIsQuery

        private IMongoQuery BuildTypeIsQuery(TypeBinaryExpression typeBinaryExpression)
        {
            var nominalType = typeBinaryExpression.Expression.Type;
            var actualType = typeBinaryExpression.TypeOperand;

            var discriminatorConvention = BsonSerializer.LookupDiscriminatorConvention(nominalType);
            var discriminator = discriminatorConvention.GetDiscriminator(nominalType, actualType);
            if (discriminator == null)
            {
                return new QueryDocument(); // matches everything
            }

            if (discriminator.IsBsonArray)
            {
                discriminator = discriminator.AsBsonArray[discriminator.AsBsonArray.Count - 1];
            }

            return Query.EQ(discriminatorConvention.ElementName, discriminator);
        }
开发者ID:nilayparikh,项目名称:mongo-csharp-driver,代码行数:19,代码来源:SelectQuery.cs

示例12: VisitTypeIs

 internal override Expression VisitTypeIs(TypeBinaryExpression b)
 {
     if (ClientType.CheckElementTypeIsEntity(b.Expression.Type) || IsCollectionProducingExpression(b.Expression))
     {
         throw new NotSupportedException(Strings.ALinq_ExpressionNotSupportedInProjection(this.type, b.ToString()));
     }
     
     return base.VisitTypeIs(b);
 }
开发者ID:JianwenSun,项目名称:cc,代码行数:9,代码来源:ProjectionAnalyzer.cs

示例13: VisitTypeBinary

 /// <summary>
 /// Visits a TypeBinaryExpression.
 /// </summary>
 /// <param name="node">The TypeBinaryExpression.</param>
 /// <returns>The TypeBinaryExpression.</returns>
 protected override Expression VisitTypeBinary(TypeBinaryExpression node)
 {
     _sb.Append("<TypeBinaryExpression>");
     return node;
 }
开发者ID:doobiwan,项目名称:mongo-csharp-driver,代码行数:10,代码来源:ExpressionFormatter.cs

示例14: VisitTypeBinary

        protected override Expression VisitTypeBinary(TypeBinaryExpression b)
        {
            var f = GetField(b.Expression);

            FieldReference fr = f as FieldReference;
            if (fr != null)
            {
                if (b.TypeOperand.IsAssignableFrom(fr.FieldType))
                {
                    sb.Append(fr.Name.SqlEscape() + " IS NOT NULL");
                }
                else
                    throw new InvalidOperationException("A {0} will never be {1}".FormatWith(fr.FieldType.TypeName(), b.TypeOperand.TypeName()));

                return b;
            }

            FieldImplementedBy fib = f as FieldImplementedBy;
            if (fib != null)
            {
                var imp = fib.ImplementationColumns.Where(kvp => b.TypeOperand.IsAssignableFrom(kvp.Key));

                if (imp.Any())
                    sb.Append(imp.ToString(kvp => kvp.Value.Name.SqlEscape() + " IS NOT NULL", " OR "));
                else
                    throw new InvalidOperationException("No implementation ({0}) will never be {1}".FormatWith(fib.ImplementationColumns.Keys.ToString(t=>t.TypeName(), ", "), b.TypeOperand.TypeName()));

                return b;
            }

            throw new NotSupportedException("'is' only works with ImplementedBy or Reference fields");
        }
开发者ID:rondoo,项目名称:framework,代码行数:32,代码来源:UniqueIndex.cs

示例15: CompareTypeIs

 protected virtual bool CompareTypeIs(TypeBinaryExpression a, TypeBinaryExpression b)
 {
     return a.TypeOperand == b.TypeOperand
         && this.Compare(a.Expression, b.Expression);
 }
开发者ID:hamdouchi97,项目名称:Stump.ORM,代码行数:5,代码来源:ExpressionComparer.cs


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