0

Windows やコンソール アプリケーションなどの他のアプリケーションで使用したいいくつかのクラス (DesiredClass.cs) を含む dll (DesiredApp.dll) に Web フォーム アプリケーションがあります。IsWeb() 関数を作成して、それが Web アプリケーションか Windows アプリケーションかを確認しました (実際には HttpContext.Current が null かどうかをテストします)。したがって、セッション、リクエスト、レスポンスなどの http が利用可能な場合にのみ使用できます (推測)。WindowsFormsClient または ConsoleClient に DesiredApp.dll への参照を追加しようとすると、コンパイルされません。参照を追加できません。しかし、Windows アプリケーションであっても、DesiredApp.dll の nUnit テストは nUnit で機能します。nUnit は WebForms ベースの dll でどのようにテストを実行できますか?

Windows/コンソール アプリでそのようなことを行うにはどうすればよいですか?

httpアプリケーションにあるときだけhttpのもの(HttpContext、Session、Request、Responseなど)を使用し、Windowsアプリケーションにあるときは使用しないライブラリを作成するにはどうすればよいですか?

4

2 に答える 2

1

I found it. I was traing to compile the application using .net framework 4 client profile.

If you use the complete version of .net framework (go to project properties / application / target framework and set to .net framework 4, don't use client profile) you are able to compile windows application using System.Web dll's.

If you want do know if you are running a library in an windows application or a web application and want to know if it is possible to use Session, do

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

public virtual bool IsSessionEnabled()
{
    return IsWeb() && (System.Web.HttpContext.Current.Session != null)
}
于 2015-02-14T18:00:40.887 に答える