Пример #1
0
            private MemberBinding Convert(LinqExp.MemberBinding linqBinding)
            {
                switch (linqBinding.BindingType)
                {
                case LinqExp.MemberBindingType.Assignment:
                    var linqMemberAssignment = (LinqExp.MemberAssignment)linqBinding;

                    return(Expression.Bind(
                               linqMemberAssignment.Member,
                               ConvertExp(linqMemberAssignment.Expression)));

                case LinqExp.MemberBindingType.MemberBinding:
                    var linqMemberBinding = (LinqExp.MemberMemberBinding)linqBinding;

                    return(Expression.MemberBind(
                               linqMemberBinding.Member,
                               linqMemberBinding.Bindings.Project(Convert)));

                case LinqExp.MemberBindingType.ListBinding:
                    var linqListBinding = (LinqExp.MemberListBinding)linqBinding;

                    return(Expression.ListBind(
                               linqListBinding.Member,
                               linqListBinding.Initializers.Project(Convert)));

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }