在网站中使用 LINQPAD
Use LINQPAD in a website
我正在使用来自 nuget 的 LINQPad 包:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="LINQPad" version="4.51.3" targetFramework="net40" />
</packages>
在控制台应用程序中 (FW4.0)
使用这个简单的代码:
public static class A
{
public static string Dump<T>(this T o)
{
var sb = new StringBuilder();
using (TextWriter writer = LINQPad.Util.CreateXhtmlWriter(true))
{
writer.Write(o);
sb.Append(writer);
}
return sb.ToString();
}
}
class Program
{
static void Main(string[] args)
{
var s = A.Dump(Enumerable.Range(1, 5));
Console.WriteLine(s);
}
}
如您所见,我确实看到了 HTML 字符串:
但是 - 如果我创建一个空网站(不是网络项目,我有一个现有网站)并添加 nuget 包 - 相同的包,相同的 FW4.0 - 我收到错误:
值得一提的是 exe 在 Bin 中:
问题
为什么会这样,我错过了什么?
好吧,我最终弄清楚了怎么做,希望它能帮助其他人。
我有这个:
WebSite
|
+--- bin
|
+---all dlls, EXE
所以我创建了一个新的 Class 库项目 ----> Nuget---> 下载了 LINQPAD 包。
然后在我网站的 BIN 文件夹中,我复制了 LINQPAD.EXE 文件(这是强制性的,否则它不起作用)- 就是这样。
我在网站上引用了 DLL。
在那个 DLL 中我使用了这个扩展方法:
public static class A
{
public static string Dump<T>(this T o)
{
var sb = new StringBuilder();
using (TextWriter writer = LINQPad.Util.CreateXhtmlWriter(true))
{
writer.Write(o);
sb.Append(writer);
}
return sb.ToString();
}
}
现在我可以调用 string st = dt.Dump()
并且 HTML 是真正的 DUMP
作为 LINQPAD 的输出。
演示:在我的站点中,我为某些服务创建了一个测试页面并检查响应,我转储对象,获取 HTML 并将其注入 IFRAME:
我正在使用来自 nuget 的 LINQPad 包:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="LINQPad" version="4.51.3" targetFramework="net40" />
</packages>
在控制台应用程序中 (FW4.0)
使用这个简单的代码:
public static class A
{
public static string Dump<T>(this T o)
{
var sb = new StringBuilder();
using (TextWriter writer = LINQPad.Util.CreateXhtmlWriter(true))
{
writer.Write(o);
sb.Append(writer);
}
return sb.ToString();
}
}
class Program
{
static void Main(string[] args)
{
var s = A.Dump(Enumerable.Range(1, 5));
Console.WriteLine(s);
}
}
如您所见,我确实看到了 HTML 字符串:
但是 - 如果我创建一个空网站(不是网络项目,我有一个现有网站)并添加 nuget 包 - 相同的包,相同的 FW4.0 - 我收到错误:
值得一提的是 exe 在 Bin 中:
问题
为什么会这样,我错过了什么?
好吧,我最终弄清楚了怎么做,希望它能帮助其他人。
我有这个:
WebSite
|
+--- bin
|
+---all dlls, EXE
所以我创建了一个新的 Class 库项目 ----> Nuget---> 下载了 LINQPAD 包。
然后在我网站的 BIN 文件夹中,我复制了 LINQPAD.EXE 文件(这是强制性的,否则它不起作用)- 就是这样。
我在网站上引用了 DLL。
在那个 DLL 中我使用了这个扩展方法:
public static class A
{
public static string Dump<T>(this T o)
{
var sb = new StringBuilder();
using (TextWriter writer = LINQPad.Util.CreateXhtmlWriter(true))
{
writer.Write(o);
sb.Append(writer);
}
return sb.ToString();
}
}
现在我可以调用 string st = dt.Dump()
并且 HTML 是真正的 DUMP
作为 LINQPAD 的输出。
演示:在我的站点中,我为某些服务创建了一个测试页面并检查响应,我转储对象,获取 HTML 并将其注入 IFRAME: