8

単体テストを含む一連の静的ユーティリティ メソッドがあります。しかし、Lisp や Smalltalk のように、インタラクティブ モードでコードをすぐに実行できる、テスト -> 修正 -> コンパイル サイクル (REPL) を使用する、よりインタラクティブな方法が必要です。F# Interactive を使用して、VS 2010 で開いている C# プロジェクト内からこれらのメソッドを直接テストしようとしましたが、うまくいきませんでした。

アセンブリ (#rディレクティブ) をロードし、名前空間を開き、メソッドを呼び出す (そして結果を検査する)​​ 必要があることはわかっています。しかし、Visual Studio 2010 の "F# Interactive" 内でそれを行うにはどうすればよいでしょうか? デバッグ モードで使用可能な「イミディエイト」ウィンドウでそれが可能であることはわかっていますが、コードを書いているときに「デザイン モード」の F# Interactive 内で実行したいと考えています。

4

1 に答える 1

10

#Iディレクティブを使用してプロジェクトへのパスを含める必要があります。そうすれば、アセンブリをロードして使用できます。私は簡単なC#コンソールアプリを作成しました。これを試して、これを機能させました。

using System;

namespace ConsoleApplication1
{
    public class Program
    {
        static void Main(string[] args)
        {
            PrintMessage();
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
            Console.WriteLine();
        }

        public static void PrintMessage()
        {
            Console.WriteLine("MESSAGE!");
        }
    }
}

次に、F#インタラクティブで:

> #I "full path to debug directory";;

--> Added 'full path to debug directory' to library include path

> #r "ConsoleApplication1.exe";;

--> Referenced 'full path to debug directory\ConsoleApplication1.exe'

> open ConsoleApplication1;;
> Program.PrintMessage();;
MESSAGE!
val it : unit = ()

したがって、それは間違いなく機能します。最初にプロジェクトをコンパイルする必要があります。事前にセッションをリセットしてアセンブリを解放することを忘れないでください。

于 2011-02-25T07:55:41.803 に答える