簡體   English   中英

如何在Windows應用程序和Web窗體應用程序中使用dll,即使它引用Web內容(如nUnit)?

[英]How to use a dll in both windows application and web forms application even if it references web stuff (like nUnit)?

我在dll(DesiredApp.dll)中有一個Web窗體應用程序,其中包含一些我想在其他應用程序(例如Windows或控制台應用程序)中使用的類(DesiredClass.cs)。 我創建了一個IsWeb()函數來驗證它是Web應用程序還是Windows應用程序(它實際上測試HttpContext.Current是否為null)。 因此,我(我猜想)只能在會話可用時使用諸如會話,請求,響應之類的http東西。 當我嘗試在WindowsFormsClient或ConsoleClient中添加對DesiredApp.dll的引用時,它不會編譯。 我無法添加參考。 但是DesiredApp.dll中的nUnit測試即使在Windows應用程序中也可以在nUnit中使用。 nUnit如何在基於WebForms的dll中運行測試?

如何在Windows /控制台應用程序中執行此操作?

如何僅在http應用程序中編寫使用http東西(如HttpContext,Session,Request,Response)的庫,而在Windows應用程序中卻不使用它們?

我找到了。 我正在訓練使用.net framework 4客戶端配置文件編譯應用程序。

如果使用完整版本的.net框架(轉到項目屬性/應用程序/目標框架並將其設置為.net框架4,請不要使用客戶端配置文件),則可以使用System.Web dll編譯Windows應用程序。

如果您想知道自己是在Windows應用程序中還是在Web應用程序中運行庫,並且想知道是否可以使用Session,請執行

public virtual bool IsWeb()
{
    return (System.Web.HttpContext.Current != null);
}

public virtual bool IsSessionEnabled()
{
    return IsWeb() && (System.Web.HttpContext.Current.Session != null)
}

您可以構建一個包含需要進行引用的類庫,然后將其公開給GAC。 那么您都可以輕松地在其他.net應用程序解決方案中使用它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM