2017-02-23 138 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