2017-02-23 149 views
0

我使用LINQPad包从的NuGet:使用LINQPAD在网站

enter image description here

<?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字符串:

enter image description here

但是 - 如果我创建一个空的网站(不是一个web项目,我有一个现有的网站),并添加NuGet包 - 同一个包,同样FW4.0 - 我得到一个错误:

enter image description here

值得一提的是,EXE是在斌:

enter image description here

问题

为什么会发生这种情况,我错过了什么?

回答

0

那么我想清楚如何最终做到这一点,我希望它能帮助别人。

我有这样的:

WebSite 
    | 
    +--- bin 
     | 
     +---all dlls, EXE 

所以我创建了一个新的类库项目---->的NuGet --->下载LINQPAD包。

然后在我的网站的BIN文件夹中,我复制了LINQPAD.EXE文件(这是强制性的,否则不起作用) - 就是这样。

我引用了DLL到网站。

在该DLL我cated这个扩展方法:

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:

enter image description here