コード例 #1
0
ファイル: OQLBuilder.cs プロジェクト: wmadzha/NCache
        private object InvokeConstructor(NewExpression node)
        {
            int argCount = node.ArgumentCount();

            object[] arguments = argCount > 0 ? new object[argCount] : Type.EmptyTypes;

            for (int i = 0; i < argCount; i++)
            {
                arguments[i] = EvaluateArgument(node.GetArgument(i));
            }

            return(Activator.CreateInstance(node.Type, arguments));
        }
コード例 #2
0
        protected override Expression VisitNew(NewExpression node)
        {
            Out("new ");
            Out(node.Type.Name);
            Out('(');
            ReadOnlyCollection <MemberInfo> members = node.Members;

            for (int i = 0; i < node.ArgumentCount(); i++)
            {
                if (i > 0)
                {
                    Out(", ");
                }
                if (members != null)
                {
                    string name = members[i].Name;
                    Out(name);
                    Out(" = ");
                }
                Visit(node.GetArgument(i));
            }
            Out(')');
            return(node);
        }