我可以从 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");
}
应该会产生类似
的东西
我有 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");
}
应该会产生类似
的东西