Skip to content

Null propagation cannot be used for primitive type lists (string) #366

@frankiDotNet

Description

@frankiDotNet

I want to parse a null propagation expression for a list with a string:

Simple test scenario:

public class TestClass{
    public List<string> MyList {get; set;}
}
var dataSource = new TestClass();
// Let MyList null...

var expressionText = "np(myList.FirstOrDefault())"
LambdaExpression e = DynamicExpressionParser.ParseLambda(ParsingConfig.Default, dataSource.GetType(),
               typeof(object), expressionText, null);
            var result = (e.Compile()).DynamicInvoke(dataSource);

Here I get the exception : The 'np' (null-propagation) function requires the first argument to be a MemberExpression

Null propagation for a property works:

var expressionText = "np(myList.Count)"
LambdaExpression e = DynamicExpressionParser.ParseLambda(ParsingConfig.Default, dataSource.GetType(),
               typeof(object), expressionText, null);
            var result = (e.Compile()).DynamicInvoke(dataSource);

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions