コード例 #1
0
        public void CreateManualExpression_Surface_ReturnExpressionAsString()
        {
            var expression = new Expression <CircularEntity>();

            expression.Add(new EntityItem <CircularEntity>(expression)
            {
                Entity = A, Index = 0, IndexAtLevel = 0, Level = 1
            });
            expression.Add(new EntityItem <CircularEntity>(expression)
            {
                Entity = B, Index = 1, IndexAtLevel = 0, Level = 2
            });
            expression.Add(new EntityItem <CircularEntity>(expression)
            {
                Entity = C, Index = 2, IndexAtLevel = 1, Level = 2
            });
            expression.Add(new EntityItem <CircularEntity>(expression)
            {
                Entity = Y, Index = 3, IndexAtLevel = 0, Level = 3
            });
            expression.Add(new EntityItem <CircularEntity>(expression)
            {
                Entity = D, Index = 4, IndexAtLevel = 2, Level = 2
            });
            expression.Add(new EntityItem <CircularEntity>(expression)
            {
                Entity = E, Index = 5, IndexAtLevel = 0, Level = 3
            });
            expression.Add(new EntityItem <CircularEntity>(expression)
            {
                Entity = F, Index = 6, IndexAtLevel = 1, Level = 3
            });
            expression.Add(new EntityItem <CircularEntity>(expression)
            {
                Entity = G, Index = 7, IndexAtLevel = 0, Level = 4
            });
            expression.Add(new EntityItem <CircularEntity>(expression)
            {
                Entity = B, Index = 8, IndexAtLevel = 0, Level = 5
            });
            expression.Add(new EntityItem <CircularEntity>(expression)
            {
                Entity = C, Index = 9, IndexAtLevel = 1, Level = 5
            });
            expression.Add(new EntityItem <CircularEntity>(expression)
            {
                Entity = Y, Index = 10, IndexAtLevel = 1, Level = 4
            });
            expression.Add(new EntityItem <CircularEntity>(expression)
            {
                Entity = Z, Index = 11, IndexAtLevel = 2, Level = 3
            });
            var expressionString = new CircularEntityExpressionSerializer <CircularEntity>(expression, i => i.Name).Serialize();

            Assert.Equal("A + B + (C + Y) + (D + E + (F + (G + B + C) + Y) + Z)", expressionString);
        }
コード例 #2
0
        public void SerializationCircular1()
        {
            // create a simple object
            var A = new CircularEntity("A");
            var B = new CircularEntity("B");
            var C = new CircularEntity("C");
            var D = new CircularEntity("D");

            A = A + B + (C + D);

            var expression         = A.AsExpression(c => c.Children);
            var serialization      = new CircularEntityExpressionSerializer <CircularEntity>(expression, f => f.Name);
            var expressionAsString = serialization.Serialize();

            System.Console.WriteLine(expressionAsString);
        }
コード例 #3
0
        public void SerializationCircular2()
        {
            // create a simple object
            var A = new CircularEntity("A");
            var B = new CircularEntity("B");
            var C = new CircularEntity("C");
            var D = new CircularEntity("BigName");

            A = A + B + (C + D);

            var expression    = A.AsExpression(c => c.Children);
            var serialization = new CircularEntityExpressionSerializer <CircularEntity>(expression, f => f.Name);

            serialization.EncloseParenthesisInRoot          = true;
            serialization.ForceQuoteEvenWhenValidIdentified = true;
            serialization.ValueFormatter = new TruncateFormatter(3);

            var expressionAsString = serialization.Serialize();

            System.Console.WriteLine(expressionAsString);
        }