如何在ASP.Net Web表单中使用Roslyn执行C#代码?

穆罕默德(Y. Mohammed)

我在ASP.Net中有足够的代码来使用roslyn编译器执行C#的代码。但是,我使用ASP.Net Web表单来构建用于执行代码的用户界面。因此,我想从一个文本框中获取代码,并通过“编译”按钮在另一个文本框中显示结果。

因此,我有以下控件:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication2._Default" %>

<asp:Content runat="server" ID="FeaturedContent" ContentPlaceHolderID="FeaturedContent">
    <section class="featured">
        <div class="content-wrapper">
            <hgroup class="title">
                <h1>Compiler Tool</h1>
            </hgroup>
            <p>
                You can compile your source code of C# using Roslyn Compiler from Microsoft</p>
            <br/>

            <p>
                <asp:TextBox ID="TextBox3" runat="server" Height="185px"  Width="480px" OnTextChanged="TextBox3_TextChanged"></asp:TextBox>
            </p>
            <p>

                <asp:Button ID="Button2" runat="server" onclick="Button_Click" Text="Compile" ForeColor="Black" />
            </p>
            <p>
                <asp:TextBox ID="TextBox2" runat="server" Height="138px" Width="390px" ></asp:TextBox>
            </p>
        </div>
    </section>
</asp:Content>
<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
    </asp:Content>

这里是使用C#的Handler事件:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using Roslyn.Scripting;
using Roslyn.Scripting.CSharp;


namespace WebApplication2
{
    public partial class _Default : Page
    {



        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button_Click(object sender, EventArgs e)
        {

            var engine = new ScriptEngine();
            var session = engine.CreateSession();
            String code = TextBox3.Text;
            session.Execute(code);

        }

        protected void TextBox3_TextChanged(object sender, EventArgs e)
        {

        }
    }
}

如何显示TextBox2中代码(TextBox3)的执行结果?

Iam在ASP.Net环境中的初学者,有帮助吗?

罗布·罗迪

恐怕我离开发人员电脑不远,所以我无法测试代码,但是想到的是:

您没有使用的结果session.Execute(code);,因此如果用户放入3+3,它将被执行,返回值将为6,但由于未捕获,因此将超出范围。相反,如果您这样做了object result = session.Execute(code);,则输出将为整数6;否则,输出为0。然后,您可以调用.ToString()result并将其放在文本框中。

当然要小心,允许用户在您的Web服务器上执行任意代码...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在ASP.NET MVC中使用ViewModels?

来自分类Dev

如何在ASP.NET MVC中使用AngularJS?

来自分类Dev

如何在VS.NET 2012中的ASP.NET Web表单中使用jQuery文件?

来自分类Dev

如何在.NET ASP C#中正确使用QueryString?

来自分类Dev

如何在asp.net中使用Page_Init

来自分类Dev

如何在ASP.NET中使用<%%>?

来自分类Dev

如何在ASP.NET WebForm中的jQuery Ajax中使用C#数据表?

来自分类Dev

如何在ASP.NET网站中使用JMail组件?

来自分类Dev

如何在ASP.NET MVC中使用Dache的CacheClient?

来自分类Dev

如何在ASP.NET MVC中使用部分视图?

来自分类Dev

如何在ASP.NET Core应用中使用HttpClient

来自分类Dev

如何在asp.net中使用Telerik控件?

来自分类Dev

如何在具有不同功能的asp.net c#形式中使用许多按钮

来自分类Dev

如何在ASP.net中使用ApplicationUserManager?

来自分类Dev

如何在ASP.NET中使用标记声明对象

来自分类Dev

如何在C#的FOR循环中使用ASP.NET的标签ID?

来自分类Dev

如何在MVC asp.net C#中使用jQuery

来自分类Dev

如何在ASP.NET Core中使用jquery

来自分类Dev

如何在asp.net中使用<%%>?

来自分类Dev

如何在ASP.net Web表单中使用FuelUX向导

来自分类Dev

如何在asp.net Web表单页面中使用引导工具提示?

来自分类Dev

如何在asp.net C#中使用Ajax调用C#方法?

来自分类Dev

如何在Asp.NET中使用C#自动生成和增加客户ID?

来自分类Dev

如何在ASP.NET C#中使用LINQ查询平均值和分组

来自分类Dev

如何在asp.net 中单击按钮执行C# 代码?

来自分类Dev

如何在公共对象 C# asp.net 中使用 if

来自分类Dev

如何在asp.net mvc (C#) 中使用视频控件保存视频播放的进度?

来自分类Dev

如何在 asp.net MVC 中使用 Linq、C# 访问连接表中的列

来自分类Dev

如何在经典 asp 中使用 asp.net web api?

Related 相关文章

  1. 1

    如何在ASP.NET MVC中使用ViewModels?

  2. 2

    如何在ASP.NET MVC中使用AngularJS?

  3. 3

    如何在VS.NET 2012中的ASP.NET Web表单中使用jQuery文件?

  4. 4

    如何在.NET ASP C#中正确使用QueryString?

  5. 5

    如何在asp.net中使用Page_Init

  6. 6

    如何在ASP.NET中使用<%%>?

  7. 7

    如何在ASP.NET WebForm中的jQuery Ajax中使用C#数据表?

  8. 8

    如何在ASP.NET网站中使用JMail组件?

  9. 9

    如何在ASP.NET MVC中使用Dache的CacheClient?

  10. 10

    如何在ASP.NET MVC中使用部分视图?

  11. 11

    如何在ASP.NET Core应用中使用HttpClient

  12. 12

    如何在asp.net中使用Telerik控件?

  13. 13

    如何在具有不同功能的asp.net c#形式中使用许多按钮

  14. 14

    如何在ASP.net中使用ApplicationUserManager?

  15. 15

    如何在ASP.NET中使用标记声明对象

  16. 16

    如何在C#的FOR循环中使用ASP.NET的标签ID?

  17. 17

    如何在MVC asp.net C#中使用jQuery

  18. 18

    如何在ASP.NET Core中使用jquery

  19. 19

    如何在asp.net中使用<%%>?

  20. 20

    如何在ASP.net Web表单中使用FuelUX向导

  21. 21

    如何在asp.net Web表单页面中使用引导工具提示?

  22. 22

    如何在asp.net C#中使用Ajax调用C#方法?

  23. 23

    如何在Asp.NET中使用C#自动生成和增加客户ID?

  24. 24

    如何在ASP.NET C#中使用LINQ查询平均值和分组

  25. 25

    如何在asp.net 中单击按钮执行C# 代码?

  26. 26

    如何在公共对象 C# asp.net 中使用 if

  27. 27

    如何在asp.net mvc (C#) 中使用视频控件保存视频播放的进度?

  28. 28

    如何在 asp.net MVC 中使用 Linq、C# 访问连接表中的列

  29. 29

    如何在经典 asp 中使用 asp.net web api?

热门标签

归档