コード例 #1
0
        DbgDotNetCompilationResult CompileExpressionCore(DbgDotNetAlias[] aliases, string expression, DbgEvaluationOptions options, CSharpEvalContextState state, ImmutableArray <MetadataBlock> metadataBlocks, EvaluationContext evalCtx, bool noName, CancellationToken cancellationToken)
        {
            state.MetadataContext = new CSharpMetadataContext(metadataBlocks, evalCtx);
            var compilationFlags = DkmEvaluationFlags.None;

            if ((options & DbgEvaluationOptions.Expression) != 0)
            {
                compilationFlags |= DkmEvaluationFlags.TreatAsExpression;
            }
            var           compileResult = evalCtx.CompileExpression(expression, compilationFlags, CreateAliases(aliases), out var resultProperties, out var errorMessage);
            DbgDotNetText name;

            if (noName)
            {
                name = DbgDotNetText.Empty;
            }
            else if (compileResult == null || errorMessage != null)
            {
                name = CreateErrorName(expression);
            }
            else
            {
                name = GetExpressionText(state.MetadataContext.EvaluationContext, state.MetadataContext.Compilation, expression, cancellationToken);
            }
            return(CreateCompilationResult(expression, compileResult, resultProperties, errorMessage, name));
        }
コード例 #2
0
        DbgDotNetCompilationResult CompileExpressionCore(DbgDotNetAlias[] aliases, string expression, DbgEvaluationOptions options, CSharpEvalContextState state, EvaluationContext evalCtx, CancellationToken cancellationToken)
        {
            state.MetadataContext = new CSharpMetadataContext(evalCtx.Compilation, evalCtx);
            var compilationFlags = DkmEvaluationFlags.None;

            if ((options & DbgEvaluationOptions.Expression) != 0)
            {
                compilationFlags |= DkmEvaluationFlags.TreatAsExpression;
            }
            var           compileResult = evalCtx.CompileExpression(expression, compilationFlags, CreateAliases(aliases), out var resultProperties, out var errorMessage);
            DbgDotNetText name;

            if ((options & DbgEvaluationOptions.NoName) != 0)
            {
                name = DbgDotNetText.Empty;
            }
            else if (!(errorMessage is null))
            {
                name = CreateErrorName(expression);
            }