我可以从 html 个元素访问 LINQPad 的 C# 代码吗?

Can I access LINQPad's C# code from html elements?

我有 encrypt/decrypt 个字符串的 C# 代码。

void Main()
{

    string myParameters = "val=tKsXHtj03UhASw4TRFMlqg%3d%3d";
    Calc(myParameters).Dump();

}

string Calc(string str)
{
 using (WebClient wc = new WebClient())
    {
        //return from WEBAPI....
    }
}

但我也知道我可以通过 Util.RawHtml 创建 html,所以我 不需要每次都更改代码

所以,我添加了这个:

Util.RawHtml("<input type='text' id='tbData' /><br/><br/> <input type='button' id='btnCalc' value='Calc'/><br/> <br/> ").Dump();

所以现在看起来像:

但我需要 运行 来自按钮点击的 C# 代码(即 html)

问题:

可以用 Linqpad 做这样的事情吗?

点击按钮后如何运行Calc()? (并从文本框中读取值)

linqpad: 4.55.03 (任何cpu)

这不是直接的答案,但在没有正确答案的情况下,这里有两种我使用过的替代方法可能会有所帮助

第一种是简单地在循环中使用 Util.ReadLine(),例如

void Main()
{
    do
    {
        Calc(Util.ReadLine()).Dump();
    }
    while (true);
}

string Calc(string str)
{
    using (System.Net.WebClient wc = new System.Net.WebClient())
    {
        return "from WEBAPI....";       
    }   
}

第二种是使用WPF元素而不是HMTL,例如

void Main()
{
    var lbl1 = new TextBlock{ Text = "Input value ", MinWidth = 70 } ;
    var lbl2 = new TextBlock{ Text = "Results     ", MinWidth = 70  } ;

    var tb  = new TextBox{   MinWidth = 500 } ;

    var btn = new Button { Content = " Calc " };
    btn.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
    btn.Margin = new System.Windows.Thickness(5,1,1,1);
    btn.MaxWidth = 100;

    var results = new TextBlock{ Text = ""  } ;
    btn.Click += (sender, args) => { results.Text = Calc(tb.Text); } ;

    var panel1 = new DockPanel();
    panel1.Children.Add(lbl1);
    panel1.Children.Add(tb);
    panel1.Children.Add(btn);

    var panel2 = new DockPanel();
    panel2.Children.Add(lbl2);
    panel2.Children.Add(results);

    PanelManager.StackWpfElement(panel1, "Example");
    PanelManager.StackWpfElement(panel2, "Example");
}

应该会产生类似

的东西