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

时间:2015-04-29 09:01:14

标签: c# linqpad

我有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();

所以现在看起来像:

enter image description here

但是我需要从按钮点击(这是html)

运行C#代码

问题:

是否可以使用Linqpad进行此类操作?

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

linqpad:4.55.03(anycpu)

1 个答案:

答案 0 :(得分:2)

这不是一个直接的答案,但在没有正确答案的情况下,我使用了两种可能有用的替代方法

第一种是简单地在循环中使用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");
}

应该产生类似

的东西

Screenshot